feat(fight): 调整效果叠加逻辑与精灵属性处理

- 将 `MaxStack` 方法重命名为 `CanStack`,并修改其逻辑为布尔值控制是否可叠加
- 更新多个效果文件中的注释和调用方式以适配新的叠加控制方法
- 修复精灵属性类型获取逻辑,增加缓存字段 `PType`
- 修改战斗回合处理流程,优化技能解析顺序和状态比较时机
- 调整状态效果初始化逻辑,确保状态类效果默认允许无限叠加
- 更正伤害类型缺失问题,在固定伤害
This commit is contained in:
2025-11-14 06:14:49 +08:00
parent d52c6cbb79
commit 004ce51c5e
23 changed files with 298 additions and 69 deletions

View File

@@ -14,7 +14,7 @@ type EffectNode struct {
Input *input.Input
stacks int // 当前层数
id int
maxStack int // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层
canStack bool // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层
SideEffectArgs []int // 附加效果参数
// owner bool //是否作用自身
Success bool // 是否执行成功 成功XXX失败XXX
@@ -69,12 +69,12 @@ func (e *EffectNode) Hit(t ...bool) bool {
return e.hit
}
func (e *EffectNode) MaxStack(t ...int) int {
func (e *EffectNode) CanStack(t ...bool) bool {
if len(t) > 0 {
e.maxStack = t[0]
e.canStack = t[0]
}
return e.maxStack
return e.canStack
}
func (e *EffectNode) Duration(t ...int) int {