diff --git a/logic/service/fight/effect/effect_62.go b/logic/service/fight/effect/effect_62.go index a3df92c9..504db555 100644 --- a/logic/service/fight/effect/effect_62.go +++ b/logic/service/fight/effect/effect_62.go @@ -53,6 +53,13 @@ func (e *Effect62) SkillUseEnd(opp *input.Input) { } +func (e *Effect62) SetArgs(args ...int) { + + e.EffectNode.SetArgs(args...) + e.EffectNode.Duration(args[0]) + +} + // 因为对方切精灵,这个效果也要无效掉 func (this *Effect62) OnSwitchIn() bool { if this.Hide { //如果还在隐藏,就直接返回 diff --git a/logic/service/fight/input/nodemanger.go b/logic/service/fight/input/nodemanger.go index 0d67c252..f9db7aaf 100644 --- a/logic/service/fight/input/nodemanger.go +++ b/logic/service/fight/input/nodemanger.go @@ -27,7 +27,7 @@ type Effect interface { SetInput(input *Input) AfterAttr() //在获取属性前,比如重写对方属性AfterAttr BeferAttr() //在获取属性后,比如视为对方属性 - SetArgs(param []int) + SetArgs(param ...int) IsCrit(opp *Input, skill *info.SkillEntity) //是否暴击 CalculateDamage(opp *Input, skill *info.SkillEntity) //击判定成功且伤害计算前触发 OnBeforeCalculateDamage(opp *Input, skill *info.SkillEntity) // 最终伤害计算前触发 @@ -193,6 +193,7 @@ func getTypeName(v interface{}) string { func (c *Input) AddEffect(e Effect) { //todo 免疫 + //TODO 先激活 e.SetInput(c) // 如果已有同 ID 的效果,尝试叠加 for _, eff := range c.Effects { diff --git a/logic/service/fight/node/node.go b/logic/service/fight/node/node.go index ac6444e9..bc01c894 100644 --- a/logic/service/fight/node/node.go +++ b/logic/service/fight/node/node.go @@ -73,7 +73,7 @@ func (this *EffectNode) Duration(t ...int) int { } // 设置参数,加上设置输入源 -func (this *EffectNode) SetArgs(args []int) { +func (this *EffectNode) SetArgs(args ...int) { this.SideEffectArgs = args