mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
feat: show toast when a nearby player levels up
When the server sends a level-up update for a non-self player entity,
fire the existing OtherPlayerLevelUpCallback which was previously
unregistered in the UI layer. GameScreen now:
- Registers the callback once and stores {guid, level} entries
- Lazily resolves the player name from the name cache at render time
- Renders gold-bordered toasts bottom-centre with a ★ icon and fade/slide
animation ("Thrall is now level 60!"), coalescing duplicates
- Prunes entries after 4 s with a 1 s fade-out
This commit is contained in:
parent
b52e9c29c6
commit
59fc7cebaf
2 changed files with 110 additions and 0 deletions
|
|
@ -551,6 +551,18 @@ private:
|
|||
bool questProgressCallbackSet_ = false;
|
||||
void renderQuestProgressToasts();
|
||||
|
||||
// Nearby player level-up toast ("<Name> is now level X!")
|
||||
struct PlayerLevelUpToastEntry {
|
||||
uint64_t guid = 0;
|
||||
std::string playerName; // resolved lazily at render time
|
||||
uint32_t newLevel = 0;
|
||||
float age = 0.0f;
|
||||
};
|
||||
static constexpr float PLAYER_LEVELUP_TOAST_DURATION = 4.0f;
|
||||
std::vector<PlayerLevelUpToastEntry> playerLevelUpToasts_;
|
||||
bool otherPlayerLevelUpCallbackSet_ = false;
|
||||
void renderPlayerLevelUpToasts(game::GameHandler& gameHandler);
|
||||
|
||||
// Zone discovery text ("Entering: <ZoneName>")
|
||||
static constexpr float ZONE_TEXT_DURATION = 5.0f;
|
||||
float zoneTextTimer_ = 0.0f;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue