Files
hk4e/gs/config/fetter_data.go
2022-12-19 13:40:04 +08:00

56 lines
1.5 KiB
Go

package config
import (
"encoding/json"
"os"
"hk4e/pkg/logger"
)
type FetterData struct {
AvatarId int32 `json:"avatarId"`
FetterId int32 `json:"fetterId"`
}
func (g *GameDataConfig) loadFetterData() {
g.FetterDataMap = make(map[int32]*FetterData)
fileNameList := []string{"FetterInfoExcelConfigData.json", "FettersExcelConfigData.json", "FetterStoryExcelConfigData.json", "PhotographExpressionExcelConfigData.json", "PhotographPosenameExcelConfigData.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
}
fetterData := new(FetterData)
err = json.Unmarshal(i, fetterData)
if err != nil {
logger.Error("parse file error: %v", err)
continue
}
g.FetterDataMap[fetterData.FetterId] = fetterData
}
}
logger.Info("load %v FetterData", len(g.FetterDataMap))
g.AvatarFetterDataMap = make(map[int32][]int32)
for _, v := range g.FetterDataMap {
avatarFetterIdList, exist := g.AvatarFetterDataMap[v.AvatarId]
if !exist {
avatarFetterIdList = make([]int32, 0)
}
avatarFetterIdList = append(avatarFetterIdList, v.FetterId)
g.AvatarFetterDataMap[v.AvatarId] = avatarFetterIdList
}
}