refactor(effect): 重构效果节点生命周期管理及属主控制逻辑

- 将Alive()方法改为Alive(bool)可设置方法,替代NotALive()
- 将GetOwner()改为Owner(bool)可设置方法
- 修复效果初始化时默认激活状态
- 优化效果叠层和取消逻辑
- 修正超时处理日志输出
This commit is contained in:
1
2025-11-03 14:46:33 +00:00
parent 1ebf500121
commit 35935549bd
13 changed files with 77 additions and 125 deletions

View File

@@ -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
}