mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 17:22:27 +08:00
49 lines
1.3 KiB
Go
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
|
|
}
|