mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 15:42:25 +08:00
60 lines
2.4 KiB
Go
60 lines
2.4 KiB
Go
package gdconf
|
|
|
|
import (
|
|
"hk4e/pkg/logger"
|
|
)
|
|
|
|
// AvatarPromoteData 角色突破配置表
|
|
type AvatarPromoteData struct {
|
|
PromoteId int32 `csv:"角色突破ID"`
|
|
PromoteLevel int32 `csv:"突破等级,omitempty"`
|
|
CostCoin int32 `csv:"消耗金币,omitempty"`
|
|
CostItemId1 int32 `csv:"[消耗物品]1ID,omitempty"`
|
|
CostItemCount1 int32 `csv:"[消耗物品]1数量,omitempty"`
|
|
CostItemId2 int32 `csv:"[消耗物品]2ID,omitempty"`
|
|
CostItemCount2 int32 `csv:"[消耗物品]2数量,omitempty"`
|
|
CostItemId3 int32 `csv:"[消耗物品]3ID,omitempty"`
|
|
CostItemCount3 int32 `csv:"[消耗物品]3数量,omitempty"`
|
|
CostItemId4 int32 `csv:"[消耗物品]4ID,omitempty"`
|
|
CostItemCount4 int32 `csv:"[消耗物品]4数量,omitempty"`
|
|
LevelLimit int32 `csv:"解锁等级上限,omitempty"`
|
|
MinPlayerLevel int32 `csv:"冒险等级要求,omitempty"`
|
|
|
|
CostItemMap map[uint32]uint32 // 消耗物品列表
|
|
}
|
|
|
|
func (g *GameDataConfig) loadAvatarPromoteData() {
|
|
g.AvatarPromoteDataMap = make(map[int32]map[int32]*AvatarPromoteData)
|
|
avatarPromoteDataList := make([]*AvatarPromoteData, 0)
|
|
readTable[AvatarPromoteData](g.txtPrefix+"AvatarPromoteData.txt", &avatarPromoteDataList)
|
|
for _, avatarPromoteData := range avatarPromoteDataList {
|
|
_, ok := g.AvatarPromoteDataMap[avatarPromoteData.PromoteId]
|
|
if !ok {
|
|
g.AvatarPromoteDataMap[avatarPromoteData.PromoteId] = make(map[int32]*AvatarPromoteData)
|
|
}
|
|
avatarPromoteData.CostItemMap = map[uint32]uint32{
|
|
uint32(avatarPromoteData.CostItemId1): uint32(avatarPromoteData.CostItemCount1),
|
|
uint32(avatarPromoteData.CostItemId2): uint32(avatarPromoteData.CostItemCount2),
|
|
uint32(avatarPromoteData.CostItemId3): uint32(avatarPromoteData.CostItemCount3),
|
|
uint32(avatarPromoteData.CostItemId4): uint32(avatarPromoteData.CostItemCount4),
|
|
}
|
|
for itemId, count := range avatarPromoteData.CostItemMap {
|
|
// 两个值都不能为0
|
|
if itemId == 0 || count == 0 {
|
|
delete(avatarPromoteData.CostItemMap, itemId)
|
|
}
|
|
}
|
|
// 通过突破等级找到突破数据
|
|
g.AvatarPromoteDataMap[avatarPromoteData.PromoteId][avatarPromoteData.PromoteLevel] = avatarPromoteData
|
|
}
|
|
logger.Info("AvatarPromoteData count: %v", len(g.AvatarPromoteDataMap))
|
|
}
|
|
|
|
func GetAvatarPromoteDataByIdAndLevel(promoteId int32, promoteLevel int32) *AvatarPromoteData {
|
|
value, exist := CONF.AvatarPromoteDataMap[promoteId]
|
|
if !exist {
|
|
return nil
|
|
}
|
|
return value[promoteLevel]
|
|
}
|