From 4a4806fd82cd235b2137a2b0fa19a9e3ec5d0334 Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Sat, 15 Nov 2025 14:23:52 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=A8=E6=8A=80=E8=83=BD=E6=95=88?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/fight/effect/EffectDefeatTrigger.go | 4 ++-- logic/service/fight/effect/effect_113.go | 3 --- logic/service/fight/effect/effect_115.go | 4 ++-- logic/service/fight/effect/effect_116.go | 2 +- logic/service/fight/effect/effect_35.go | 4 +--- logic/service/fight/effect/effect_83.go | 4 ++-- logic/service/fight/effect/effect_88.go | 2 +- logic/service/fight/effect/effect_98.go | 2 +- .../service/fight/effect/effect_EffectConditionalAddDamage.go | 4 ++-- logic/service/space/space.go | 1 + 10 files changed, 13 insertions(+), 17 deletions(-) diff --git a/logic/service/fight/effect/EffectDefeatTrigger.go b/logic/service/fight/effect/EffectDefeatTrigger.go index 9cbebef19..f117ef233 100644 --- a/logic/service/fight/effect/EffectDefeatTrigger.go +++ b/logic/service/fight/effect/EffectDefeatTrigger.go @@ -148,9 +148,9 @@ func (e *EffectDefeatTrigger) triggerLevelUpOnDefeat(at info.AttackValue) { func (e *EffectDefeatTrigger) triggerNextEnemyStatusOnDefeat(at info.AttackValue) { // 这里补充原逻辑中状态施加的完整判断(如检查对手类型是否匹配) // 简化示例:直接处理状态施加 - for _, v := range at.Status { + for i, v := range at.Status { if v > 0 { - nv := input.Geteffect(input.EffectType.Status, int(v)) + nv := input.Geteffect(input.EffectType.Status, int(i)) if nv != nil { e.Ctx().Opp.AddEffect(e.Ctx().Our, nv) } diff --git a/logic/service/fight/effect/effect_113.go b/logic/service/fight/effect/effect_113.go index 3f01a0648..c6940638a 100644 --- a/logic/service/fight/effect/effect_113.go +++ b/logic/service/fight/effect/effect_113.go @@ -14,9 +14,6 @@ type Effect113 struct { } func (e *Effect113) Skill_Hit() bool { - if !e.Hit() { - return true - } if e.Ctx().SkillEntity == nil { return true diff --git a/logic/service/fight/effect/effect_115.go b/logic/service/fight/effect/effect_115.go index 3978bdcc1..129ea5d4e 100644 --- a/logic/service/fight/effect/effect_115.go +++ b/logic/service/fight/effect/effect_115.go @@ -32,11 +32,11 @@ func (e *Effect115) OnSkill() bool { if !ok { return true } - rr := decimal.NewFromInt(1).Div(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) + rr := decimal.NewFromInt(int64(e.Ctx().Our.GetProp(4, true))).Div(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ Type: info.DamageType.Fixed, - Damage: rr.Mul(decimal.NewFromInt(int64(e.Ctx().Our.GetProp(4, true)))), + Damage: rr, }) return true } diff --git a/logic/service/fight/effect/effect_116.go b/logic/service/fight/effect/effect_116.go index 927343fb8..204e279ed 100644 --- a/logic/service/fight/effect/effect_116.go +++ b/logic/service/fight/effect/effect_116.go @@ -38,7 +38,7 @@ func (e *Effect116) Skill_Useed() bool { } if e.Input.FightC.IsFirst(e.Input.Player) { - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, e.Ctx().Our.DamageZone.Damage.Mul(decimal.NewFromInt(5))) + e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, e.Ctx().Our.DamageZone.Damage.Div(decimal.NewFromInt(5))) } return true diff --git a/logic/service/fight/effect/effect_35.go b/logic/service/fight/effect/effect_35.go index 12cf39cc3..3711b057e 100644 --- a/logic/service/fight/effect/effect_35.go +++ b/logic/service/fight/effect/effect_35.go @@ -13,9 +13,7 @@ type Effect35 struct { } func (e *Effect35) Skill_Hit() bool { - if !e.Hit() { - return true - } + s if e.Ctx().SkillEntity == nil { return true diff --git a/logic/service/fight/effect/effect_83.go b/logic/service/fight/effect/effect_83.go index e823cc97b..7aaeda4c8 100644 --- a/logic/service/fight/effect/effect_83.go +++ b/logic/service/fight/effect/effect_83.go @@ -38,7 +38,7 @@ func (e *Effect83) Compare_Pre(fattack *action.SelectSkillAction, sattack *actio return true } - if e.Ctx().Our.CurrentPet.Gender != 2 { + if e.Ctx().Our.CurrentPet.Gender != 1 { return true } @@ -69,7 +69,7 @@ func (e *Effect83) Skill_Hit_Pre(a, b *action.SelectSkillAction) bool { if e.Ctx().SkillEntity.Category() == info.Category.STATUS { return true } - if e.Ctx().Our.CurrentPet.Gender != 1 { + if e.Ctx().Our.CurrentPet.Gender != 2 { return true } diff --git a/logic/service/fight/effect/effect_88.go b/logic/service/fight/effect/effect_88.go index 688368acb..1b6214dc6 100644 --- a/logic/service/fight/effect/effect_88.go +++ b/logic/service/fight/effect/effect_88.go @@ -34,7 +34,7 @@ func (e *Effect88) Damage_Mul(t *info.DamageZone) bool { } if t.Type == info.DamageType.Red { - e.Ctx().Our.DamageZone.Damage = e.Ctx().Our.DamageZone.Damage.Mul(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) + t.Damage = t.Damage.Mul(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) } diff --git a/logic/service/fight/effect/effect_98.go b/logic/service/fight/effect/effect_98.go index c383814d7..edb6d7477 100644 --- a/logic/service/fight/effect/effect_98.go +++ b/logic/service/fight/effect/effect_98.go @@ -34,7 +34,7 @@ func (e *Effect98) Damage_Mul(t *info.DamageZone) bool { if t.Type == info.DamageType.Red { - e.Ctx().Our.DamageZone.Damage = e.Ctx().Our.DamageZone.Damage.Mul(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) + t.Damage = t.Damage.Mul(decimal.NewFromInt(int64(e.SideEffectArgs[1]))) } diff --git a/logic/service/fight/effect/effect_EffectConditionalAddDamage.go b/logic/service/fight/effect/effect_EffectConditionalAddDamage.go index 60a07e5b9..d29b8933b 100644 --- a/logic/service/fight/effect/effect_EffectConditionalAddDamage.go +++ b/logic/service/fight/effect/effect_EffectConditionalAddDamage.go @@ -95,10 +95,10 @@ func conditionIsFrozen(e *EffectConditionalAddDamage) bool { return e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Frozen) } -// conditionIsTypeX:判断对方是否为X属性(需根据实际属性枚举调整) +// conditionIsTypeX:判断对方是否为X属性对方为X性则附加n点伤害 func conditionIsTypeX(e *EffectConditionalAddDamage) bool { // 示例:假设Args[0]为目标属性值,判断对方属性是否匹配 - return e.Ctx().Opp.CurrentPet.PetInfo.Type == e.Args()[0] + return e.Ctx().Opp.CurrentPet.PetInfo.Gender == e.Args()[0] } // conditionIsAbnormal:判断对方是否处于任意异常状态 diff --git a/logic/service/space/space.go b/logic/service/space/space.go index 34dccf459..6aa367f6b 100644 --- a/logic/service/space/space.go +++ b/logic/service/space/space.go @@ -42,6 +42,7 @@ func (s *Space) UP_ARENA(c common.PlayerI, FLAG uint32) { return } s.ARENA = info.S2C_ARENA_GET_INFO{} + s.ARENA_Player = nil case 1: if s.ARENA.Id != 0 { //说明已经有人了