From 20f9af7dca3b0fd2e3763920856ee2c868c54152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Wed, 22 Oct 2025 00:41:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(logic/service/fight):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=88=98=E6=96=97=E6=95=88=E6=9E=9C=E6=B7=BB=E5=8A=A0=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=B9=B6=E4=BC=98=E5=8C=96=E8=B0=83=E8=AF=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 effect_10-16_94_99_114.go 中正确设置 Effect 字段的自我引用 - 修复 OnHit 方法中效果添加的逻辑问题 - 在 node.go 的 AddEffect 方法中增加调试信息,输出效果 ID 和持续回合数 - 优化调试日志格式,便于追踪效果的持续时间变化 --- logic/service/fight/effect/effect_10-16_94_99_114.go | 2 ++ logic/service/fight/input/node.go | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/logic/service/fight/effect/effect_10-16_94_99_114.go b/logic/service/fight/effect/effect_10-16_94_99_114.go index d8ed8036..9aa04bc1 100644 --- a/logic/service/fight/effect/effect_10-16_94_99_114.go +++ b/logic/service/fight/effect/effect_10-16_94_99_114.go @@ -15,6 +15,7 @@ func newp(t1 info.EnumBattleStatus) *Effect10 { t := &Effect10{ Status: t1, } + t.Effect = t return t } @@ -59,6 +60,7 @@ func (e *Effect10) OnHit(opp *input.Input, skill *info.SkillEntity) { eff := input.Geteffect(input.EffectType.Status, int(e.Status)) if eff.ID != 0 { eff.Effect.Duration(int(t1 + 1)) + opp.AddEffect(eff) } diff --git a/logic/service/fight/input/node.go b/logic/service/fight/input/node.go index 6124e3ed..c00e684b 100644 --- a/logic/service/fight/input/node.go +++ b/logic/service/fight/input/node.go @@ -111,7 +111,7 @@ func (c *Input) AddEffect(e *EffectID) { } //todo 免疫 //TODO 先激活 - + fmt.Println("产生回合数", e.ID, e.Effect.Duration()) // 如果已有同 ID 的效果,尝试叠加 eff, ok := c.Effects.LoadOrStore(e.ID, e.Effect) if ok { @@ -132,7 +132,7 @@ func (c *Input) AddEffect(e *EffectID) { } else { //这里,说明是延续回合效果 - fmt.Println("回合数", value.Duration()) + fmt.Println(e.ID, "回合数", value.Duration()) value.Duration(value.Duration()) } return false