feat: add DPS/HPS meter showing real-time damage and healing output

Floating window right of the cast bar showing player's DPS and healing
per second, derived from combat text entries. Uses actual combat duration
as denominator for accurate readings at fight start. Toggle in Settings
> Network. Saves to settings.cfg.
This commit is contained in:
Kelsi 2026-03-12 04:04:27 -07:00
parent 797bb5d964
commit d14982d125
2 changed files with 118 additions and 0 deletions

View file

@ -328,6 +328,7 @@ private:
void renderInstanceLockouts(game::GameHandler& gameHandler);
void renderNameplates(game::GameHandler& gameHandler);
void renderBattlegroundScore(game::GameHandler& gameHandler);
void renderDPSMeter(game::GameHandler& gameHandler);
/**
* Inventory screen
@ -472,6 +473,11 @@ private:
std::string lastKnownZoneName_;
void renderZoneText();
// DPS / HPS meter
bool showDPSMeter_ = false;
float dpsCombatAge_ = 0.0f; // seconds in current combat (for accurate early-combat DPS)
bool dpsWasInCombat_ = false;
public:
void triggerDing(uint32_t newLevel);
void triggerAchievementToast(uint32_t achievementId, std::string name = {});