diff --git a/logic/service/fight/boss/NewSeIdx_116.go b/logic/service/fight/boss/NewSeIdx_116.go index 18f81c4bc..17020e740 100644 --- a/logic/service/fight/boss/NewSeIdx_116.go +++ b/logic/service/fight/boss/NewSeIdx_116.go @@ -11,7 +11,7 @@ type NewSel116 struct { NewSel0 } -func (e *NewSel116) OnSkill() bool { +func (e *NewSel116) Skill_Use() bool { if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime { return true } diff --git a/logic/service/fight/boss/NewSeIdx_223.go b/logic/service/fight/boss/NewSeIdx_223.go index a3ad34484..2232fc906 100644 --- a/logic/service/fight/boss/NewSeIdx_223.go +++ b/logic/service/fight/boss/NewSeIdx_223.go @@ -12,7 +12,7 @@ type NewSel223 struct { NewSel0 } -func (e *NewSel223) OnSkill() bool { +func (e *NewSel223) Skill_Use() bool { if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime { return true } diff --git a/logic/service/fight/boss/NewSeIdx_323.go b/logic/service/fight/boss/NewSeIdx_323.go index 7be6fb740..cfdf96ecb 100644 --- a/logic/service/fight/boss/NewSeIdx_323.go +++ b/logic/service/fight/boss/NewSeIdx_323.go @@ -12,7 +12,7 @@ type NewSel323 struct { NewSel0 } -func (e *NewSel323) OnSkill() bool { +func (e *NewSel323) Skill_Use() bool { if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime { return true } diff --git a/logic/service/fight/boss/NewSeIdx_66.go b/logic/service/fight/boss/NewSeIdx_66.go index 91d62db6b..d69541641 100644 --- a/logic/service/fight/boss/NewSeIdx_66.go +++ b/logic/service/fight/boss/NewSeIdx_66.go @@ -11,7 +11,7 @@ type NewSel66 struct { NewSel0 } -func (e *NewSel66) OnSkill() bool { +func (e *NewSel66) Skill_Use() bool { if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime { return true } diff --git a/logic/service/fight/boss/NewSeIdx_67.go b/logic/service/fight/boss/NewSeIdx_67.go index b929a1573..634cb49e3 100644 --- a/logic/service/fight/boss/NewSeIdx_67.go +++ b/logic/service/fight/boss/NewSeIdx_67.go @@ -11,7 +11,7 @@ type NewSel67 struct { NewSel0 } -func (e *NewSel67) OnSkill() bool { +func (e *NewSel67) Skill_Use() bool { if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime { return true } diff --git a/logic/service/fight/effect/486.go b/logic/service/fight/effect/486.go new file mode 100644 index 000000000..04f3c9576 --- /dev/null +++ b/logic/service/fight/effect/486.go @@ -0,0 +1,22 @@ +package effect + +import ( + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" +) + +// 486 - 下n回合若自身选择使用技能则无视对手能力提升状态 +type Effect486 struct { + node.EffectNode +} + +func (e *Effect486) OnSkill() bool { + // 设置标志,接下来n回合内无视对手能力提升 + e.Ctx().Our.IgnoreOpponentPositiveBuffsForNDuration(int(e.Args()[0].IntPart())) + + return true +} +func init() { + input.InitEffect(input.EffectType.Skill, 486, &Effect486{}) + +} diff --git a/logic/service/fight/effect/491.go b/logic/service/fight/effect/491.go new file mode 100644 index 000000000..c003ebe78 --- /dev/null +++ b/logic/service/fight/effect/491.go @@ -0,0 +1,36 @@ +package effect + +import ( + "blazing/logic/service/fight/info" + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" + + "github.com/alpacahq/alpacadecimal" +) + +// 491 - 3回合内对手造成的伤害降低m% +type Effect491 struct { + node.EffectNode +} + +func (e *Effect491) DamageDivEx(t *info.DamageZone) bool { + if t.Type != info.DamageType.Red { + return true + } + damageReduction := alpacadecimal.NewFromInt(int64(e.Args()[1].IntPart())).Mul(t.Damage) + if t.Damage.Cmp(damageReduction) > 0 { + t.Damage = t.Damage.Sub(damageReduction) + } else { + t.Damage = alpacadecimal.Zero + } + + return true +} +func (e *Effect491) SetArgs(t *input.Input, a ...int) { + e.EffectNode.SetArgs(t, a...) + e.EffectNode.Duration(a[0]) // 持续n回合 +} +func init() { + input.InitEffect(input.EffectType.Skill, 491, &Effect491{}) + +} diff --git a/logic/service/fight/effect/506.go b/logic/service/fight/effect/506.go new file mode 100644 index 000000000..b85a64b8f --- /dev/null +++ b/logic/service/fight/effect/506.go @@ -0,0 +1,33 @@ +package effect + +import ( + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" +) + +// 506 - 下回合受到致命伤害时残留m点体力 +type Effect506 struct { + node.EffectNode + triggered bool +} + +func (e *Effect506) Skill_Use() bool { + e.triggered = true + + return true +} +func (e *Effect506) Action_end() bool { + if !e.triggered { + return true + } + minHealth := uint32(e.Args()[0].IntPart()) // m点体力 + if e.Ctx().Our.CurrentPet.GetHP().IntPart() == 0 { + e.Ctx().Our.CurrentPet.Info.Hp = minHealth + } + + return true +} +func init() { + input.InitEffect(input.EffectType.Skill, 506, &Effect506{}) + +} diff --git a/logic/service/fight/effect/back.go1 b/logic/service/fight/effect/back.go similarity index 92% rename from logic/service/fight/effect/back.go1 rename to logic/service/fight/effect/back.go index a1d3cdedb..1ecba4cc1 100644 --- a/logic/service/fight/effect/back.go1 +++ b/logic/service/fight/effect/back.go @@ -102,23 +102,6 @@ func (e *Effect407) OnSkill() bool { return true } -// 491 - 3回合内对手造成的伤害降低m% -type Effect491 struct { - node.EffectNode -} - -func (e *Effect491) OnSkill() bool { - // 创建一个降低对手伤害的效果 - damageReduceEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.ReduceDamageTaken)) - if damageReduceEffect != nil { - damageReduceEffect.SetArgs(e.Ctx().Our, int(e.Args()[0].IntPart())) - damageReduceEffect.Duration(3) // 持续3回合 - e.Ctx().Opp.AddEffect(e.Ctx().Our, damageReduceEffect) - } - - return true -} - // 462 - n回合内受攻击时反弹m点固定伤害 type Effect462 struct { node.EffectNode @@ -527,18 +510,6 @@ func (e *Effect156) SetArgs(t *input.Input, a ...int) { e.EffectNode.Duration(a[0]) // 持续n回合 } -// 486 - 下n回合若自身选择使用技能则无视对手能力提升状态 -type Effect486 struct { - node.EffectNode -} - -func (e *Effect486) OnSkill() bool { - // 设置标志,接下来n回合内无视对手能力提升 - e.Ctx().Our.IgnoreOpponentPositiveBuffsForNDuration(int(e.Args()[0].IntPart())) - - return true -} - // 197 - n回合内若被对方击败,则对手所有能力加强状态消失 type Effect197 struct { node.EffectNode @@ -697,22 +668,3 @@ func (e *Effect461) OnSkill() bool { return true } - -// 506 - 下回合受到致命伤害时残留m点体力 -type Effect506 struct { - node.EffectNode -} - -func (e *Effect506) OnSkill() bool { - minHealth := int(e.Args()[0].IntPart()) // m点体力 - - // 设置保护效果,下回合受到致命伤害时保留m点体力 - protectEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.ProtectFromKO)) - if protectEffect != nil { - protectEffect.SetArgs(e.Ctx().Our, minHealth) - protectEffect.Duration(1) // 仅下回合有效 - e.Ctx().Our.AddEffect(e.Ctx().Our, protectEffect) - } - - return true -} diff --git a/logic/service/fight/effect/effect_101.go b/logic/service/fight/effect/effect_101.go index 307cadced..c1da83d47 100644 --- a/logic/service/fight/effect/effect_101.go +++ b/logic/service/fight/effect/effect_101.go @@ -21,7 +21,7 @@ func init() { } -func (e *Effect101) OnSkill() bool { +func (e *Effect101) Skill_Use() bool { e.Input.Heal( e.Ctx().Our, &action.SelectSkillAction{}, e.Ctx().Our.SumDamage.Mul(e.Args()[0].Div(alpacadecimal.NewFromInt(100))), diff --git a/logic/service/fight/effect/effect_104_109.go b/logic/service/fight/effect/effect_104_109.go index 8177dc2c6..212102fbc 100644 --- a/logic/service/fight/effect/effect_104_109.go +++ b/logic/service/fight/effect/effect_104_109.go @@ -50,7 +50,7 @@ func (e *Effect104) SetArgs(t *input.Input, a ...int) { // ----------------------------------------------------------- // 技能触发时调用 // ----------------------------------------------------------- -func (e *Effect104) OnSkill() bool { +func (e *Effect104) Skill_Use() bool { if !e.can { e.can = true diff --git a/logic/service/fight/effect/effect_105.go b/logic/service/fight/effect/effect_105.go index 98ee3c770..77b16f3a7 100644 --- a/logic/service/fight/effect/effect_105.go +++ b/logic/service/fight/effect/effect_105.go @@ -20,7 +20,7 @@ func init() { } // 命中之后 -func (e *Effect105) OnSkill() bool { +func (e *Effect105) Skill_Use() bool { e.Input.Heal( e.Ctx().Our, &action.SelectSkillAction{}, e.Ctx().Our.SumDamage.Div(e.Args()[0]), diff --git a/logic/service/fight/effect/effect_115.go b/logic/service/fight/effect/effect_115.go index 162961dc6..2e3cc5546 100644 --- a/logic/service/fight/effect/effect_115.go +++ b/logic/service/fight/effect/effect_115.go @@ -23,7 +23,7 @@ type Effect115 struct { node.EffectNode } -func (e *Effect115) OnSkill() bool { +func (e *Effect115) Skill_Use() bool { // 概率判定 ok, _, _ := e.Input.Player.Roll(int(e.Args()[0].IntPart()), 100) diff --git a/logic/service/fight/effect/effect_119_123.go b/logic/service/fight/effect/effect_119_123.go index 3aad8dcb7..ecbfc06cf 100644 --- a/logic/service/fight/effect/effect_119_123.go +++ b/logic/service/fight/effect/effect_119_123.go @@ -17,7 +17,7 @@ type Effect119 struct { can bool } -func (e *Effect119) OnSkill() bool { +func (e *Effect119) Skill_Use() bool { e.can = true return true @@ -64,7 +64,7 @@ type Effect120 struct { node.EffectNode } -func (e *Effect120) OnSkill() bool { +func (e *Effect120) Skill_Use() bool { // 50%概率 ok, _, _ := e.Input.Player.Roll(50, 100) @@ -99,7 +99,7 @@ type Effect121 struct { node.EffectNode } -func (e *Effect121) OnSkill() bool { +func (e *Effect121) Skill_Use() bool { // 检查属性是否相同 if e.Ctx().Our.CurrentPet.PetInfo.Type == e.Ctx().Opp.CurrentPet.PetInfo.Type { diff --git a/logic/service/fight/effect/effect_124_126.go b/logic/service/fight/effect/effect_124_126.go index d4b42ccdc..fbc0b4b7f 100644 --- a/logic/service/fight/effect/effect_124_126.go +++ b/logic/service/fight/effect/effect_124_126.go @@ -1,7 +1,6 @@ package effect import ( - "blazing/logic/service/fight/action" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) @@ -43,7 +42,7 @@ func (e *Effect126) SetArgs(t *input.Input, a ...int) { e.EffectNode.Duration(e.EffectNode.SideEffectArgs[0]) } -func (e *Effect126) TurnStart(_, _ *action.SelectSkillAction) { +func (e *Effect126) Skill_Use() bool { changeAmount := int(e.Args()[1].IntPart()) // 攻击等级+1 (属性索引0) @@ -51,6 +50,7 @@ func (e *Effect126) TurnStart(_, _ *action.SelectSkillAction) { // 速度等级+1 (属性索引4) e.Ctx().Our.SetProp(e.Ctx().Our, 4, int8(changeAmount)) + return true } // ----------------------------------------------------------- diff --git a/logic/service/fight/effect/effect_130.go b/logic/service/fight/effect/effect_130.go index c79d8ab19..c310ee878 100644 --- a/logic/service/fight/effect/effect_130.go +++ b/logic/service/fight/effect/effect_130.go @@ -15,7 +15,7 @@ type Effect130 struct { // ----------------------------------------------------------- // 核心共性逻辑:命中且满足条件时,附加固定伤害 // ----------------------------------------------------------- -func (e *Effect130) OnSkill() bool { +func (e *Effect130) Skill_Use() bool { // 1. 命中判定失败,不触发 if e.Ctx().Opp.CurrentPet.Info.Gender != int(e.Args()[0].IntPart()) { diff --git a/logic/service/fight/effect/effect_140.go b/logic/service/fight/effect/effect_140.go index 4f0f1d144..103194445 100644 --- a/logic/service/fight/effect/effect_140.go +++ b/logic/service/fight/effect/effect_140.go @@ -13,7 +13,7 @@ type Effect140 struct { node.EffectNode } -func (e *Effect140) OnSkill() bool { +func (e *Effect140) Skill_Use() bool { maxHp := e.Ctx().Opp.CurrentPet.GetMaxHP() // 随机降低1/n 到 1/m 的体力 diff --git a/logic/service/fight/effect/effect_145.go b/logic/service/fight/effect/effect_145.go index 4562effce..50caaa8f4 100644 --- a/logic/service/fight/effect/effect_145.go +++ b/logic/service/fight/effect/effect_145.go @@ -19,7 +19,7 @@ func init() { } // 命中之后 -func (e *Effect145) OnSkill() bool { +func (e *Effect145) Skill_Use() bool { if e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Poisoned) { heal := e.Ctx().Our.CurrentPet.GetMaxHP().Div(e.Args()[0]) diff --git a/logic/service/fight/effect/effect_147_159.go b/logic/service/fight/effect/effect_147_159.go index ec644062d..95070904e 100644 --- a/logic/service/fight/effect/effect_147_159.go +++ b/logic/service/fight/effect/effect_147_159.go @@ -13,7 +13,7 @@ type Effect147 struct { can bool } -func (e *Effect147) OnSkill() bool { +func (e *Effect147) Skill_Use() bool { if e.IsFirst() { return true @@ -42,7 +42,7 @@ type Effect148 struct { can bool } -func (e *Effect148) OnSkill() bool { +func (e *Effect148) Skill_Use() bool { if e.IsFirst() { return true @@ -67,7 +67,7 @@ type Effect159 struct { node.EffectNode } -func (e *Effect159) OnSkill() bool { +func (e *Effect159) Skill_Use() bool { // 检查自身体力是否小于最大值的1/{0} maxHP := int64(e.Ctx().Our.CurrentPet.Info.MaxHp) diff --git a/logic/service/fight/effect/effect_151.go b/logic/service/fight/effect/effect_151.go index d70ad849e..b93b84d33 100644 --- a/logic/service/fight/effect/effect_151.go +++ b/logic/service/fight/effect/effect_151.go @@ -18,7 +18,7 @@ func init() { } // 命中之后 -func (e *Effect151) OnSkill() bool { +func (e *Effect151) Skill_Use() bool { if e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Burned) { chance := e.EffectNode.SideEffectArgs[0] diff --git a/logic/service/fight/effect/effect_161.go b/logic/service/fight/effect/effect_161.go index 7adf1bf03..04d91d224 100644 --- a/logic/service/fight/effect/effect_161.go +++ b/logic/service/fight/effect/effect_161.go @@ -13,7 +13,7 @@ type Effect161 struct { node.EffectNode } -func (e *Effect161) OnSkill() bool { +func (e *Effect161) Skill_Use() bool { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) diff --git a/logic/service/fight/effect/effect_172.go b/logic/service/fight/effect/effect_172.go index aba665553..ea4e570f4 100644 --- a/logic/service/fight/effect/effect_172.go +++ b/logic/service/fight/effect/effect_172.go @@ -11,7 +11,7 @@ type Effect172 struct { node.EffectNode } -func (e *Effect172) OnSkill() bool { +func (e *Effect172) Skill_Use() bool { if e.IsFirst() { return true } diff --git a/logic/service/fight/effect/effect_180.go b/logic/service/fight/effect/effect_180.go index 8e5b09b25..61c33510c 100644 --- a/logic/service/fight/effect/effect_180.go +++ b/logic/service/fight/effect/effect_180.go @@ -20,7 +20,7 @@ func init() { } // 命中之后 -func (e *Effect180) OnSkill() bool { +func (e *Effect180) Skill_Use() bool { e.Ctx().Opp.CancelTurn(e.Ctx().Our) return true diff --git a/logic/service/fight/effect/effect_182.go b/logic/service/fight/effect/effect_182.go index 0f2455dc7..43aeb6a9e 100644 --- a/logic/service/fight/effect/effect_182.go +++ b/logic/service/fight/effect/effect_182.go @@ -20,7 +20,7 @@ type Effect182 struct { node.EffectNode } -func (e *Effect182) OnSkill() bool { +func (e *Effect182) Skill_Use() bool { if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { // 3. 概率判定(Args()[1]为触发概率) diff --git a/logic/service/fight/effect/effect_467.go b/logic/service/fight/effect/effect_467.go index e4b47254f..e0b7085be 100644 --- a/logic/service/fight/effect/effect_467.go +++ b/logic/service/fight/effect/effect_467.go @@ -20,7 +20,7 @@ type Effect467 struct { node.EffectNode } -func (e *Effect467) OnSkill() bool { +func (e *Effect467) Skill_Use() bool { if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ diff --git a/logic/service/fight/effect/effect_478.go b/logic/service/fight/effect/effect_478.go index 6be6b10bd..3433be456 100644 --- a/logic/service/fight/effect/effect_478.go +++ b/logic/service/fight/effect/effect_478.go @@ -22,7 +22,7 @@ func init() { } // 命中之后 -func (e *Effect478) OnSkill() bool { +func (e *Effect478) Skill_Use() bool { e.can = true return true diff --git a/logic/service/fight/effect/effect_499.go b/logic/service/fight/effect/effect_499.go index eeb94afd9..124609f45 100644 --- a/logic/service/fight/effect/effect_499.go +++ b/logic/service/fight/effect/effect_499.go @@ -27,14 +27,20 @@ func (e *Effect499) ActionStartEx(fattack, sattack *action.SelectSkillAction) bo e.Alive(false) return true } -func (e *Effect499) OnSkill() bool { +func (e *Effect499) Skill_Use() bool { if e.IsFirst() { return true } e.can = true - e.Duration(1) + return true } +func (e *Effect104) Effect499(t *input.Input, a ...int) { + + e.EffectNode.SetArgs(t, a...) + e.EffectNode.Duration(1) + +} func init() { input.InitEffect(input.EffectType.Skill, 499, &Effect499{}) diff --git a/logic/service/fight/effect/effect_4_5.go b/logic/service/fight/effect/effect_4_5.go index 355436090..a71778341 100644 --- a/logic/service/fight/effect/effect_4_5.go +++ b/logic/service/fight/effect/effect_4_5.go @@ -36,7 +36,7 @@ type EffectStat struct { // ----------------------------------------------------------- // 技能触发时调用 // ----------------------------------------------------------- -func (e *EffectStat) OnSkill() bool { +func (e *EffectStat) Skill_Use() bool { // 参数解构 (防止 SideEffectArgs 长度不足) var ( diff --git a/logic/service/fight/effect/effect_520.go b/logic/service/fight/effect/effect_520.go index 37f8dc11b..13f71e428 100644 --- a/logic/service/fight/effect/effect_520.go +++ b/logic/service/fight/effect/effect_520.go @@ -11,7 +11,7 @@ type Effect520 struct { node.EffectNode } -func (e *Effect520) OnSkill() bool { +func (e *Effect520) Skill_Use() bool { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { diff --git a/logic/service/fight/effect/effect_79.go b/logic/service/fight/effect/effect_79.go index 058af16db..e37f83329 100644 --- a/logic/service/fight/effect/effect_79.go +++ b/logic/service/fight/effect/effect_79.go @@ -23,7 +23,7 @@ func init() { // 命中之后 // 特攻+2速度+1命中+1, -func (e *Effect79) OnSkill() bool { +func (e *Effect79) Skill_Use() bool { e.Ctx().Our.SetProp(e.Ctx().Our, 2, 2) e.Ctx().Our.SetProp(e.Ctx().Our, 4, 1) diff --git a/logic/service/fight/effect/effect_80.go b/logic/service/fight/effect/effect_80.go index f1e0647fd..76a51d8ff 100644 --- a/logic/service/fight/effect/effect_80.go +++ b/logic/service/fight/effect/effect_80.go @@ -21,7 +21,7 @@ func init() { } -func (e *Effect80) OnSkill() bool { +func (e *Effect80) Skill_Use() bool { att := e.Ctx().Our.CurrentPet.GetMaxHP().Div(alpacadecimal.NewFromInt(2)) e.Ctx().Our.Damage(e.Ctx().Our, &info.DamageZone{ diff --git a/logic/service/fight/effect/effect_81.go b/logic/service/fight/effect/effect_81.go index 1b468c91c..2f7d9357f 100644 --- a/logic/service/fight/effect/effect_81.go +++ b/logic/service/fight/effect/effect_81.go @@ -19,7 +19,7 @@ type Effect81 struct { can bool } -func (e *Effect81) OnSkill() bool { +func (e *Effect81) Skill_Use() bool { e.can = true diff --git a/logic/service/fight/effect/effect_83.go b/logic/service/fight/effect/effect_83.go index efa963e32..d7c0b3dae 100644 --- a/logic/service/fight/effect/effect_83.go +++ b/logic/service/fight/effect/effect_83.go @@ -22,7 +22,7 @@ type Effect83 struct { can bool } -func (e *Effect83) OnSkill() bool { +func (e *Effect83) Skill_Use() bool { e.can = true diff --git a/logic/service/fight/effect/effect_87.go b/logic/service/fight/effect/effect_87.go index 78ce9eaee..e04603ecf 100644 --- a/logic/service/fight/effect/effect_87.go +++ b/logic/service/fight/effect/effect_87.go @@ -18,7 +18,7 @@ type Effect87 struct { node.EffectNode } -func (e *Effect87) OnSkill() bool { +func (e *Effect87) Skill_Use() bool { e.Ctx().Our.HealPP(-1) return true diff --git a/logic/service/fight/effect/sterStatusEffects.go b/logic/service/fight/effect/sterStatusEffects.go index a4b4ba295..8861871ad 100644 --- a/logic/service/fight/effect/sterStatusEffects.go +++ b/logic/service/fight/effect/sterStatusEffects.go @@ -52,7 +52,7 @@ func registerStatusEffects() { // ----------------------------------------------------------- // 技能触发时调用 // ----------------------------------------------------------- -func (e *Effect10) OnSkill() bool { +func (e *Effect10) Skill_Use() bool { // n% 触发概率(默认 SideEffectArgs[0]) chance := e.EffectNode.SideEffectArgs[0] diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 9f046d95a..e1a04d8de 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -259,6 +259,19 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) if defender.CurrentPet.Info.Hp <= 0 && attacker.CurrentPet.Info.Hp <= 0 { //先手方死亡,触发反同归于尽 attacker.CurrentPet.Info.Hp = 1 } + if defender.CurrentPet.Info.Hp <= 0 { + + f.TURNOVER(defender) + + break + } else { + //技能使用后 + defender.Exec(func(effect input.Effect) bool { //技能使用后的我方效果 + effect.Ctx().SkillEntity = currentSkill + effect.Skill_Use_ex() + return true + }) + } if attacker.CurrentPet.Info.Hp <= 0 { f.TURNOVER(attacker) @@ -273,19 +286,6 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) } - if defender.CurrentPet.Info.Hp <= 0 { - - f.TURNOVER(defender) - - break - } else { - //技能使用后 - defender.Exec(func(effect input.Effect) bool { //技能使用后的我方效果 - effect.Ctx().SkillEntity = currentSkill - effect.Skill_Use_ex() - return true - }) - } //技能使用后 attacker.Exec(func(effect input.Effect) bool { //技能使用后的我方效果 effect.Ctx().SkillEntity = currentSkill