mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-03-01 00:35:36 +08:00
读取角色技能配置表
This commit is contained in:
98
gdconf/avatar_skill_depot_data.go
Normal file
98
gdconf/avatar_skill_depot_data.go
Normal file
@@ -0,0 +1,98 @@
|
||||
package gdconf
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/jszwec/csvutil"
|
||||
"hk4e/pkg/logger"
|
||||
)
|
||||
|
||||
// 角色技能库配置表
|
||||
|
||||
type AvatarSkillDepotData struct {
|
||||
AvatarSkillDepotId int32 `csv:"AvatarSkillDepotId"` // ID
|
||||
EnergySkill int32 `csv:"EnergySkill,omitempty"` // 充能技能
|
||||
Skill1 int32 `csv:"Skill1,omitempty"` // 技能1
|
||||
Skill2 int32 `csv:"Skill2,omitempty"` // 技能2
|
||||
Skill3 int32 `csv:"Skill3,omitempty"` // 技能3
|
||||
Skill4 int32 `csv:"Skill4,omitempty"` // 技能4
|
||||
ProudSkill1GroupId int32 `csv:"ProudSkill1GroupId,omitempty"` // 固有得意技组1ID
|
||||
ProudSkill1NeedAvatarPromoteLevel int32 `csv:"ProudSkill1NeedAvatarPromoteLevel,omitempty"` // 固有得意技组1激活所需角色突破等级
|
||||
ProudSkill2GroupId int32 `csv:"ProudSkill2GroupId,omitempty"` // 固有得意技组2ID
|
||||
ProudSkill2NeedAvatarPromoteLevel int32 `csv:"ProudSkill2NeedAvatarPromoteLevel,omitempty"` // 固有得意技组2激活所需角色突破等级
|
||||
ProudSkill3GroupId int32 `csv:"ProudSkill3GroupId,omitempty"` // 固有得意技组3ID
|
||||
ProudSkill3NeedAvatarPromoteLevel int32 `csv:"ProudSkill3NeedAvatarPromoteLevel,omitempty"` // 固有得意技组3激活所需角色突破等级
|
||||
ProudSkill4GroupId int32 `csv:"ProudSkill4GroupId,omitempty"` // 固有得意技组4ID
|
||||
ProudSkill4NeedAvatarPromoteLevel int32 `csv:"ProudSkill4NeedAvatarPromoteLevel,omitempty"` // 固有得意技组4激活所需角色突破等级
|
||||
ProudSkill5GroupId int32 `csv:"ProudSkill5GroupId,omitempty"` // 固有得意技组5ID
|
||||
ProudSkill5NeedAvatarPromoteLevel int32 `csv:"ProudSkill5NeedAvatarPromoteLevel,omitempty"` // 固有得意技组5激活所需角色突破等级
|
||||
SkillDepotAbilityGroup string `csv:"SkillDepotAbilityGroup,omitempty"` // AbilityGroup
|
||||
|
||||
Skills []int32
|
||||
InherentProudSkillOpens []*InherentProudSkillOpens
|
||||
}
|
||||
|
||||
type InherentProudSkillOpens struct {
|
||||
ProudSkillGroupId int32 `json:"proudSkillGroupId"` // 固有得意技组ID
|
||||
NeedAvatarPromoteLevel int32 `json:"needAvatarPromoteLevel"` // 固有得意技组激活所需角色突破等级
|
||||
}
|
||||
|
||||
func (g *GameDataConfig) loadAvatarSkillDepotData() {
|
||||
g.AvatarSkillDepotDataMap = make(map[int32]*AvatarSkillDepotData)
|
||||
data := g.readCsvFileData("AvatarSkillDepotData.csv")
|
||||
var avatarSkillDepotDataList []*AvatarSkillDepotData
|
||||
err := csvutil.Unmarshal(data, &avatarSkillDepotDataList)
|
||||
if err != nil {
|
||||
info := fmt.Sprintf("parse file error: %v", err)
|
||||
panic(info)
|
||||
}
|
||||
for _, avatarSkillDepotData := range avatarSkillDepotDataList {
|
||||
// 把全部技能数据放进一个列表里 以后要是没用到或者不需要的话就可以删了
|
||||
avatarSkillDepotData.Skills = make([]int32, 0)
|
||||
if avatarSkillDepotData.Skill1 != 0 {
|
||||
avatarSkillDepotData.Skills = append(avatarSkillDepotData.Skills, avatarSkillDepotData.Skill1)
|
||||
}
|
||||
if avatarSkillDepotData.Skill2 != 0 {
|
||||
avatarSkillDepotData.Skills = append(avatarSkillDepotData.Skills, avatarSkillDepotData.Skill2)
|
||||
}
|
||||
if avatarSkillDepotData.Skill3 != 0 {
|
||||
avatarSkillDepotData.Skills = append(avatarSkillDepotData.Skills, avatarSkillDepotData.Skill3)
|
||||
}
|
||||
if avatarSkillDepotData.Skill4 != 0 {
|
||||
avatarSkillDepotData.Skills = append(avatarSkillDepotData.Skills, avatarSkillDepotData.Skill4)
|
||||
}
|
||||
avatarSkillDepotData.InherentProudSkillOpens = make([]*InherentProudSkillOpens, 0)
|
||||
if avatarSkillDepotData.ProudSkill1GroupId != 0 {
|
||||
avatarSkillDepotData.InherentProudSkillOpens = append(avatarSkillDepotData.InherentProudSkillOpens, &InherentProudSkillOpens{
|
||||
ProudSkillGroupId: avatarSkillDepotData.ProudSkill1GroupId,
|
||||
NeedAvatarPromoteLevel: avatarSkillDepotData.ProudSkill1NeedAvatarPromoteLevel,
|
||||
})
|
||||
}
|
||||
if avatarSkillDepotData.ProudSkill2GroupId != 0 {
|
||||
avatarSkillDepotData.InherentProudSkillOpens = append(avatarSkillDepotData.InherentProudSkillOpens, &InherentProudSkillOpens{
|
||||
ProudSkillGroupId: avatarSkillDepotData.ProudSkill2GroupId,
|
||||
NeedAvatarPromoteLevel: avatarSkillDepotData.ProudSkill2NeedAvatarPromoteLevel,
|
||||
})
|
||||
}
|
||||
if avatarSkillDepotData.ProudSkill3GroupId != 0 {
|
||||
avatarSkillDepotData.InherentProudSkillOpens = append(avatarSkillDepotData.InherentProudSkillOpens, &InherentProudSkillOpens{
|
||||
ProudSkillGroupId: avatarSkillDepotData.ProudSkill3GroupId,
|
||||
NeedAvatarPromoteLevel: avatarSkillDepotData.ProudSkill3NeedAvatarPromoteLevel,
|
||||
})
|
||||
}
|
||||
if avatarSkillDepotData.ProudSkill4GroupId != 0 {
|
||||
avatarSkillDepotData.InherentProudSkillOpens = append(avatarSkillDepotData.InherentProudSkillOpens, &InherentProudSkillOpens{
|
||||
ProudSkillGroupId: avatarSkillDepotData.ProudSkill4GroupId,
|
||||
NeedAvatarPromoteLevel: avatarSkillDepotData.ProudSkill4NeedAvatarPromoteLevel,
|
||||
})
|
||||
}
|
||||
if avatarSkillDepotData.ProudSkill5GroupId != 0 {
|
||||
avatarSkillDepotData.InherentProudSkillOpens = append(avatarSkillDepotData.InherentProudSkillOpens, &InherentProudSkillOpens{
|
||||
ProudSkillGroupId: avatarSkillDepotData.ProudSkill5GroupId,
|
||||
NeedAvatarPromoteLevel: avatarSkillDepotData.ProudSkill5NeedAvatarPromoteLevel,
|
||||
})
|
||||
}
|
||||
// list -> map
|
||||
g.AvatarSkillDepotDataMap[avatarSkillDepotData.AvatarSkillDepotId] = avatarSkillDepotData
|
||||
}
|
||||
logger.LOG.Info("AvatarSkillDepotData count: %v", len(g.AvatarSkillDepotDataMap))
|
||||
}
|
||||
Reference in New Issue
Block a user