refactor(effect): 重构效果节点生命周期管理及属主控制逻辑
- 将Alive()方法改为Alive(bool)可设置方法,替代NotALive() - 将GetOwner()改为Owner(bool)可设置方法 - 修复效果初始化时默认激活状态 - 优化效果叠层和取消逻辑 - 修正超时处理日志输出
This commit is contained in:
@@ -34,7 +34,7 @@ func Geteffect(etype EnumEffectType, id int) Effect {
|
||||
//todo 获取前GetEffect
|
||||
|
||||
eff := deep.MustCopy(ret)
|
||||
|
||||
eff.Alive(true) //添加后默认激活
|
||||
return eff
|
||||
//todo 获取后GetEffect
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func (c *Input) AddEffect(e Effect) {
|
||||
if v.ID() == e.ID() && v.Alive() {
|
||||
|
||||
if v.MaxStack() > 0 {
|
||||
v.NotALive() //取消之前效果
|
||||
e.Alive(false) //取消之前效果
|
||||
if v.Stack() <= v.MaxStack() { //如果小于最大叠层,状态可以叠层
|
||||
e.SetArgs(v.GetInput(), v.GetArgs()...) //参数输入
|
||||
e.Stack(v.Stack() + e.Stack()) //获取到当前叠层数然后叠加
|
||||
@@ -152,9 +152,8 @@ func (c *Input) CancelTurn(efftype bool) {
|
||||
for _, value := range c.Effects {
|
||||
if value.Duration() > 0 { //false是自身,true是对方,反转后为真就是自己的
|
||||
//slice = append(slice[:i], slice[i+1:]...)
|
||||
value.NotALive()
|
||||
value.Alive(false)
|
||||
}
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user