Files
hk4e/gdconf/chest_drop_data.go
2023-03-29 17:14:28 +08:00

49 lines
1.3 KiB
Go

package gdconf
import (
"hk4e/pkg/logger"
)
// ChestDropData 宝箱掉落配置表
type ChestDropData struct {
MinLevel int32 `csv:"最小等级"`
DropTag string `csv:"总索引"`
DropId int32 `csv:"掉落ID,omitempty"`
DropCount int32 `csv:"掉落次数,omitempty"`
}
func (g *GameDataConfig) loadChestDropData() {
g.ChestDropDataMap = make(map[string]map[int32]*ChestDropData)
chestDropDataList := make([]*ChestDropData, 0)
readTable[ChestDropData](g.txtPrefix+"ChestDropData.txt", &chestDropDataList)
for _, chestDropData := range chestDropDataList {
_, exist := g.ChestDropDataMap[chestDropData.DropTag]
if !exist {
g.ChestDropDataMap[chestDropData.DropTag] = make(map[int32]*ChestDropData)
}
g.ChestDropDataMap[chestDropData.DropTag][chestDropData.MinLevel] = chestDropData
}
logger.Info("ChestDropData count: %v", len(g.ChestDropDataMap))
}
func GetChestDropDataByDropTagAndLevel(dropTag string, level int32) *ChestDropData {
value, exist := CONF.ChestDropDataMap[dropTag]
if !exist {
return nil
}
resultLevel := int32(0)
for minLevel := range value {
if level < minLevel {
continue
}
if minLevel > resultLevel {
resultLevel = minLevel
}
}
return value[resultLevel]
}
func GetChestDropDataMap() map[string]map[int32]*ChestDropData {
return CONF.ChestDropDataMap
}