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