Feature: add raid mark display to unit frames

Fix: resolve CDC configuration and color rendering issues
This commit is contained in:
Bluewhale1337
2026-09-05 17:08:58 +02:00
parent 6760e4e43d
commit b64e7070ba
8 changed files with 54 additions and 18 deletions
+8
View File
@@ -47,6 +47,14 @@
</Anchors>
<Layers>
<Layer level="OVERLAY">
<Texture name="$parentRaidIcon" file="Interface\TargetingFrame\UI-RaidTargetingIcons" hidden="true">
<Size><AbsDimension x="14" y="14"/></Size>
<Anchors>
<Anchor point="CENTER">
<Offset><AbsDimension x="0" y="0"/></Offset>
</Anchor>
</Anchors>
</Texture>
<Texture name="$parentIcon1" hidden="true">
<Size><AbsDimension x="12" y="12"/></Size>
<Anchors>
+1 -1
View File
@@ -186,7 +186,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
local trackedTextures = {}
while true do
local debuff, tmp, debuff_type = UnitDebuff(unit, i)
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
if debuff then
local mapped_type = nil
if debuff_type then
+8
View File
@@ -281,6 +281,13 @@ local HealBot_EventHandlers = {
HealBot_Model:NotifyObservers("ROSTER_CHANGED")
HealBot_OnEvent_PartyMembersChanged(this)
end,
["RAID_TARGET_UPDATE"] = function(this)
if HealBot_Action_UnitButtons then
for unit, _ in pairs(HealBot_Action_UnitButtons) do
HealBot_View_DirtyUnits[unit] = true
end
end
end,
["PLAYER_ENTERING_WORLD"] = function(this)
HealBot_Model:RefreshUnit("player")
HealBot_Model:RefreshUnit("pet")
@@ -386,6 +393,7 @@ function HealBot_OnEvent_VariablesLoaded(this)
this:RegisterEvent("PLAYER_TARGET_CHANGED");
this:RegisterEvent("PARTY_MEMBERS_CHANGED");
this:RegisterEvent("RAID_ROSTER_UPDATE");
this:RegisterEvent("RAID_TARGET_UPDATE");
this:RegisterEvent("PARTY_MEMBER_DISABLE");
this:RegisterEvent("PARTY_MEMBER_ENABLE");
this:RegisterEvent("UNIT_PET");
+4 -4
View File
@@ -54,10 +54,10 @@ HealBot_ConfigDefaults = {
PanelAnchorX = -1,
PanelAnchorY = -1,
CDCBarColour = {
[HEALBOT_DISEASE_en] = { R = 0.1, G = 0.05, B = 0.2, },
[HEALBOT_MAGIC_en] = { R = 0.05, G = 0.05, B = 0.1, },
[HEALBOT_POISON_en] = { R = 0.05, G = 0.2, B = 0.1, },
[HEALBOT_CURSE_en] = { R = 0.2, G = 0.05, B = 0.05, },
[HEALBOT_DISEASE_en] = { R = 0.55, G = 0.19, B = 0.70, }, -- Bright Purple
[HEALBOT_MAGIC_en] = { R = 0.01, G = 0.30, B = 0.90, }, -- Bright Blue
[HEALBOT_POISON_en] = { R = 0.12, G = 0.46, B = 0.24, }, -- Bright Green
[HEALBOT_CURSE_en] = { R = 0.83, G = 0.01, B = 0.01, }, -- Bright Red
},
Debuff_Left = {
+14
View File
@@ -14,6 +14,20 @@ HealBot_Options_EmergencyFilter_List = {
HEALBOT_OPTIONS_MONITORCUSTOM,
}
HealBot_Options_CDCMonitor_List = {
HEALBOT_OPTIONS_MONITORNO,
HEALBOT_OPTIONS_MONITORALL,
HEALBOT_DRUID,
HEALBOT_HUNTER,
HEALBOT_MAGE,
HEALBOT_PALADIN,
HEALBOT_PRIEST,
HEALBOT_ROGUE,
HEALBOT_SHAMAN,
HEALBOT_WARLOCK,
HEALBOT_WARRIOR,
}
-- HealBot_Options_AddDebug: UI handler for AddDebug options panel.
function HealBot_Options_AddDebug(msg)
HealBot_AddDebug("Options: " .. msg);
+2 -2
View File
@@ -45,9 +45,9 @@ function HealBot_WarningSound_OnClick(this,id)
end
-- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel.
function HealBot_Options_CDCMonitor_DropDown()
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
for i=1, getn(HealBot_Options_CDCMonitor_List), 1 do
local info = {};
info.text = HealBot_Options_EmergencyFilter_List[i];
info.text = HealBot_Options_CDCMonitor_List[i];
info.func = HealBot_Options_CDCMonitor_OnSelect;
UIDropDownMenu_AddButton(info);
end
+14 -11
View File
@@ -29,21 +29,13 @@ end
-- HealBot_HealthColor: Computes health bar RGBA based on debuffs and class.
function HealBot_HealthColor(unit, hlth, maxhlth)
if HealBot_UnitDebuff[unit] then
local debuff_type = HealBot_UnitDebuff[unit]
local color = HealBot_Config.CDCBarColour[debuff_type]
local cached_debuff = HealBot_UnitDebuff[unit]
if cached_debuff then
local color = HealBot_Config.CDCBarColour[cached_debuff]
if color then
local dr = color.R
local dg = color.G
local db = color.B
if HealBot_Config.btexture[HealBot_Config.Current_Skin] == 10 then
dr = dr * 4
dg = dg * 4
db = db * 4
if dr > 1 then dr = 1 end
if dg > 1 then dg = 1 end
if db > 1 then db = 1 end
end
return dr, dg, db, HealBot_Config.Barcola[HealBot_Config.Current_Skin];
end
end
@@ -273,6 +265,17 @@ function HealBot_Action_EnableButton(button)
end
end
end
local raidIcon = getglobal(button:GetName() .. "BarRaidIcon")
if raidIcon then
local index = GetRaidTargetIndex(unit)
if index then
SetRaidTargetIconTexture(raidIcon, index)
raidIcon:Show()
else
raidIcon:Hide()
end
end
end
-- HealBot_Action_EnableButtons: Internal utility: HealBot_Action_EnableButtons
+3
View File
@@ -50,6 +50,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
### Change Log
**v1.7.0**
* **Feature - Raid Marks** - Added tracking and display of raid marks on unit frames.
* **External Addon Integrations** - Added a new 'Extras' tab in Options to optionally enable integrations with `UnitXP_SP3` (for ultra-precise 3D range and Line of Sight checks), `nampower` (for accurate real-time heal/buff tracking), `SuperWoW` (for robust GUID-based state tracking), and `ClassicAPI` (for native +Healing bonuses and fast 3D distance checks).
* **UI Layout** - Widened the Options UI and neatly centered elements to accommodate the new integrations tab.
* **Bug Fix - Rendering Crash** - Fixed a critical UI issue where unrecognized debuff types would crash the rendering loop, causing unit frames to disappear.
@@ -61,6 +62,8 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
* **Bug Fix - CDC Filter** - Fixed an issue where the CDC module displayed all debuffs instead of filtering for dispellable ones, restoring proper health bar coloring.
* **Bug Fix - UnitClass Localization** - Added a fallback mapping for the Vanilla `UnitClass` API to always return the uppercase English class string. This fixes a bug where default options (like Debuff tracking) failed to initialize.
* **Feature - Shapeshift Spell Queue** - Built a native spell queue system for Druid auto-unshifting. Bypasses the "Cannot cast while shapeshifted" error and server lag when AutoUnshift is enabled, firing the heal seamlessly the exact millisecond the form is dropped. Now completely unified to use the standard casting API for maximum reliability across all client setups.
* **Bug Fix - CDC Config List** - Fixed an uninitialized dropdown list array that prevented the CDC class monitor configuration from saving correctly.
* **Bug Fix - Color Picker Accuracy** - Removed an undocumented multiplier hack on default textures that was artificially brightening debuff bar colors and overriding the user's selected colors from the color picker.
**v1.6.5**
* **Performance Update - Mana Tracking** - Added a fast-path redraw pipeline for unit power changes. This optimization prevents full frame redraws when players naturally regenerate or consume mana, resolving severe FPS drops in 40-man raids while tracking mana.