mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Add XP_GAIN combat text type; show '+N XP' in purple on kills
XP gain was previously shown as a HEAL entry (green +N) which conflates it with actual healing. New XP_GAIN type renders as purple '+N XP' in the outgoing column, matching WoW's floating XP style.
This commit is contained in:
parent
6e03866b56
commit
18a3a0fd01
3 changed files with 6 additions and 2 deletions
|
|
@ -51,7 +51,7 @@ struct CombatTextEntry {
|
|||
enum Type : uint8_t {
|
||||
MELEE_DAMAGE, SPELL_DAMAGE, HEAL, MISS, DODGE, PARRY, BLOCK,
|
||||
CRIT_DAMAGE, CRIT_HEAL, PERIODIC_DAMAGE, PERIODIC_HEAL, ENVIRONMENTAL,
|
||||
ENERGIZE
|
||||
ENERGIZE, XP_GAIN
|
||||
};
|
||||
Type type;
|
||||
int32_t amount = 0;
|
||||
|
|
|
|||
|
|
@ -14461,7 +14461,7 @@ void GameHandler::handleXpGain(network::Packet& packet) {
|
|||
|
||||
// Server already updates PLAYER_XP via update fields,
|
||||
// but we can show combat text for XP gains
|
||||
addCombatText(CombatTextEntry::HEAL, static_cast<int32_t>(data.totalXp), 0, true);
|
||||
addCombatText(CombatTextEntry::XP_GAIN, static_cast<int32_t>(data.totalXp), 0, true);
|
||||
|
||||
std::string msg = "You gain " + std::to_string(data.totalXp) + " experience.";
|
||||
if (data.groupBonus > 0) {
|
||||
|
|
|
|||
|
|
@ -4519,6 +4519,10 @@ void GameScreen::renderCombatText(game::GameHandler& gameHandler) {
|
|||
snprintf(text, sizeof(text), "+%d", entry.amount);
|
||||
color = ImVec4(0.3f, 0.6f, 1.0f, alpha); // Blue for mana/energy
|
||||
break;
|
||||
case game::CombatTextEntry::XP_GAIN:
|
||||
snprintf(text, sizeof(text), "+%d XP", entry.amount);
|
||||
color = ImVec4(0.7f, 0.3f, 1.0f, alpha); // Purple for XP
|
||||
break;
|
||||
default:
|
||||
snprintf(text, sizeof(text), "%d", entry.amount);
|
||||
color = ImVec4(1.0f, 1.0f, 1.0f, alpha);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue