```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

refactor(fight): 重构精灵特效类型枚举结构
This commit is contained in:
昔念
2026-03-27 00:28:25 +08:00
parent a3740d417d
commit ed84e4d2df
2 changed files with 23 additions and 14 deletions

View File

@@ -14,22 +14,20 @@ import (
// 战斗结束原因枚举
type EnumEffectType uint16
// 繁殖加成,体力提升加成
// <!-- Stat: 精灵特效Stat: 0: 无效(默认值), 1: 永久, 2: 有`有效次数'的特效 3: 爆发特效 4: 异能精灵特质5特训6魂印-->
var EffectType = enum.New[struct {
// ========== 新增精灵特效Stat枚举项 ==========
Invalid EnumEffectType `enum:"0"` // 无效(默认值)
NewSel EnumEffectType `enum:"1"` // 特性
LimitedTimes EnumEffectType `enum:"2"` // 有有效次数的特效
Burst EnumEffectType `enum:"3"` // 爆发特效
SpecialTrait EnumEffectType `enum:"4"` // 异能精灵特质
Training EnumEffectType `enum:"5"` // 特训
SoulMark EnumEffectType `enum:"6"` // 魂印
//Invalid EnumEffectType `enum:"0"` // 无效(默认值)
NewSel EnumEffectType `enum:"0"` // 特性
//LimitedTimes EnumEffectType `enum:"2"` // 有有效次数的特效
// Burst EnumEffectType `enum:"3"` // 爆发特效
// SpecialTrait EnumEffectType `enum:"4"` // 异能精灵特质
// Training EnumEffectType `enum:"5"` // 特训
// SoulMark EnumEffectType `enum:"6"` // 魂印
// ========== 原有枚举项 ==========
Skill EnumEffectType `enum:"7"` // 技能
Status EnumEffectType `enum:"8"` // 状态
Sub EnumEffectType `enum:"9"` // 子效果
Skill EnumEffectType `enum:"1"` // 技能
Status EnumEffectType `enum:"2"` // 状态 这里是为了防止ID和技能重复
Sub EnumEffectType `enum:"3"` // 子效果,防止ID重复,所以单独划分
}]()

View File

@@ -389,11 +389,22 @@ func (pet *PetInfo) RnadEffect() {
}
}
// 1是特性特质<!-- Stat: 精灵特效Stat: 0: 无效(默认值), 1: 永久, 2: 有`有效次数'的特效 3: 爆发特效 4: 异能精灵特质5特训6魂印-->
// 0: Boss特性
// 1: 特性
// 2: 能量珠
// 3: 爆发特效
// 4: 异能精灵特质
// 5: 特训
// 6: 魂印
// 7 :繁殖加成
// 8 :体力提升加成
// 繁殖加成,体力提升加成 ,这里是防止和其他重复所以定义不同类别,但是实际上,能量珠那些事调用不同id的effect实现
// <!-- Stat: 精灵特效Stat: 0: 无效(默认值), 1: 永久, 2: 有`有效次数'的特效 3: 爆发特效 4: 异能精灵特质5特训6魂印-->
func (pet *PetInfo) GetEffect(ptype int) (int, *PetEffectInfo, bool) {
return utils.FindWithIndex(pet.EffectInfo, func(item PetEffectInfo) bool {
return gconv.Int(xmlres.EffectMAP[int(item.Idx)].Stat) == 1
return item.Status == 1
})
}