From 35683920ffc551988170e76cc3a84c2c1090c6d3 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 03:09:39 -0700 Subject: [PATCH] fix: handle EVADE/IMMUNE/DEFLECT victimStates in melee combat text SMSG_ATTACKERSTATEUPDATE victimState values 5 (EVADE), 6 (IMMUNE), and 7 (DEFLECT) were previously falling through to the damage display path, showing incorrect damage numbers instead of the proper miss/immune feedback. Now correctly shows MISS for evade/deflect and IMMUNE for immune hits. --- src/game/game_handler.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 4ab88c51..b87d08b0 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -13517,6 +13517,15 @@ void GameHandler::handleAttackerStateUpdate(network::Packet& packet) { addCombatText(CombatTextEntry::PARRY, 0, 0, isPlayerAttacker); } else if (data.victimState == 4) { addCombatText(CombatTextEntry::BLOCK, 0, 0, isPlayerAttacker); + } else if (data.victimState == 5) { + // VICTIMSTATE_EVADE: NPC evaded (out of combat zone). Show as miss. + addCombatText(CombatTextEntry::MISS, 0, 0, isPlayerAttacker); + } else if (data.victimState == 6) { + // VICTIMSTATE_IS_IMMUNE: Target is immune to this attack. + addCombatText(CombatTextEntry::IMMUNE, 0, 0, isPlayerAttacker); + } else if (data.victimState == 7) { + // VICTIMSTATE_DEFLECT: Attack was deflected (e.g. shield slam reflect). + addCombatText(CombatTextEntry::MISS, 0, 0, isPlayerAttacker); } else { auto type = data.isCrit() ? CombatTextEntry::CRIT_DAMAGE : CombatTextEntry::MELEE_DAMAGE; addCombatText(type, data.totalDamage, 0, isPlayerAttacker);