mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-07-27 09:44:44 +00:00
Compare commits
2 Commits
v1.6.1
..
d36ad994ea
| Author | SHA1 | Date | |
|---|---|---|---|
| d36ad994ea | |||
| a3f3d9e4c6 |
@@ -232,6 +232,15 @@
|
||||
<Button name="HealBot_Action_HealUnit39" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit40" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit41" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit42" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit43" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit44" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit45" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit46" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit47" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit48" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit49" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit50" inherits="HealingButtonTemplate" text="Unit not set"/>
|
||||
|
||||
<Button name="HealBot_Action_HealUnit51" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit52" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
@@ -243,6 +252,46 @@
|
||||
<Button name="HealBot_Action_HealUnit58" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit59" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit60" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit61" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit62" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit63" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit64" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit65" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit66" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit67" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit68" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit69" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit70" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit71" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit72" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit73" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit74" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit75" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit76" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit77" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit78" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit79" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit80" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit81" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit82" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit83" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit84" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit85" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit86" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit87" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit88" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit89" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit90" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit91" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit92" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit93" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit94" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit95" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit96" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit97" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit98" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit99" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_HealUnit100" inherits="HealingButtonTemplate2" text="Unit not set"/>
|
||||
|
||||
<Button name="HealBot_Action_Header1" inherits="HealingButtonTemplate4" text="Unit not set"/>
|
||||
<Button name="HealBot_Action_Header2" inherits="HealingButtonTemplate4" text="Unit not set"/>
|
||||
|
||||
@@ -181,6 +181,16 @@ local HealBot_EventHandlers = {
|
||||
HealBot_Model:NotifyObservers("ROSTER_CHANGED")
|
||||
HealBot_OnEvent_PartyMembersChanged(this)
|
||||
end,
|
||||
["RAID_ROSTER_UPDATE"] = function(this)
|
||||
for _, unit in ipairs(HealBot_Model.partyMembers) do
|
||||
HealBot_Model:RefreshUnit(unit)
|
||||
end
|
||||
for _, unit in ipairs(HealBot_Model.raidMembers) do
|
||||
HealBot_Model:RefreshUnit(unit)
|
||||
end
|
||||
HealBot_Model:NotifyObservers("ROSTER_CHANGED")
|
||||
HealBot_OnEvent_PartyMembersChanged(this)
|
||||
end,
|
||||
["PLAYER_ENTERING_WORLD"] = function(this)
|
||||
HealBot_Model:RefreshUnit("player")
|
||||
HealBot_Model:RefreshUnit("pet")
|
||||
@@ -282,6 +292,7 @@ function HealBot_OnEvent_VariablesLoaded(this)
|
||||
this:RegisterEvent("PLAYER_REGEN_ENABLED");
|
||||
this:RegisterEvent("PLAYER_TARGET_CHANGED");
|
||||
this:RegisterEvent("PARTY_MEMBERS_CHANGED");
|
||||
this:RegisterEvent("RAID_ROSTER_UPDATE");
|
||||
this:RegisterEvent("PARTY_MEMBER_DISABLE");
|
||||
this:RegisterEvent("PARTY_MEMBER_ENABLE");
|
||||
this:RegisterEvent("UNIT_PET");
|
||||
@@ -365,7 +376,7 @@ end
|
||||
|
||||
function HealBot_OnEvent_PlayerRegenEnabled(this)
|
||||
HealBot_IsFighting = false;
|
||||
-- Removed HealBot_Delay_RecalcParty = 1;
|
||||
HealBot_Delay_RecalcParty = 1;
|
||||
end
|
||||
|
||||
function HealBot_OnEvent_PlayerTargetChanged(this)
|
||||
|
||||
+149
-6
@@ -110,6 +110,11 @@ function HealBot_Action_EnableButton(button)
|
||||
local name = state.name
|
||||
if not name then name = UnitName(unit) end -- fallback
|
||||
|
||||
if not name or name == "Unknown" then
|
||||
button:Hide()
|
||||
return
|
||||
end
|
||||
|
||||
local bar = HealBot_Action_HealthBar(button);
|
||||
local bar2 = HealBot_Action_HealthBar2(button);
|
||||
if not button.bar3 then button.bar3 = getglobal(button:GetName() .. "Bar3") end
|
||||
@@ -402,6 +407,7 @@ function HealBot_Action_SetHealButton(index, unit)
|
||||
return nil
|
||||
end
|
||||
local button = getglobal("HealBot_Action_HealUnit" .. index);
|
||||
if not button then return nil end
|
||||
button.unit = unit;
|
||||
if unit then
|
||||
table.insert(HealBot_Action_HealButtons, button);
|
||||
@@ -414,8 +420,12 @@ function HealBot_Action_SetHealButton(index, unit)
|
||||
end
|
||||
|
||||
function HealBot_Action_PartyChanged()
|
||||
if not HealBot_IsFighting then
|
||||
local numBars = 0;
|
||||
if HealBot_IsFighting then
|
||||
HealBot_Action_AppendNewUnits()
|
||||
return
|
||||
end
|
||||
|
||||
local numBars = 0;
|
||||
local numHeaders = 0;
|
||||
local TempMaxH = 0;
|
||||
local HeaderPos = {};
|
||||
@@ -466,10 +476,7 @@ function HealBot_Action_PartyChanged()
|
||||
local checked_end = 0;
|
||||
headerno = 0;
|
||||
|
||||
for j = 1, 41 do
|
||||
HealBot_Action_SetHealButton(j, nil);
|
||||
end
|
||||
for j = 51, 60 do
|
||||
for j = 1, 100 do
|
||||
HealBot_Action_SetHealButton(j, nil);
|
||||
end
|
||||
HealBot_Action_SetHealButton();
|
||||
@@ -901,6 +908,16 @@ function HealBot_Action_PartyChanged()
|
||||
end
|
||||
end
|
||||
|
||||
HealBot_Grid_LastI = i;
|
||||
HealBot_Grid_LastH = h;
|
||||
HealBot_Grid_LastZ = z;
|
||||
HealBot_Grid_OffsetX = OffsetX;
|
||||
HealBot_Grid_OffsetY = OffsetY;
|
||||
HealBot_Grid_MaxOffsetX = MaxOffsetX;
|
||||
HealBot_Grid_MaxOffsetY = MaxOffsetY;
|
||||
HealBot_Grid_Limit = limit;
|
||||
HealBot_Grid_NumBars = numBars;
|
||||
|
||||
if HealBot_Config.HideOptions == 1 then
|
||||
HealBot_Action_OptionsButton:Hide();
|
||||
else
|
||||
@@ -995,3 +1012,129 @@ function HealBot_Action_Refresh(unit)
|
||||
end
|
||||
end
|
||||
end
|
||||
function HealBot_Action_AppendUnit(unit)
|
||||
if not HealBot_Grid_LastI then return end
|
||||
if HealBot_Grid_LastI >= 100 then return end
|
||||
|
||||
HealBot_Grid_LastI = HealBot_Grid_LastI + 1
|
||||
HealBot_Grid_NumBars = HealBot_Grid_NumBars + 1
|
||||
|
||||
local button = HealBot_Action_SetHealButton(HealBot_Grid_LastI, unit)
|
||||
if not button then return end
|
||||
|
||||
local orientation = (HealBot_Config.GridOrientation and HealBot_Config.GridOrientation[HealBot_Config.Current_Skin]) or 1
|
||||
local bwidth = (HealBot_Config.bwidth and HealBot_Config.bwidth[HealBot_Config.Current_Skin]) or 85
|
||||
local bheight = (HealBot_Config.bheight and HealBot_Config.bheight[HealBot_Config.Current_Skin]) or 18
|
||||
local bcspace = (HealBot_Config.bcspace and HealBot_Config.bcspace[HealBot_Config.Current_Skin]) or 3
|
||||
local brspace = (HealBot_Config.brspace and HealBot_Config.brspace[HealBot_Config.Current_Skin]) or 3
|
||||
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||
|
||||
if orientation == 1 then
|
||||
HealBot_Grid_OffsetY = HealBot_Action_PositionButton(button, HealBot_Grid_OffsetX, HealBot_Grid_OffsetY, bwidth, bheight, false, nil)
|
||||
if HealBot_Grid_LastH == HealBot_Grid_Limit then
|
||||
HealBot_Grid_LastH = 0
|
||||
if HealBot_Grid_MaxOffsetY < HealBot_Grid_OffsetY then HealBot_Grid_MaxOffsetY = HealBot_Grid_OffsetY end
|
||||
HealBot_Grid_OffsetY = bpadding
|
||||
HealBot_Grid_OffsetX = HealBot_Grid_OffsetX + bwidth + bcspace
|
||||
end
|
||||
else
|
||||
HealBot_Grid_OffsetX = HealBot_Action_PositionButtonHorizontal(button, HealBot_Grid_OffsetX, HealBot_Grid_OffsetY, bwidth, bheight, false, nil)
|
||||
if HealBot_Grid_LastH == HealBot_Grid_Limit then
|
||||
HealBot_Grid_LastH = 0
|
||||
if HealBot_Grid_MaxOffsetX < HealBot_Grid_OffsetX then HealBot_Grid_MaxOffsetX = HealBot_Grid_OffsetX end
|
||||
HealBot_Grid_OffsetX = bpadding
|
||||
HealBot_Grid_OffsetY = HealBot_Grid_OffsetY + bheight + brspace
|
||||
end
|
||||
end
|
||||
|
||||
HealBot_Grid_LastH = HealBot_Grid_LastH + 1
|
||||
HealBot_Grid_LastZ = HealBot_Grid_LastZ + 1
|
||||
|
||||
local bar = HealBot_Action_HealthBar(button)
|
||||
local bar2 = HealBot_Action_HealthBar2(button)
|
||||
bar.txt = getglobal(bar:GetName() .. "_text")
|
||||
bar:SetHeight(bheight)
|
||||
local btexture = (HealBot_Config.btexture and HealBot_Config.btexture[HealBot_Config.Current_Skin]) or 5
|
||||
HealBot_Action_SetTexture(bar, btexture)
|
||||
local btextheight = (HealBot_Config.btextheight and HealBot_Config.btextheight[HealBot_Config.Current_Skin]) or 10
|
||||
bar.txt:SetTextHeight(btextheight)
|
||||
bar2:SetHeight(bheight)
|
||||
HealBot_Action_SetTexture(bar2, btexture)
|
||||
|
||||
local totalOffsetX = HealBot_Grid_OffsetX
|
||||
local totalOffsetY = HealBot_Grid_OffsetY
|
||||
if orientation == 1 then
|
||||
if HealBot_Grid_MaxOffsetY < totalOffsetY then HealBot_Grid_MaxOffsetY = totalOffsetY end
|
||||
totalOffsetY = HealBot_Grid_MaxOffsetY
|
||||
else
|
||||
if HealBot_Grid_MaxOffsetX < totalOffsetX then HealBot_Grid_MaxOffsetX = totalOffsetX end
|
||||
totalOffsetX = HealBot_Grid_MaxOffsetX
|
||||
totalOffsetY = totalOffsetY + bheight + brspace
|
||||
end
|
||||
|
||||
HealBot_Action_SetHeightWidth(totalOffsetX, totalOffsetY + bpadding, bwidth)
|
||||
end
|
||||
function HealBot_Action_AppendNewUnits()
|
||||
if not HealBot_Grid_LastI then return end
|
||||
|
||||
local unitsToCheck = {}
|
||||
|
||||
-- Gather units based on config, similar to PartyChanged
|
||||
if HealBot_Config.GroupHeals == 1 then
|
||||
for _, unit in ipairs(HealBot_Action_HealGroup) do
|
||||
table.insert(unitsToCheck, unit)
|
||||
end
|
||||
end
|
||||
|
||||
if HealBot_Config.TankHeals == 1 and GetNumRaidMembers() > 0 and CT_RA_MainTanks then
|
||||
for j = 1, 10 do
|
||||
if CT_RA_MainTanks[j] then
|
||||
for k = 1, GetNumRaidMembers() do
|
||||
local unit = "raid" .. k
|
||||
if UnitName(unit) == CT_RA_MainTanks[j] then
|
||||
table.insert(unitsToCheck, unit)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if HealBot_Config.TargetHeals == 1 then
|
||||
for _, unit in ipairs(HealBot_Action_HealTarget) do
|
||||
table.insert(unitsToCheck, unit)
|
||||
end
|
||||
table.insert(unitsToCheck, "target")
|
||||
end
|
||||
|
||||
if HealBot_Config.EmergencyHeals == 1 then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
table.insert(unitsToCheck, "raid" .. j)
|
||||
end
|
||||
else
|
||||
for j = 1, 4 do
|
||||
table.insert(unitsToCheck, "party" .. j)
|
||||
end
|
||||
table.insert(unitsToCheck, "player")
|
||||
end
|
||||
end
|
||||
|
||||
if HealBot_Config.PetHeals == 1 then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
table.insert(unitsToCheck, "raidpet" .. j)
|
||||
end
|
||||
else
|
||||
for j = 1, 4 do
|
||||
table.insert(unitsToCheck, "partypet" .. j)
|
||||
end
|
||||
table.insert(unitsToCheck, "pet")
|
||||
end
|
||||
end
|
||||
|
||||
for _, unit in ipairs(unitsToCheck) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
HealBot_Action_AppendUnit(unit)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -47,7 +47,8 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
### Change Log
|
||||
|
||||
**v1.6.1**
|
||||
* **Hotfix** - With class colours toggled extra frames for player pets were given some classy mint colour.
|
||||
* **Hotfix - pet frames** - With class colours toggled extra frames for player pets were given some classy mint colour.
|
||||
* **Hotfi - raidframes in combat** - Modfied how frames behave when player leaves during combat.
|
||||
|
||||
**v1.6**
|
||||
* **Event Loop Decoupling:** Ripped out redundant synchronous UI redraws that were bypassed by the new MVC architecture. High-frequency events (mana regen, health ticks) now fully rely on the `HealBot_OnUpdate` dirty queue, severely reducing CPU bottlenecks.
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
import re
|
||||
|
||||
with open('HealBot_Action.xml', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
buttons_42_50 = '\n'.join([f' <Button name=\"HealBot_Action_HealUnit{i}\" inherits=\"HealingButtonTemplate\" text=\"Unit not set\"/>' for i in range(42, 51)])
|
||||
buttons_61_100 = '\n'.join([f' <Button name=\"HealBot_Action_HealUnit{i}\" inherits=\"HealingButtonTemplate2\" text=\"Unit not set\"/>' for i in range(61, 101)])
|
||||
|
||||
content = re.sub(
|
||||
r'(<Button name=\"HealBot_Action_HealUnit41\" [^\>]+>\n)',
|
||||
r'\g<1>' + buttons_42_50 + '\n',
|
||||
content
|
||||
)
|
||||
|
||||
content = re.sub(
|
||||
r'(<Button name=\"HealBot_Action_HealUnit60\" [^\>]+>\n)',
|
||||
r'\g<1>' + buttons_61_100 + '\n',
|
||||
content
|
||||
)
|
||||
|
||||
with open('HealBot_Action.xml', 'w') as f:
|
||||
f.write(content)
|
||||
print('Updated HealBot_Action.xml')
|
||||
Reference in New Issue
Block a user