feat(pet): 新增宠物功能和相关数据结构
- 新增宠物配置和自然属性配置的 XML 解析 - 实现宠物信息生成和属性计算逻辑 - 添加宠物数据库模型和相关服务 - 更新登录和任务完成逻辑,支持宠物相关操作
This commit is contained in:
@@ -30,7 +30,9 @@ var (
|
||||
//Monster MonsterRoot //野怪配置
|
||||
MonsterMap map[int]TMapConfig
|
||||
//Skill MovesTbl //技能配置
|
||||
SkillMap map[int]Move
|
||||
SkillMap map[int]Move
|
||||
PetMAP map[int]PetMM //宠物配置
|
||||
NatureRootMap map[int]NatureItem
|
||||
)
|
||||
|
||||
func initfile() {
|
||||
@@ -51,7 +53,17 @@ func initfile() {
|
||||
return m.ID
|
||||
|
||||
})
|
||||
pet := getXml[Monsters](path + "226.xml")
|
||||
PetMAP = utils.ToMap[PetMM, int](pet.Monsters, func(m PetMM) int {
|
||||
return m.ID
|
||||
|
||||
})
|
||||
NatureRootMap1 := getXml[NatureRoot](path + "nature.xml")
|
||||
|
||||
NatureRootMap = utils.ToMap[NatureItem, int](NatureRootMap1.Items, func(m NatureItem) int {
|
||||
return m.ID
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
21
common/data/xmlres/nature.go
Normal file
21
common/data/xmlres/nature.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package xmlres
|
||||
|
||||
import "github.com/ECUST-XX/xml"
|
||||
|
||||
// NatureItem 表示单个性格修正项
|
||||
type NatureItem struct {
|
||||
ID int `xml:"id,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
AttackCorrect float64 `xml:"m_attack,attr"` // 攻击修正
|
||||
DefenseCorrect float64 `xml:"m_defence,attr"` // 防御修正
|
||||
SaCorrect float64 `xml:"m_SA,attr"` // 特攻修正
|
||||
SdCorrect float64 `xml:"m_SD,attr"` // 特防修正
|
||||
SpeedCorrect float64 `xml:"m_speed,attr"` // 速度修正
|
||||
Desc string `xml:"desc,attr"` // 描述
|
||||
}
|
||||
|
||||
// NatureRoot 表示XML根节点
|
||||
type NatureRoot struct {
|
||||
XMLName xml.Name `xml:"root"`
|
||||
Items []NatureItem `xml:"item"`
|
||||
}
|
||||
50
common/data/xmlres/pet.go
Normal file
50
common/data/xmlres/pet.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package xmlres
|
||||
|
||||
import "github.com/ECUST-XX/xml"
|
||||
|
||||
// Move 表示怪物可学习的技能
|
||||
type PetMoves struct {
|
||||
ID int `xml:"ID,attr"`
|
||||
LearningLv int `xml:"LearningLv,attr"`
|
||||
}
|
||||
|
||||
// LearnableMoves 包含怪物可学习的技能列表
|
||||
type LearnableMoves struct {
|
||||
Moves []PetMoves `xml:"Move"`
|
||||
}
|
||||
|
||||
// PetMM 表示一个怪物的信息
|
||||
type PetMM struct {
|
||||
ID int `xml:"ID,attr"`
|
||||
DefName string `xml:"DefName,attr"`
|
||||
Type int `xml:"Type,attr"`
|
||||
GrowthType int `xml:"GrowthType,attr"`
|
||||
HP int `xml:"HP,attr"`
|
||||
Atk int `xml:"Atk,attr"`
|
||||
Def int `xml:"Def,attr"`
|
||||
SpAtk int `xml:"SpAtk,attr"`
|
||||
SpDef int `xml:"SpDef,attr"`
|
||||
Spd int `xml:"Spd,attr"`
|
||||
YieldingExp int `xml:"YieldingExp,attr"`
|
||||
CatchRate string `xml:"CatchRate,attr"`
|
||||
YieldingEV string `xml:"YieldingEV,attr"`
|
||||
EvolvesFrom int `xml:"EvolvesFrom,attr"`
|
||||
EvolvesTo int `xml:"EvolvesTo,attr"`
|
||||
EvolvingLv int `xml:"EvolvingLv,attr"`
|
||||
FreeForbidden int `xml:"FreeForbidden,attr"`
|
||||
FuseMaster int `xml:"FuseMaster,attr"`
|
||||
FuseSub int `xml:"FuseSub,attr"`
|
||||
Gender int `xml:"Gender,attr"`
|
||||
PetClass int `xml:"PetClass,attr"`
|
||||
FormParam float64 `xml:"FormParam,attr"`
|
||||
CharacterAttrParam int `xml:"CharacterAttrParam,attr"`
|
||||
GradeParam float64 `xml:"GradeParam,attr"`
|
||||
AddSeParam int `xml:"AddSeParam,attr"`
|
||||
LearnableMoves LearnableMoves `xml:"LearnableMoves"`
|
||||
}
|
||||
|
||||
// Monsters 表示所有怪物的集合
|
||||
type Monsters struct {
|
||||
XMLName xml.Name `xml:"Monsters"`
|
||||
Monsters []PetMM `xml:"Monster"`
|
||||
}
|
||||
Reference in New Issue
Block a user