mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-09-10 09:20:21 +00:00
Feature: add raid mark display to unit frames
Fix: resolve CDC configuration and color rendering issues
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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,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);
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user