From b9739f7b4e0d289fe0bf7ef009c743acb1a5256f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Sun, 8 Mar 2026 22:53:14 +0800 Subject: [PATCH] =?UTF-8?q?```=20refactor(fight/effect):=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=8A=80=E8=83=BD=E6=95=88=E6=9E=9C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除独立的Effect112实现,将其整合到selfkill模块中。 通过继承SelfKill结构体来实现技能112的效果,提高代码复用性。 同时修复了原Effect112中的方法命名规范问题,将OnSkill改为Skill_Use。 删除了无用的Effect59 SwitchIn方法。 ``` --- logic/service/fight/effect/effect_112.go | 40 ----------------------- logic/service/fight/effect/selfkill.go | 41 +++++++++++++++++------- 2 files changed, 30 insertions(+), 51 deletions(-) delete mode 100644 logic/service/fight/effect/effect_112.go diff --git a/logic/service/fight/effect/effect_112.go b/logic/service/fight/effect/effect_112.go deleted file mode 100644 index 7cf74de44..000000000 --- a/logic/service/fight/effect/effect_112.go +++ /dev/null @@ -1,40 +0,0 @@ -package effect - -import ( - "blazing/logic/service/fight/info" - "blazing/logic/service/fight/input" - "blazing/logic/service/fight/node" - - "github.com/alpacahq/alpacadecimal" -) - -/** - * 牺牲全部体力造成对手250~300点伤害,造成致命伤害时,对手剩下1点体力 - */ -type Effect112 struct { - node.EffectNode - can bool -} - -func init() { - - input.InitEffect(input.EffectType.Skill, 112, &Effect112{}) - -} - -// 命中之后 -func (e *Effect112) OnSkill() bool { - - e.can = true - e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ - Type: info.DamageType.Fixed, - Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurrentPet.Info.MaxHp)), - }) - n := int64(e.Input.FightC.GetRand().Int31n(int32(50+1))) + 250 - e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ - Type: info.DamageType.Fixed, - Damage: alpacadecimal.Max(alpacadecimal.NewFromInt(n), e.Ctx().Opp.CurrentPet.GetHP().Sub(alpacadecimal.NewFromInt(1))), - }) - e.Ctx().Our.CurrentPet.NotAlive = true - return true -} diff --git a/logic/service/fight/effect/selfkill.go b/logic/service/fight/effect/selfkill.go index 8c3aadb91..9d70c90a1 100644 --- a/logic/service/fight/effect/selfkill.go +++ b/logic/service/fight/effect/selfkill.go @@ -30,6 +30,7 @@ func (e *SelfKill) OnSkill() bool { Type: info.DamageType.Fixed, Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurrentPet.Info.MaxHp)), }) + e.can = true e.Ctx().Our.CurrentPet.NotAlive = true return true } @@ -38,17 +39,6 @@ func (e *SelfKill) OnSkill() bool { func (e *SelfKill) SwitchOut(in *input.Input) bool { return true } -func (e *Effect59) SwitchIn(in *input.Input) bool { - // 1. 检查效果是否生效(当次攻击有效) - - // - if in != e.Ctx().Our { - return true - } - e.can = true - - return true -} /** * 消耗自身全部体力(体力降到0), 使下一只出战精灵的 battle_lv1 和 battle_lv2 能力提升1个等级 @@ -143,3 +133,32 @@ func (e *Effect144) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { return true } + +/** + * 牺牲全部体力造成对手250~300点伤害,造成致命伤害时,对手剩下1点体力 + */ +type Effect112 struct { + SelfKill +} + +func init() { + + input.InitEffect(input.EffectType.Skill, 112, &Effect112{}) + +} + +// 命中之后 +func (e *Effect112) Skill_Use() bool { + + e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ + Type: info.DamageType.Fixed, + Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurrentPet.Info.MaxHp)), + }) + n := int64(e.Input.FightC.GetRand().Int31n(int32(50+1))) + 250 + e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ + Type: info.DamageType.Fixed, + Damage: alpacadecimal.Max(alpacadecimal.NewFromInt(n), e.Ctx().Opp.CurrentPet.GetHP().Sub(alpacadecimal.NewFromInt(1))), + }) + e.Ctx().Our.CurrentPet.NotAlive = true + return true +}