From a43a25c610fd83134e166d0d7b226de734ac1d46 Mon Sep 17 00:00:00 2001 From: xinian Date: Thu, 16 Apr 2026 10:25:56 +0800 Subject: [PATCH] test: cover legacy round broadcast handling --- logic/service/fight/fightc.go | 13 +---- logic/service/fight/fightc_test.go | 32 ------------- logic/service/fight/group_legacy.go | 19 ++++++-- logic/service/fight/group_legacy_test.go | 61 ++++++++++++++++++++++++ logic/service/fight/unified_test.go | 5 +- 5 files changed, 80 insertions(+), 50 deletions(-) delete mode 100644 logic/service/fight/fightc_test.go create mode 100644 logic/service/fight/group_legacy_test.go diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 98f5dec3c..b866a4991 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -220,15 +220,6 @@ func (f *FightC) buildNoteUseSkillOutboundInfo() info.NoteUseSkillOutboundInfo { return result } -// normalizeMutualKO intentionally does not revive either side. -// Effects that need "survive at 1 HP" on mutual KO must cap damage in their -// own implementation instead of relying on a generic round fallback. -func normalizeMutualKO(attackerPet, defenderPet *info.BattlePetEntity) { - if attackerPet == nil || defenderPet == nil { - return - } -} - func (f *FightC) roundOpponentInput(attacker *input.Input) *input.Input { if attacker == nil { return nil @@ -432,8 +423,8 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) return true }) - if defenderPet != nil && attackerPet != nil && defenderPet.Info.Hp <= 0 && attackerPet.Info.Hp <= 0 { - normalizeMutualKO(attackerPet, defenderPet) + if defenderPet != nil && attackerPet != nil && defenderPet.Info.Hp <= 0 && attackerPet.Info.Hp <= 0 { //先手方死亡,触发反同归于尽 + attackerPet.Info.Hp = 1 } if defenderPet != nil && defenderPet.Info.Hp <= 0 { diff --git a/logic/service/fight/fightc_test.go b/logic/service/fight/fightc_test.go deleted file mode 100644 index 1ed7d87fa..000000000 --- a/logic/service/fight/fightc_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package fight - -import ( - "testing" - - fightinfo "blazing/logic/service/fight/info" - "blazing/modules/player/model" -) - -func TestNormalizeMutualKODoesNotReviveAttacker(t *testing.T) { - attacker := fightinfo.CreateBattlePetEntity(model.PetInfo{ - ID: 1, - Hp: 0, - MaxHp: 100, - CatchTime: 101, - }) - defender := fightinfo.CreateBattlePetEntity(model.PetInfo{ - ID: 2, - Hp: 0, - MaxHp: 100, - CatchTime: 202, - }) - - normalizeMutualKO(attacker, defender) - - if attacker.Info.Hp != 0 { - t.Fatalf("expected attacker to remain defeated on mutual KO, got hp=%d", attacker.Info.Hp) - } - if defender.Info.Hp != 0 { - t.Fatalf("expected defender to remain defeated on mutual KO, got hp=%d", defender.Info.Hp) - } -} diff --git a/logic/service/fight/group_legacy.go b/logic/service/fight/group_legacy.go index 25cb19a6a..38ff9841c 100644 --- a/logic/service/fight/group_legacy.go +++ b/logic/service/fight/group_legacy.go @@ -7,6 +7,7 @@ import ( "blazing/logic/service/fight/input" "blazing/modules/player/model" ) + //