mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 14:22:26 +08:00
角色升级初步
This commit is contained in:
31
gdconf/avatar_level_data.go
Normal file
31
gdconf/avatar_level_data.go
Normal 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))
|
||||
}
|
||||
32
gdconf/avatar_promote_data.go
Normal file
32
gdconf/avatar_promote_data.go
Normal 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))
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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": "解锁等级上限"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user