Files
hk4e/gdconf/avatar_skill_data.go
2023-02-09 19:20:47 +08:00

44 lines
1.4 KiB
Go

package gdconf
import (
"fmt"
"hk4e/pkg/logger"
"github.com/jszwec/csvutil"
)
// AvatarSkillData 角色技能配置表
type AvatarSkillData struct {
AvatarSkillId int32 `csv:"AvatarSkillId"` // ID
AbilityName string `csv:"AbilityName,omitempty"` // Ability名称
// TODO 这个字段实际上并不是拿来直接扣体力的 体力应该由ability来做 但是现在我捋不清所以摆烂了 改了一下表暂时先这么用着
CostStamina int32 `csv:"CostStamina,omitempty"` // 消耗体力
CostElemType int32 `csv:"CostElemType,omitempty"` // 消耗能量类型
CostElemVal int32 `csv:"CostElemVal,omitempty"` // 消耗能量值
}
func (g *GameDataConfig) loadAvatarSkillData() {
g.AvatarSkillDataMap = make(map[int32]*AvatarSkillData)
data := g.readCsvFileData("AvatarSkillData.csv")
var avatarSkillDataList []*AvatarSkillData
err := csvutil.Unmarshal(data, &avatarSkillDataList)
if err != nil {
info := fmt.Sprintf("parse file error: %v", err)
panic(info)
}
for _, avatarSkillData := range avatarSkillDataList {
// list -> map
g.AvatarSkillDataMap[avatarSkillData.AvatarSkillId] = avatarSkillData
}
logger.Info("AvatarSkillData count: %v", len(g.AvatarSkillDataMap))
}
func GetAvatarSkillDataById(avatarSkillId int32) *AvatarSkillData {
return CONF.AvatarSkillDataMap[avatarSkillId]
}
func GetAvatarSkillDataMap() map[int32]*AvatarSkillData {
return CONF.AvatarSkillDataMap
}