feat: color-code ENERGIZE combat text by power type

Mana (0)=blue, Rage (1)=red, Focus (2)=orange, Energy (3)=yellow,
Runic Power (6)=teal. Previously all energize events showed as blue
regardless of resource type, making it impossible to distinguish
e.g. a Warrior's Rage generation from a Mage's Mana return.

Power type is now captured from SMSG_SPELLENERGIZELOG (uint8) and
SMSG_PERIODICAURALOG OBS_MOD_POWER/PERIODIC_ENERGIZE (uint32 cast
to uint8) and stored in CombatTextEntry::powerType.
This commit is contained in:
Kelsi 2026-03-13 06:08:21 -07:00
parent b9c16e9be5
commit 4507a223cc
4 changed files with 17 additions and 9 deletions

View file

@ -8287,7 +8287,13 @@ void GameScreen::renderCombatText(game::GameHandler& gameHandler) {
break;
case game::CombatTextEntry::ENERGIZE:
snprintf(text, sizeof(text), "+%d", entry.amount);
color = ImVec4(0.3f, 0.6f, 1.0f, alpha); // Blue for mana/energy
switch (entry.powerType) {
case 1: color = ImVec4(1.0f, 0.2f, 0.2f, alpha); break; // Rage: red
case 2: color = ImVec4(1.0f, 0.6f, 0.1f, alpha); break; // Focus: orange
case 3: color = ImVec4(1.0f, 0.9f, 0.2f, alpha); break; // Energy: yellow
case 6: color = ImVec4(0.3f, 0.9f, 0.8f, alpha); break; // Runic Power: teal
default: color = ImVec4(0.3f, 0.6f, 1.0f, alpha); break; // Mana (0): blue
}
break;
case game::CombatTextEntry::XP_GAIN:
snprintf(text, sizeof(text), "+%d XP", entry.amount);