From 296310e32eb4f1e87f1c63bcd4e964fa2d349313 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Fri, 5 Jan 2024 17:56:00 +0200 Subject: [PATCH] Fix check for opponent side for mana drain --- server/battles/BattleFlowProcessor.cpp | 3 +-- server/battles/BattleResultProcessor.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/server/battles/BattleFlowProcessor.cpp b/server/battles/BattleFlowProcessor.cpp index c21bd1830..540ff4166 100644 --- a/server/battles/BattleFlowProcessor.cpp +++ b/server/battles/BattleFlowProcessor.cpp @@ -677,8 +677,7 @@ void BattleFlowProcessor::stackTurnTrigger(const CBattleInfoCallback & battle, c } if(st->hasBonusOfType(BonusType::MANA_DRAIN) && !st->drainedMana) { - const PlayerColor opponent = battle.otherPlayer(battle.battleGetOwner(st)); - const CGHeroInstance * opponentHero = battle.battleGetFightingHero(opponent); + const CGHeroInstance * opponentHero = battle.battleGetFightingHero(battle.otherSide(st->unitSide())); if(opponentHero) { ui32 manaDrained = st->valOfBonuses(BonusType::MANA_DRAIN); diff --git a/server/battles/BattleResultProcessor.cpp b/server/battles/BattleResultProcessor.cpp index 52c4e7e6b..c4d45af8d 100644 --- a/server/battles/BattleResultProcessor.cpp +++ b/server/battles/BattleResultProcessor.cpp @@ -498,10 +498,10 @@ void BattleResultProcessor::endBattleConfirm(const CBattleInfoCallback & battle) BattleResultAccepted raccepted; raccepted.battleID = battle.getBattle()->getBattleID(); - raccepted.heroResult[0].army = const_cast(battle.battleGetArmyObject(0)); - raccepted.heroResult[1].army = const_cast(battle.battleGetArmyObject(1)); - raccepted.heroResult[0].hero = const_cast(battle.battleGetFightingHero(0)); - raccepted.heroResult[1].hero = const_cast(battle.battleGetFightingHero(1)); + raccepted.heroResult[0].army = const_cast(battle.battleGetArmyObject(BattleSide::ATTACKER)); + raccepted.heroResult[1].army = const_cast(battle.battleGetArmyObject(BattleSide::DEFENDER)); + raccepted.heroResult[0].hero = const_cast(battle.battleGetFightingHero(BattleSide::ATTACKER)); + raccepted.heroResult[1].hero = const_cast(battle.battleGetFightingHero(BattleSide::DEFENDER)); raccepted.heroResult[0].exp = battleResult->exp[0]; raccepted.heroResult[1].exp = battleResult->exp[1]; raccepted.winnerSide = finishingBattle->winnerSide;