pet_home_server/src/server/conf/base/BaseCfg.go
2025-11-10 15:07:19 +08:00

75 lines
1.4 KiB
Go

package baseCfg
import (
"server/game/mod/item"
"server/gamedata"
"server/pkg/github.com/name5566/leaf/log"
"strconv"
)
const (
CFG_BASE = "Base"
)
const (
ENERGY_SHOP_MUL = "energy_shop_mul"
ENERGY_CFG = "BaseEnergy"
)
func init() {
gamedata.InitCfg(CFG_BASE)
gamedata.InitCfg(ENERGY_CFG)
}
func GetEnergyByMul(T int) float64 {
data, err := gamedata.GetDataByKey(CFG_BASE, ENERGY_SHOP_MUL)
if err != nil {
log.Debug("GetEnergyByMul err:%v", err)
return 0
}
d := data["Value"].(map[string]interface{})
if len(d) == 0 {
return 0
}
T = min(T, len(d))
T1 := strconv.Itoa(T)
if v, ok := d[T1]; ok {
return v.(float64)
} else {
return 0
}
}
func GetFriendReplyReward() []*item.Item {
data, err := gamedata.GetDataByKey(CFG_BASE, "friend_reply")
if err != nil {
log.Debug("GetFriendReplyReward err:%v", err)
return nil
}
return gamedata.GetItemList(data, "Value")
}
func GetMaxEnergyMul(Lv int, Energy int) int {
Mul := 0
for i := 1; i < 999; i++ {
data, err := gamedata.GetDataByIntKey(ENERGY_CFG, i)
if err != nil {
break
}
UnlockLv := gamedata.GetIntValue(data, "UnlockLv")
if Lv < UnlockLv || Energy < gamedata.GetIntValue(data, "NeedEnergy") {
break
}
Mul = i - 1
}
return Mul
}
func GetLimitEnergyMul(Lv int) int {
data, err := gamedata.GetDataByIntKey(ENERGY_CFG, Lv+1)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "Limit")
}