角色升级初步

This commit is contained in:
UnKownOwO
2023-02-03 02:28:10 +08:00
parent 16e279e38e
commit 734f49821a
8 changed files with 223 additions and 11 deletions

View File

@@ -0,0 +1,31 @@
package gdconf
import (
"fmt"
"hk4e/pkg/logger"
"github.com/jszwec/csvutil"
)
// 角色等级配置表
type AvatarLevelData struct {
Level int32 `csv:"Level"` // 等级
Exp int32 `csv:"Exp,omitempty"` // 升到下一级所需经验
}
func (g *GameDataConfig) loadAvatarLevelData() {
g.AvatarLevelDataMap = make(map[int32]*AvatarLevelData)
data := g.readCsvFileData("AvatarLevelData.csv")
var avatarLevelDataList []*AvatarLevelData
err := csvutil.Unmarshal(data, &avatarLevelDataList)
if err != nil {
info := fmt.Sprintf("parse file error: %v", err)
panic(info)
}
for _, avatarLevelData := range avatarLevelDataList {
// list -> map
g.AvatarLevelDataMap[avatarLevelData.Level] = avatarLevelData
}
logger.Info("AvatarLevelData count: %v", len(g.AvatarLevelDataMap))
}

View File

@@ -0,0 +1,32 @@
package gdconf
import (
"fmt"
"hk4e/pkg/logger"
"github.com/jszwec/csvutil"
)
// 角色突破配置表
type AvatarPromoteData struct {
PromoteId int32 `csv:"PromoteId"` // 角色突破ID
PromoteLevel int32 `csv:"PromoteLevel,omitempty"` // 突破等级
LevelLimit int32 `csv:"LevelLimit,omitempty"` // 解锁等级上限
}
func (g *GameDataConfig) loadAvatarPromoteData() {
g.AvatarPromoteDataMap = make(map[int32]*AvatarPromoteData)
data := g.readCsvFileData("AvatarPromoteData.csv")
var avatarPromoteDataList []*AvatarPromoteData
err := csvutil.Unmarshal(data, &avatarPromoteDataList)
if err != nil {
info := fmt.Sprintf("parse file error: %v", err)
panic(info)
}
for _, avatarPromoteData := range avatarPromoteDataList {
// list -> map
g.AvatarPromoteDataMap[avatarPromoteData.PromoteLevel] = avatarPromoteData
}
logger.Info("AvatarPromoteData count: %v", len(g.AvatarPromoteDataMap))
}

View File

@@ -38,6 +38,8 @@ type GameDataConfig struct {
FetterDataMap map[int32]*FetterData // 角色资料解锁
FetterDataAvatarIdMap map[int32][]int32 // 角色资料解锁角色id索引
ItemDataMap map[int32]*ItemData // 统一道具
AvatarLevelDataMap map[int32]*AvatarLevelData // 角色等级
AvatarPromoteDataMap map[int32]*AvatarPromoteData // 角色突破
}
func InitGameDataConfig() {
@@ -97,6 +99,8 @@ func (g *GameDataConfig) load() {
g.loadGatherData() // 采集物
g.loadFetterData() // 角色资料解锁
g.loadItemData() // 统一道具
g.loadAvatarLevelData() // 角色等级
g.loadAvatarPromoteData() // 角色突破
}
func (g *GameDataConfig) readCsvFileData(fileName string) []byte {

View File

@@ -588,5 +588,40 @@
"origin_name": "数值用类型"
}
]
},
{
"table_name": "AvatarLevelData",
"field_list": [
{
"field_name": "Level",
"field_type": "int32",
"origin_name": "等级"
},
{
"field_name": "Exp",
"field_type": "int32",
"origin_name": "升到下一级所需经验"
}
]
},
{
"table_name": "AvatarPromoteData",
"field_list": [
{
"field_name": "PromoteId",
"field_type": "int32",
"origin_name": "角色突破ID"
},
{
"field_name": "PromoteLevel",
"field_type": "int32",
"origin_name": "突破等级"
},
{
"field_name": "LevelLimit",
"field_type": "int32",
"origin_name": "解锁等级上限"
}
]
}
]