diff --git a/logic/service/fight/input/effect.go b/logic/service/fight/input/effect.go index 32fedf12..9fd85115 100644 --- a/logic/service/fight/input/effect.go +++ b/logic/service/fight/input/effect.go @@ -150,19 +150,20 @@ func (our *Input) AddEffect(e Effect) { if v.ID() == e.ID() && //找到相同的效果id v.Alive() && //如果之前的效果还存活 equalInts(v.GetArgs(), e.GetArgs()) { //如果层数可以叠加或者是无限层数 + if v.MaxStack() == 0 { v.Alive(false) //不允许叠层,取消效果 e.Duration(utils.Max(e.Duration(), v.Duration())) - } else { ///e.Alive(false) //取消之前效果 if v.Stack() <= v.MaxStack() { //如果小于最大叠层,状态可以叠层 - e.Stack(v.Stack() + e.Stack()) //获取到当前叠层数然后叠加 + v.Stack(v.Stack() + e.Stack()) //获取到当前叠层数然后叠加 //这里直接返回,不再继续执行后续效果,因为这里是可以叠加的效果 //v.Duration(e.Duration()) //回合数覆盖 } + v.Duration(utils.Max(e.Duration(), v.Duration())) return // c.Effects = append(c.Effects, e) //return