mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
feat: elite/boss/rare border decorations on nameplates
Add rank-specific outer borders on NPC nameplates: gold for Elite and Rare Elite, red for Boss, silver for Rare. Provides immediate visual identification of dangerous mobs without needing to target them.
This commit is contained in:
parent
fd7886f4ce
commit
402bbc2f14
1 changed files with 22 additions and 0 deletions
|
|
@ -11032,6 +11032,10 @@ void GameScreen::renderNameplates(game::GameHandler& gameHandler) {
|
||||||
isTargetingPlayer = (unitTarget == playerGuid);
|
isTargetingPlayer = (unitTarget == playerGuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Creature rank for border styling (Elite=gold double border, Boss=red, Rare=silver)
|
||||||
|
int creatureRank = -1;
|
||||||
|
if (!isPlayer) creatureRank = gameHandler.getCreatureRank(unit->getEntry());
|
||||||
|
|
||||||
// Border: gold = currently selected, orange = targeting player, dark = default
|
// Border: gold = currently selected, orange = targeting player, dark = default
|
||||||
ImU32 borderColor = isTarget
|
ImU32 borderColor = isTarget
|
||||||
? IM_COL32(255, 215, 0, A(255))
|
? IM_COL32(255, 215, 0, A(255))
|
||||||
|
|
@ -11055,6 +11059,24 @@ void GameScreen::renderNameplates(game::GameHandler& gameHandler) {
|
||||||
}
|
}
|
||||||
drawList->AddRect (ImVec2(barX - 1.0f, sy - 1.0f), ImVec2(barX + barW + 1.0f, sy + barH + 1.0f), borderColor, 2.0f);
|
drawList->AddRect (ImVec2(barX - 1.0f, sy - 1.0f), ImVec2(barX + barW + 1.0f, sy + barH + 1.0f), borderColor, 2.0f);
|
||||||
|
|
||||||
|
// Elite/Boss/Rare decoration: extra outer border with rank-specific color
|
||||||
|
if (creatureRank == 1 || creatureRank == 2) {
|
||||||
|
// Elite / Rare Elite: gold double border
|
||||||
|
drawList->AddRect(ImVec2(barX - 3.0f, sy - 3.0f),
|
||||||
|
ImVec2(barX + barW + 3.0f, sy + barH + 3.0f),
|
||||||
|
IM_COL32(255, 200, 50, A(200)), 3.0f);
|
||||||
|
} else if (creatureRank == 3) {
|
||||||
|
// Boss: red double border
|
||||||
|
drawList->AddRect(ImVec2(barX - 3.0f, sy - 3.0f),
|
||||||
|
ImVec2(barX + barW + 3.0f, sy + barH + 3.0f),
|
||||||
|
IM_COL32(255, 40, 40, A(200)), 3.0f);
|
||||||
|
} else if (creatureRank == 4) {
|
||||||
|
// Rare: silver double border
|
||||||
|
drawList->AddRect(ImVec2(barX - 3.0f, sy - 3.0f),
|
||||||
|
ImVec2(barX + barW + 3.0f, sy + barH + 3.0f),
|
||||||
|
IM_COL32(170, 200, 230, A(200)), 3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
// HP % text centered on health bar (non-corpse, non-full-health for readability)
|
// HP % text centered on health bar (non-corpse, non-full-health for readability)
|
||||||
if (!isCorpse && unit->getMaxHealth() > 0) {
|
if (!isCorpse && unit->getMaxHealth() > 0) {
|
||||||
int hpPct = static_cast<int>(healthPct * 100.0f + 0.5f);
|
int hpPct = static_cast<int>(healthPct * 100.0f + 0.5f);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue