mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 15:52:27 +08:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package gdconf
|
|
|
|
import (
|
|
"hk4e/pkg/logger"
|
|
)
|
|
|
|
// MonsterDropData 怪物掉落配置表
|
|
type MonsterDropData struct {
|
|
MinLevel int32 `csv:"最小等级"`
|
|
DropTag string `csv:"总索引"`
|
|
DropId int32 `csv:"掉落ID,omitempty"`
|
|
DropCount int32 `csv:"掉落次数,omitempty"`
|
|
}
|
|
|
|
func (g *GameDataConfig) loadMonsterDropData() {
|
|
g.MonsterDropDataMap = make(map[string]map[int32]*MonsterDropData)
|
|
monsterDropDataList := make([]*MonsterDropData, 0)
|
|
readTable[MonsterDropData](g.txtPrefix+"MonsterDropData.txt", &monsterDropDataList)
|
|
for _, monsterDropData := range monsterDropDataList {
|
|
_, exist := g.MonsterDropDataMap[monsterDropData.DropTag]
|
|
if !exist {
|
|
g.MonsterDropDataMap[monsterDropData.DropTag] = make(map[int32]*MonsterDropData)
|
|
}
|
|
g.MonsterDropDataMap[monsterDropData.DropTag][monsterDropData.MinLevel] = monsterDropData
|
|
}
|
|
logger.Info("MonsterDropData count: %v", len(g.MonsterDropDataMap))
|
|
}
|
|
|
|
func GetMonsterDropDataByDropTagAndLevel(dropTag string, level int32) *MonsterDropData {
|
|
value, exist := CONF.MonsterDropDataMap[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 GetMonsterDropDataMap() map[string]map[int32]*MonsterDropData {
|
|
return CONF.MonsterDropDataMap
|
|
}
|