``` refactor(fight): 重构状态效果初始化逻辑,统一使用InitEffect方法并内置随机持续回合
This commit is contained in:
@@ -64,16 +64,11 @@ func (e *EffectPhysicalAttackAddStatus) Skill_Use_ex() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// 4. 计算持续回合(默认2~3回合,支持通过参数指定)
|
||||
duration := e.getDuration()
|
||||
|
||||
// 5. 获取状态效果实例并设置参数
|
||||
statusEffect := input.Geteffect(input.EffectType.Status, int(e.targetStatus))
|
||||
statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.targetStatus))
|
||||
if statusEffect == nil {
|
||||
return true
|
||||
}
|
||||
statusEffect.Duration(duration)
|
||||
statusEffect.SetArgs(e.Ctx().Our) // 目标为对手
|
||||
|
||||
// 6. 给对手添加状态
|
||||
e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect)
|
||||
@@ -85,10 +80,3 @@ func (e *EffectPhysicalAttackAddStatus) SetArgs(t *input.Input, a ...int) {
|
||||
e.EffectNode.SetArgs(t, a...)
|
||||
e.EffectNode.Duration(e.EffectNode.SideEffectArgs[0])
|
||||
}
|
||||
|
||||
// 计算持续回合(封装为独立方法,增强可读性)
|
||||
func (e *EffectPhysicalAttackAddStatus) getDuration() int {
|
||||
|
||||
// 默认随机2~3回合(Int31n(2)返回0/1,+2后为2/3)
|
||||
return int(e.Input.FightC.GetRand().Int31n(2)) + 2
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user