``` refactor(fight): 重构状态效果初始化逻辑,统一使用InitEffect方法并内置随机持续回合

This commit is contained in:
1
2025-12-11 19:12:54 +00:00
parent 8eb0a1324b
commit 5ca43fe21f
16 changed files with 42 additions and 72 deletions

View File

@@ -63,26 +63,22 @@ func (e *Effect10) OnSkill() bool {
if !success {
return true
}
var duration int
if len(e.EffectNode.SideEffectArgs) > 1 {
// 持续回合
duration = e.EffectNode.SideEffectArgs[1]
}
// 持续回合
if duration == 0 {
duration = int(e.Input.FightC.GetRand().Int31n(2)) // 默认随机 2~3 回合
duration++
}
// 获取状态效果
eff := input.Geteffect(input.EffectType.Status, int(e.Status))
eff := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Status))
if eff == nil {
return true
}
eff.Duration(duration)
eff.SetArgs(e.Ctx().Our) //输入参数是对方
if len(e.EffectNode.SideEffectArgs) > 1 {
// 持续回合
eff.Duration(e.EffectNode.SideEffectArgs[1])
}
e.Ctx().Opp.AddEffect(e.Ctx().Our, eff)
return true
}