修改战斗系统
This commit is contained in:
30
common/data/xmlres/effect.go
Normal file
30
common/data/xmlres/effect.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package xmlres
|
||||
|
||||
import "github.com/ECUST-XX/xml"
|
||||
|
||||
// -------------------------- 1. 定义XML映射结构体 --------------------------
|
||||
// NewSe 对应XML根节点 <NewSe>
|
||||
type NewSe struct {
|
||||
XMLName xml.Name `xml:"NewSe"` // 根节点名称
|
||||
SeIdxList []NewSeIdx `xml:"NewSeIdx"` // 子节点列表 <NewSeIdx>
|
||||
}
|
||||
|
||||
// NewSeIdx 对应XML子节点 <NewSeIdx>,映射所有属性
|
||||
type NewSeIdx struct {
|
||||
// 必选属性(所有<NewSeIdx>都包含)
|
||||
Idx string `xml:"Idx,attr"` // 特效索引(如"1006")
|
||||
Stat string `xml:"Stat,attr"` // 特效状态(1:永久,2:有次数,4:异能特质,5:特殊,7:战队技能)
|
||||
Eid string `xml:"Eid,attr"` // 特效ID(关联前面的1-83、401-420、501-503等)
|
||||
Args string `xml:"Args,attr"` // 特效参数(空格分隔,如"1 5")
|
||||
ArgsS []int
|
||||
// 可选属性(部分<NewSeIdx>包含)
|
||||
CanReset *string `xml:"CanReset,attr,omitempty"` // 是否可重置(1:是)
|
||||
Desc *string `xml:"Desc,attr,omitempty"` // 特效简称(如"叶绿")
|
||||
Intro *string `xml:"Intro,attr,omitempty"` // 特效描述(如"草属性技能威力增加5%")
|
||||
StarLevel *string `xml:"StarLevel,attr,omitempty"` // 星级(0-5)
|
||||
Times *string `xml:"Times,attr,omitempty"` // 有效次数(仅Stat=2时生效)
|
||||
ItemId *string `xml:"ItemId,attr,omitempty"` // 关联道具ID(如"300030")
|
||||
Des *string `xml:"Des,attr,omitempty"` // 道具/次数特效描述
|
||||
AdditionType *string `xml:"AdditionType,attr,omitempty"` // 加成类型(1:种族值,2:技能威力,3:固定属性)
|
||||
AdditionNum *string `xml:"AdditionNum,attr,omitempty"` // 加成数值
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"github.com/gogf/gf/v2/os/gfile"
|
||||
"github.com/gogf/gf/v2/os/gfsnotify"
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
)
|
||||
|
||||
var path string
|
||||
@@ -33,11 +34,12 @@ var (
|
||||
SkillMap map[int]Move
|
||||
PetMAP map[int]PetInfo //宠物配置
|
||||
NatureRootMap map[int]NatureItem
|
||||
EffectMAP map[int]NewSeIdx
|
||||
)
|
||||
|
||||
func initfile() {
|
||||
path1, _ := os.Getwd()
|
||||
path = path1 + "/public/assets/"
|
||||
path = path1 + "/public/config/"
|
||||
MapConfig = getXml[Maps](path + "210.xml")
|
||||
ItemsConfig = getXml[Items](path + "43.xml")
|
||||
TalkConfig = getXml[TalkCount](path + "talk.xml")
|
||||
@@ -56,8 +58,8 @@ func initfile() {
|
||||
// })
|
||||
SkillMap = make(map[int]Move, len(Skill.Moves))
|
||||
for _, v := range Skill.Moves {
|
||||
v.SideEffectS = parseSideEffectArgs(v.SideEffect)
|
||||
v.SideEffectArgS = parseSideEffectArgs(v.SideEffectArg)
|
||||
v.SideEffectS = ParseSideEffectArgs(v.SideEffect)
|
||||
v.SideEffectArgS = ParseSideEffectArgs(v.SideEffectArg)
|
||||
SkillMap[v.ID] = v
|
||||
}
|
||||
|
||||
@@ -72,6 +74,18 @@ func initfile() {
|
||||
return m.ID
|
||||
|
||||
})
|
||||
EffectMAP1 := getXml[NewSe](path + "bossbuff和特性.xml")
|
||||
EffectMAP = make(map[int]NewSeIdx, len(EffectMAP1.SeIdxList))
|
||||
for _, v := range EffectMAP1.SeIdxList {
|
||||
v.ArgsS = ParseSideEffectArgs(v.Args)
|
||||
|
||||
EffectMAP[gconv.Int(v.Idx)] = v
|
||||
}
|
||||
// EffectMAP = utils.ToMap[NewSeIdx, int](EffectMAP1.SeIdxList, func(m NewSeIdx) int {
|
||||
// return gconv.Int(m.Idx)
|
||||
|
||||
// })
|
||||
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func parseSideEffectArgs(argsStr string) []int {
|
||||
func ParseSideEffectArgs(argsStr string) []int {
|
||||
if argsStr == "" {
|
||||
return []int{}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user