mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-02 15:53:51 +00:00
fix(combatlog): render instakill events explicitly
This commit is contained in:
parent
5be55b1b14
commit
3ef5b546fb
3 changed files with 19 additions and 5 deletions
|
|
@ -53,7 +53,7 @@ struct CombatTextEntry {
|
||||||
MELEE_DAMAGE, SPELL_DAMAGE, HEAL, MISS, DODGE, PARRY, BLOCK,
|
MELEE_DAMAGE, SPELL_DAMAGE, HEAL, MISS, DODGE, PARRY, BLOCK,
|
||||||
CRIT_DAMAGE, CRIT_HEAL, PERIODIC_DAMAGE, PERIODIC_HEAL, ENVIRONMENTAL,
|
CRIT_DAMAGE, CRIT_HEAL, PERIODIC_DAMAGE, PERIODIC_HEAL, ENVIRONMENTAL,
|
||||||
ENERGIZE, XP_GAIN, IMMUNE, ABSORB, RESIST, PROC_TRIGGER,
|
ENERGIZE, XP_GAIN, IMMUNE, ABSORB, RESIST, PROC_TRIGGER,
|
||||||
DISPEL, STEAL, INTERRUPT
|
DISPEL, STEAL, INTERRUPT, INSTAKILL
|
||||||
};
|
};
|
||||||
Type type;
|
Type type;
|
||||||
int32_t amount = 0;
|
int32_t amount = 0;
|
||||||
|
|
|
||||||
|
|
@ -6376,11 +6376,9 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
||||||
uint32_t ikSpell = (ik_rem() >= 4) ? packet.readUInt32() : 0;
|
uint32_t ikSpell = (ik_rem() >= 4) ? packet.readUInt32() : 0;
|
||||||
// Show kill/death feedback for the local player
|
// Show kill/death feedback for the local player
|
||||||
if (ikCaster == playerGuid) {
|
if (ikCaster == playerGuid) {
|
||||||
// We killed a target instantly — show a KILL combat text hit
|
addCombatText(CombatTextEntry::INSTAKILL, 0, ikSpell, true, 0, ikCaster, ikVictim);
|
||||||
addCombatText(CombatTextEntry::MELEE_DAMAGE, 0, ikSpell, true, 0, ikCaster, ikVictim);
|
|
||||||
} else if (ikVictim == playerGuid) {
|
} else if (ikVictim == playerGuid) {
|
||||||
// We were instantly killed — show a large incoming hit
|
addCombatText(CombatTextEntry::INSTAKILL, 0, ikSpell, false, 0, ikCaster, ikVictim);
|
||||||
addCombatText(CombatTextEntry::MELEE_DAMAGE, 0, ikSpell, false, 0, ikCaster, ikVictim);
|
|
||||||
addSystemChatMessage("You were killed by an instant-kill effect.");
|
addSystemChatMessage("You were killed by an instant-kill effect.");
|
||||||
}
|
}
|
||||||
LOG_DEBUG("SMSG_SPELLINSTAKILLLOG: caster=0x", std::hex, ikCaster,
|
LOG_DEBUG("SMSG_SPELLINSTAKILLLOG: caster=0x", std::hex, ikCaster,
|
||||||
|
|
|
||||||
|
|
@ -8414,6 +8414,11 @@ void GameScreen::renderCombatText(game::GameHandler& gameHandler) {
|
||||||
color = ImVec4(1.0f, 0.6f, 0.9f, alpha);
|
color = ImVec4(1.0f, 0.6f, 0.9f, alpha);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case game::CombatTextEntry::INSTAKILL:
|
||||||
|
snprintf(text, sizeof(text), outgoing ? "Kill!" : "Killed!");
|
||||||
|
color = outgoing ? ImVec4(1.0f, 0.25f, 0.25f, alpha)
|
||||||
|
: ImVec4(1.0f, 0.1f, 0.1f, alpha);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
snprintf(text, sizeof(text), "%d", entry.amount);
|
snprintf(text, sizeof(text), "%d", entry.amount);
|
||||||
color = ImVec4(1.0f, 1.0f, 1.0f, alpha);
|
color = ImVec4(1.0f, 1.0f, 1.0f, alpha);
|
||||||
|
|
@ -20315,6 +20320,17 @@ void GameScreen::renderCombatLog(game::GameHandler& gameHandler) {
|
||||||
snprintf(desc, sizeof(desc), "%s interrupted", tgt);
|
snprintf(desc, sizeof(desc), "%s interrupted", tgt);
|
||||||
color = ImVec4(1.0f, 0.6f, 0.9f, 1.0f);
|
color = ImVec4(1.0f, 0.6f, 0.9f, 1.0f);
|
||||||
break;
|
break;
|
||||||
|
case T::INSTAKILL:
|
||||||
|
if (spell && e.isPlayerSource)
|
||||||
|
snprintf(desc, sizeof(desc), "You instantly kill %s with %s", tgt, spell);
|
||||||
|
else if (spell)
|
||||||
|
snprintf(desc, sizeof(desc), "%s instantly kills %s with %s", src, tgt, spell);
|
||||||
|
else if (e.isPlayerSource)
|
||||||
|
snprintf(desc, sizeof(desc), "You instantly kill %s", tgt);
|
||||||
|
else
|
||||||
|
snprintf(desc, sizeof(desc), "%s instantly kills %s", src, tgt);
|
||||||
|
color = ImVec4(1.0f, 0.2f, 0.2f, 1.0f);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
snprintf(desc, sizeof(desc), "Combat event (type %d, amount %d)", (int)e.type, e.amount);
|
snprintf(desc, sizeof(desc), "Combat event (type %d, amount %d)", (int)e.type, e.amount);
|
||||||
color = ImVec4(0.7f, 0.7f, 0.7f, 1.0f);
|
color = ImVec4(0.7f, 0.7f, 0.7f, 1.0f);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue