mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-03-01 00:35:36 +08:00
init commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"flswld.com/common/utils/endec"
|
||||
"flswld.com/logger"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type AvatarData struct {
|
||||
IconName string `json:"iconName"`
|
||||
BodyType string `json:"bodyType"`
|
||||
QualityType string `json:"qualityType"`
|
||||
ChargeEfficiency int32 `json:"chargeEfficiency"`
|
||||
InitialWeapon int32 `json:"initialWeapon"`
|
||||
WeaponType string `json:"weaponType"`
|
||||
ImageName string `json:"imageName"`
|
||||
AvatarPromoteId int32 `json:"avatarPromoteId"`
|
||||
CutsceneShow string `json:"cutsceneShow"`
|
||||
SkillDepotId int32 `json:"skillDepotId"`
|
||||
StaminaRecoverSpeed int32 `json:"staminaRecoverSpeed"`
|
||||
CandSkillDepotIds []int32 `json:"candSkillDepotIds"`
|
||||
AvatarIdentityType string `json:"avatarIdentityType"`
|
||||
AvatarPromoteRewardLevelList []int32 `json:"avatarPromoteRewardLevelList"`
|
||||
AvatarPromoteRewardIdList []int32 `json:"avatarPromoteRewardIdList"`
|
||||
|
||||
NameTextMapHash int64 `json:"nameTextMapHash"`
|
||||
|
||||
HpBase float64 `json:"hpBase"`
|
||||
AttackBase float64 `json:"attackBase"`
|
||||
DefenseBase float64 `json:"defenseBase"`
|
||||
Critical float64 `json:"critical"`
|
||||
CriticalHurt float64 `json:"criticalHurt"`
|
||||
|
||||
PropGrowCurves []*PropGrowCurve `json:"propGrowCurves"`
|
||||
Id int32 `json:"id"`
|
||||
|
||||
// 计算数据
|
||||
Name string `json:"-"`
|
||||
Abilities []int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) loadAvatarData() {
|
||||
g.AvatarDataMap = make(map[int32]*AvatarData)
|
||||
fileNameList := []string{"AvatarExcelConfigData.json"}
|
||||
for _, fileName := range fileNameList {
|
||||
fileData, err := ioutil.ReadFile(g.excelBinPrefix + fileName)
|
||||
if err != nil {
|
||||
logger.LOG.Error("open file error: %v", err)
|
||||
continue
|
||||
}
|
||||
list := make([]map[string]any, 0)
|
||||
err = json.Unmarshal(fileData, &list)
|
||||
if err != nil {
|
||||
logger.LOG.Error("parse file error: %v", err)
|
||||
continue
|
||||
}
|
||||
for _, v := range list {
|
||||
i, err := json.Marshal(v)
|
||||
if err != nil {
|
||||
logger.LOG.Error("parse file error: %v", err)
|
||||
continue
|
||||
}
|
||||
avatarData := new(AvatarData)
|
||||
err = json.Unmarshal(i, avatarData)
|
||||
if err != nil {
|
||||
logger.LOG.Error("parse file error: %v", err)
|
||||
continue
|
||||
}
|
||||
g.AvatarDataMap[avatarData.Id] = avatarData
|
||||
}
|
||||
}
|
||||
logger.LOG.Info("load %v AvatarData", len(g.AvatarDataMap))
|
||||
for _, v := range g.AvatarDataMap {
|
||||
split := strings.Split(v.IconName, "_")
|
||||
if len(split) > 0 {
|
||||
v.Name = split[len(split)-1]
|
||||
info := g.AbilityEmbryos[v.Name]
|
||||
if info != nil {
|
||||
v.Abilities = make([]int32, 0)
|
||||
for _, ability := range info.Abilities {
|
||||
v.Abilities = append(v.Abilities, endec.Hk4eAbilityHashCode(ability))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO 成长属性要读表
|
||||
|
||||
func (a *AvatarData) GetBaseHpByLevel(level uint8) float64 {
|
||||
return a.HpBase * float64(level)
|
||||
}
|
||||
|
||||
func (a *AvatarData) GetBaseAttackByLevel(level uint8) float64 {
|
||||
return a.AttackBase * float64(level)
|
||||
}
|
||||
|
||||
func (a *AvatarData) GetBaseDefenseByLevel(level uint8) float64 {
|
||||
return a.DefenseBase * float64(level)
|
||||
}
|
||||
Reference in New Issue
Block a user