mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-03-01 00:35:36 +08:00
角色突破奖励获取功能
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package gdconf
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"hk4e/pkg/logger"
|
||||
|
||||
"github.com/jszwec/csvutil"
|
||||
)
|
||||
|
||||
// 奖励配置表
|
||||
|
||||
type RewardData struct {
|
||||
RewardID int32 `csv:"RewardID"` // 奖励ID
|
||||
RewardItem1ID int32 `csv:"RewardItem1ID,omitempty"` // Reward道具1ID
|
||||
RewardItem1Count int32 `csv:"RewardItem1Count,omitempty"` // Reward道具1数量
|
||||
RewardItem2ID int32 `csv:"RewardItem2ID,omitempty"` // Reward道具2ID
|
||||
RewardItem2Count int32 `csv:"RewardItem2Count,omitempty"` // Reward道具2数量
|
||||
RewardItem3ID int32 `csv:"RewardItem3ID,omitempty"` // Reward道具3ID
|
||||
RewardItem3Count int32 `csv:"RewardItem3Count,omitempty"` // Reward道具3数量
|
||||
RewardItem4ID int32 `csv:"RewardItem4ID,omitempty"` // Reward道具4ID
|
||||
RewardItem4Count int32 `csv:"RewardItem4Count,omitempty"` // Reward道具4数量
|
||||
RewardItem5ID int32 `csv:"RewardItem5ID,omitempty"` // Reward道具5ID
|
||||
RewardItem5Count int32 `csv:"RewardItem5Count,omitempty"` // Reward道具5数量
|
||||
RewardItem6ID int32 `csv:"RewardItem6ID,omitempty"` // Reward道具6ID
|
||||
RewardItem6Count int32 `csv:"RewardItem6Count,omitempty"` // Reward道具6数量
|
||||
RewardItem7ID int32 `csv:"RewardItem7ID,omitempty"` // Reward道具7ID
|
||||
RewardItem7Count int32 `csv:"RewardItem7Count,omitempty"` // Reward道具7数量
|
||||
RewardItem8ID int32 `csv:"RewardItem8ID,omitempty"` // Reward道具8ID
|
||||
RewardItem8Count int32 `csv:"RewardItem8Count,omitempty"` // Reward道具8数量
|
||||
RewardItem9ID int32 `csv:"RewardItem9ID,omitempty"` // Reward道具9ID
|
||||
RewardItem9Count int32 `csv:"RewardItem9Count,omitempty"` // Reward道具9数量
|
||||
|
||||
RewardItemMap map[uint32]uint32
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) loadRewardData() {
|
||||
g.RewardDataMap = make(map[int32]*RewardData)
|
||||
data := g.readCsvFileData("RewardData.csv")
|
||||
var rewardDataList []*RewardData
|
||||
err := csvutil.Unmarshal(data, &rewardDataList)
|
||||
if err != nil {
|
||||
info := fmt.Sprintf("parse file error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
for _, rewardData := range rewardDataList {
|
||||
// list -> map
|
||||
// 奖励物品整合
|
||||
rewardData.RewardItemMap = map[uint32]uint32{
|
||||
uint32(rewardData.RewardItem1ID): uint32(rewardData.RewardItem1Count),
|
||||
uint32(rewardData.RewardItem2ID): uint32(rewardData.RewardItem2Count),
|
||||
uint32(rewardData.RewardItem3ID): uint32(rewardData.RewardItem3Count),
|
||||
uint32(rewardData.RewardItem4ID): uint32(rewardData.RewardItem4Count),
|
||||
uint32(rewardData.RewardItem5ID): uint32(rewardData.RewardItem5Count),
|
||||
uint32(rewardData.RewardItem6ID): uint32(rewardData.RewardItem6Count),
|
||||
uint32(rewardData.RewardItem7ID): uint32(rewardData.RewardItem7Count),
|
||||
uint32(rewardData.RewardItem8ID): uint32(rewardData.RewardItem8Count),
|
||||
uint32(rewardData.RewardItem9ID): uint32(rewardData.RewardItem9Count),
|
||||
}
|
||||
for itemId, count := range rewardData.RewardItemMap {
|
||||
// 两个值都不能为0
|
||||
if itemId == 0 || count == 0 {
|
||||
delete(rewardData.RewardItemMap, itemId)
|
||||
}
|
||||
}
|
||||
g.RewardDataMap[rewardData.RewardID] = rewardData
|
||||
}
|
||||
logger.Info("RewardData count: %v", len(g.RewardDataMap))
|
||||
}
|
||||
Reference in New Issue
Block a user