diff --git a/src/game/game.cpp b/src/game/game.cpp index d755c05bb9e..fb50bef101c 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -7231,6 +7231,17 @@ bool Game::combatChangeHealth(const std::shared_ptr &attacker, const s return false; } + if (damage.origin != ORIGIN_NONE) { + const auto events = target->getCreatureEvents(CREATURE_EVENT_HEALTHCHANGE); + if (!events.empty()) { + for (const auto &creatureEvent : events) { + creatureEvent->executeHealthChange(target, attacker, damage); + } + damage.origin = ORIGIN_NONE; + return combatChangeHealth(attacker, target, damage); + } + } + // Wheel of destiny apply combat effects applyWheelOfDestinyEffectsToDamage(damage, attackerPlayer, target); @@ -7454,17 +7465,6 @@ bool Game::combatChangeHealth(const std::shared_ptr &attacker, const s return true; } - if (damage.origin != ORIGIN_NONE) { - const auto events = target->getCreatureEvents(CREATURE_EVENT_HEALTHCHANGE); - if (!events.empty()) { - for (const auto &creatureEvent : events) { - creatureEvent->executeHealthChange(target, attacker, damage); - } - damage.origin = ORIGIN_NONE; - return combatChangeHealth(attacker, target, damage); - } - } - // Apply Custom PvP Damage (must be placed here to avoid recursive calls) if (attackerPlayer && targetPlayer) { applyPvPDamage(damage, attackerPlayer, targetPlayer);