jsonconf.go 2.79 KB
package jsonconf

import (
	"common/logger"
	"encoding/json"
	"io/ioutil"
	"os"
)

var (
	g_jsonconf = new(GameConfig)
)

type CardDesc struct {
	Time int        `json:"time"`
	Ctype int `json:"type"`
	Desc string `json:"desc"`
	Flop_card string `json:"flop_card"`
}

type CatDesc struct {
	Id int        `json:"id"`
	Name string `json:"name"`
	Level_buy int `json:"level_buy"`
	Rec_buy int `json:"rec_buy"`
	Price string        `json:"price"`
	Gold_get string `json:"gold_get"`
	Ratio float32 `json:"ratio"`
	Increse_limit int `json:"increse_limit"`
	Interval float32 `json:"interval"`
}

type RedCatDesc struct {
	Id int        `json:"id"`
	Name string `json:"name"`
	Skin string `json:"skin"`
	Money float32 `json:"money"`
	Rate float32        `json:"rate"`
	Is_37 int `json:"is_37"`
	Dec_red string `json:"dec_red"`
	Dec_get string `json:"dec_get"`
}

type TurnTableDesc struct {
	Id int        `json:"id"`
	Ttype int        `json:"type"`
	Rate float32        `json:"rate"`
	Parameter int        `json:"parameter"`
	Desc string        `json:"desc"`
	Idx int        `json:"idx"`
}

type GameConfig struct {
	CardConfig    []CardDesc
	CatConfig         []CatDesc
	RedCatConfig        []RedCatDesc
	TurnTableConfig     []TurnTableDesc
}

func GetJsonConf() *GameConfig {
	return g_jsonconf
}



func file_get_contents(path string) ([]byte, error) {
	f, err := os.Open(path)
	if err != nil {
		return nil, err
	}
	return ioutil.ReadAll(f)
}

func LoadJsonConf() error {
	//pconf := &GameConfig{}
	//加载第一个配置
	path := "../jsonconf/CardConfig.json"
	content, err := file_get_contents(path)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	err = json.Unmarshal([]byte(content), &g_jsonconf.CardConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	path = "../jsonconf/CatConfig.json"
	content, err = file_get_contents(path)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	err = json.Unmarshal([]byte(content), &g_jsonconf.CatConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	path = "../jsonconf/RedCatConfig.json"
	content, err = file_get_contents(path)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	err = json.Unmarshal([]byte(content), &g_jsonconf.RedCatConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	path = "../jsonconf/TurntableConfig.json"
	content, err = file_get_contents(path)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	err = json.Unmarshal([]byte(content), &g_jsonconf.TurnTableConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}



	logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err)
	return err
}