Files
hk4e/gs/config/avatar_skill_data.go

67 lines
1.9 KiB
Go

package config
import (
"encoding/json"
"os"
"hk4e/common/constant"
"hk4e/pkg/logger"
)
type AvatarSkillData struct {
Id int32 `json:"id"`
CdTime float64 `json:"cdTime"`
CostElemVal int32 `json:"costElemVal"`
MaxChargeNum int32 `json:"maxChargeNum"`
TriggerID int32 `json:"triggerID"`
IsAttackCameraLock bool `json:"isAttackCameraLock"`
ProudSkillGroupId int32 `json:"proudSkillGroupId"`
CostElemType string `json:"costElemType"`
LockWeightParams []float64 `json:"lockWeightParams"`
NameTextMapHash int64 `json:"nameTextMapHash"`
AbilityName string `json:"abilityName"`
LockShape string `json:"lockShape"`
GlobalValueKey string `json:"globalValueKey"`
// 计算属性
CostElemTypeX *constant.ElementTypeValue `json:"-"`
}
func (g *GameDataConfig) loadAvatarSkillData() {
g.AvatarSkillDataMap = make(map[int32]*AvatarSkillData)
fileNameList := []string{"AvatarSkillExcelConfigData.json"}
for _, fileName := range fileNameList {
fileData, err := os.ReadFile(g.excelBinPrefix + fileName)
if err != nil {
logger.Error("open file error: %v", err)
continue
}
list := make([]map[string]any, 0)
err = json.Unmarshal(fileData, &list)
if err != nil {
logger.Error("parse file error: %v", err)
continue
}
for _, v := range list {
i, err := json.Marshal(v)
if err != nil {
logger.Error("parse file error: %v", err)
continue
}
avatarSkillData := new(AvatarSkillData)
err = json.Unmarshal(i, avatarSkillData)
if err != nil {
logger.Error("parse file error: %v", err)
continue
}
g.AvatarSkillDataMap[avatarSkillData.Id] = avatarSkillData
}
}
logger.Info("load %v AvatarSkillData", len(g.AvatarSkillDataMap))
for _, v := range g.AvatarSkillDataMap {
v.CostElemTypeX = constant.ElementTypeConst.STRING_MAP[v.CostElemType]
}
}