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> </Anchors>
<Layers> <Layers>
<Layer level="OVERLAY"> <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"> <Texture name="$parentIcon1" hidden="true">
<Size><AbsDimension x="12" y="12"/></Size> <Size><AbsDimension x="12" y="12"/></Size>
<Anchors> <Anchors>
+1 -1
View File
@@ -186,7 +186,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
local trackedTextures = {} local trackedTextures = {}
while true do while true do
local debuff, tmp, debuff_type = UnitDebuff(unit, i) local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
if debuff then if debuff then
local mapped_type = nil local mapped_type = nil
if debuff_type then if debuff_type then
+8
View File
@@ -281,6 +281,13 @@ local HealBot_EventHandlers = {
HealBot_Model:NotifyObservers("ROSTER_CHANGED") HealBot_Model:NotifyObservers("ROSTER_CHANGED")
HealBot_OnEvent_PartyMembersChanged(this) HealBot_OnEvent_PartyMembersChanged(this)
end, 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) ["PLAYER_ENTERING_WORLD"] = function(this)
HealBot_Model:RefreshUnit("player") HealBot_Model:RefreshUnit("player")
HealBot_Model:RefreshUnit("pet") HealBot_Model:RefreshUnit("pet")
@@ -386,6 +393,7 @@ function HealBot_OnEvent_VariablesLoaded(this)
this:RegisterEvent("PLAYER_TARGET_CHANGED"); this:RegisterEvent("PLAYER_TARGET_CHANGED");
this:RegisterEvent("PARTY_MEMBERS_CHANGED"); this:RegisterEvent("PARTY_MEMBERS_CHANGED");
this:RegisterEvent("RAID_ROSTER_UPDATE"); this:RegisterEvent("RAID_ROSTER_UPDATE");
this:RegisterEvent("RAID_TARGET_UPDATE");
this:RegisterEvent("PARTY_MEMBER_DISABLE"); this:RegisterEvent("PARTY_MEMBER_DISABLE");
this:RegisterEvent("PARTY_MEMBER_ENABLE"); this:RegisterEvent("PARTY_MEMBER_ENABLE");
this:RegisterEvent("UNIT_PET"); this:RegisterEvent("UNIT_PET");
+4 -4
View File
@@ -54,10 +54,10 @@ HealBot_ConfigDefaults = {
PanelAnchorX = -1, PanelAnchorX = -1,
PanelAnchorY = -1, PanelAnchorY = -1,
CDCBarColour = { CDCBarColour = {
[HEALBOT_DISEASE_en] = { R = 0.1, G = 0.05, B = 0.2, }, [HEALBOT_DISEASE_en] = { R = 0.55, G = 0.19, B = 0.70, }, -- Bright Purple
[HEALBOT_MAGIC_en] = { R = 0.05, G = 0.05, B = 0.1, }, [HEALBOT_MAGIC_en] = { R = 0.01, G = 0.30, B = 0.90, }, -- Bright Blue
[HEALBOT_POISON_en] = { R = 0.05, G = 0.2, B = 0.1, }, [HEALBOT_POISON_en] = { R = 0.12, G = 0.46, B = 0.24, }, -- Bright Green
[HEALBOT_CURSE_en] = { R = 0.2, G = 0.05, B = 0.05, }, [HEALBOT_CURSE_en] = { R = 0.83, G = 0.01, B = 0.01, }, -- Bright Red
}, },
Debuff_Left = { Debuff_Left = {
+14
View File
@@ -14,6 +14,20 @@ HealBot_Options_EmergencyFilter_List = {
HEALBOT_OPTIONS_MONITORCUSTOM, 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. -- HealBot_Options_AddDebug: UI handler for AddDebug options panel.
function HealBot_Options_AddDebug(msg) function HealBot_Options_AddDebug(msg)
HealBot_AddDebug("Options: " .. msg); HealBot_AddDebug("Options: " .. msg);
+2 -2
View File
@@ -45,9 +45,9 @@ function HealBot_WarningSound_OnClick(this,id)
end end
-- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel. -- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel.
function HealBot_Options_CDCMonitor_DropDown() 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 = {}; local info = {};
info.text = HealBot_Options_EmergencyFilter_List[i]; info.text = HealBot_Options_CDCMonitor_List[i];
info.func = HealBot_Options_CDCMonitor_OnSelect; info.func = HealBot_Options_CDCMonitor_OnSelect;
UIDropDownMenu_AddButton(info); UIDropDownMenu_AddButton(info);
end end
+14 -11
View File
@@ -29,21 +29,13 @@ end
-- HealBot_HealthColor: Computes health bar RGBA based on debuffs and class. -- HealBot_HealthColor: Computes health bar RGBA based on debuffs and class.
function HealBot_HealthColor(unit, hlth, maxhlth) function HealBot_HealthColor(unit, hlth, maxhlth)
if HealBot_UnitDebuff[unit] then local cached_debuff = HealBot_UnitDebuff[unit]
local debuff_type = HealBot_UnitDebuff[unit] if cached_debuff then
local color = HealBot_Config.CDCBarColour[debuff_type] local color = HealBot_Config.CDCBarColour[cached_debuff]
if color then if color then
local dr = color.R local dr = color.R
local dg = color.G local dg = color.G
local db = color.B 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]; return dr, dg, db, HealBot_Config.Barcola[HealBot_Config.Current_Skin];
end end
end end
@@ -273,6 +265,17 @@ function HealBot_Action_EnableButton(button)
end end
end 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 end
-- HealBot_Action_EnableButtons: Internal utility: HealBot_Action_EnableButtons -- 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 ### Change Log
**v1.7.0** **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). * **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. * **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. * **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 - 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. * **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. * **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** **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. * **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.