From a3f3d9e4c6dc856376e5bce3d68e26758883d999 Mon Sep 17 00:00:00 2001
From: Bluewhale1337 <295648290+Bluewhale1337@users.noreply.github.com>
Date: Tue, 21 Jul 2026 22:46:14 +0200
Subject: [PATCH 1/7] feat: expand unit capacity to 100 buttons and add
RAID_ROSTER_UPDATE event handling
---
HealBot_Action.xml | 49 ++++++++++++++++++++++++++
HealBot_Controller_Events.lua | 11 ++++++
HealBot_View_Layout.lua | 6 ++--
__pycache__/patch_xml.cpython-314.pyc | Bin 0 -> 1555 bytes
patch_xml.py | 23 ++++++++++++
5 files changed, 85 insertions(+), 4 deletions(-)
create mode 100644 __pycache__/patch_xml.cpython-314.pyc
create mode 100644 patch_xml.py
diff --git a/HealBot_Action.xml b/HealBot_Action.xml
index d744213..8cfd040 100644
--- a/HealBot_Action.xml
+++ b/HealBot_Action.xml
@@ -232,6 +232,15 @@
+
+
+
+
+
+
+
+
+
@@ -243,6 +252,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/HealBot_Controller_Events.lua b/HealBot_Controller_Events.lua
index c10d4b2..aaa6887 100644
--- a/HealBot_Controller_Events.lua
+++ b/HealBot_Controller_Events.lua
@@ -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");
diff --git a/HealBot_View_Layout.lua b/HealBot_View_Layout.lua
index b174810..e6579c1 100644
--- a/HealBot_View_Layout.lua
+++ b/HealBot_View_Layout.lua
@@ -402,6 +402,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);
@@ -466,10 +467,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();
diff --git a/__pycache__/patch_xml.cpython-314.pyc b/__pycache__/patch_xml.cpython-314.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..085704bfac1ce1007b4920a3cf2c65b0386eb944
GIT binary patch
literal 1555
zcma)6&u9QiXqaLBDWkYWuNB2K*pf)s%`Fypn`btRL|YG>xX_kC~Pd~dZA
z10g@~@#lTxk|F^-7e;sZI-8xJFhCP>prI2$K}TbtVNFVLuNcRWf$F#}8IW=uK(US&
zydA@}{1Yb{5>JYsD8?vgWFg?}-Lvi)gWPAiuevAggGH$0N&bGP08~Jee}Eupo+)V_
zpW=K4MtH0ODdc3K-uL94&6#`T_4du{(_vxQU8%F@y7)9j_kQjQX~b>mqShtAOD
z#)pfQ0>4v1?bSo57Y{OAH5n;aOq-!1BULkBVBY1jO--9Ja;a?DOs?kblF33#ZEb5t
zYRdRJ!3MhKbkayB5=^SqmzaE+i)u2tQnhRvM+{jt@g*f#u#%_CD+WJuvT~LAX4cAu
z`l^|(9^g@ds9ojrwuBIR3d)wOZ1_j+N>AkR$MX0+)EXGPUA$HNb)`ACD}m?ZZ4V3`
z{9U=DyZ~6lKjLkGi~P637X#<B0qvaW}osX63Bd^yaUH_R&)RW
literal 0
HcmV?d00001
diff --git a/patch_xml.py b/patch_xml.py
new file mode 100644
index 0000000..302abfa
--- /dev/null
+++ b/patch_xml.py
@@ -0,0 +1,23 @@
+import re
+
+with open('HealBot_Action.xml', 'r') as f:
+ content = f.read()
+
+buttons_42_50 = '\n'.join([f' ' for i in range(42, 51)])
+buttons_61_100 = '\n'.join([f' ' for i in range(61, 101)])
+
+content = re.sub(
+ r'(