From f7443fcdf044614e08bd07ff9229e039e544fed2 Mon Sep 17 00:00:00 2001
From: Bluewhale1337 <295648290+Bluewhale1337@users.noreply.github.com>
Date: Sun, 9 Aug 2026 12:11:29 +0200
Subject: [PATCH] feat: increase icon limit to 10, add customizable icon size,
and remove obsolete code
---
HealBot_Action.xml | 40 +++++++++++++++++++++++++++++++++++++
HealBot_Controller_Aura.lua | 8 ++++----
HealBot_Data.lua | 15 ++------------
HealBot_Options.lua | 3 +++
HealBot_Options_General.lua | 5 +++++
HealBot_Options_Skins.xml | 16 +++++++++++++++
HealBot_View_Layout.lua | 5 ++++-
README.md | 3 +++
8 files changed, 77 insertions(+), 18 deletions(-)
diff --git a/HealBot_Action.xml b/HealBot_Action.xml
index 8cfd040..9a82842 100644
--- a/HealBot_Action.xml
+++ b/HealBot_Action.xml
@@ -73,6 +73,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/HealBot_Controller_Aura.lua b/HealBot_Controller_Aura.lua
index 29f9d75..7b85427 100644
--- a/HealBot_Controller_Aura.lua
+++ b/HealBot_Controller_Aura.lua
@@ -160,7 +160,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
if not HealBot_UnitIcons[unit] then
HealBot_UnitIcons[unit] = {}
end
- for j = 1, 5 do
+ for j = 1, 10 do
HealBot_UnitIcons[unit][j] = nil
end
local iconCount = 0
@@ -168,7 +168,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
while true do
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
if debuff then
- if iconCount < 5 then
+ if iconCount < 10 then
iconCount = iconCount + 1
HealBot_UnitIcons[unit][iconCount] = debuff
end
@@ -190,7 +190,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
while true do
local buff = UnitBuff(unit, b)
if not buff then break end
- if HealBot_TrackedHoTs[buff] and iconCount < 5 then
+ if HealBot_TrackedHoTs[buff] and iconCount < 10 then
iconCount = iconCount + 1
HealBot_UnitIcons[unit][iconCount] = buff
end
@@ -201,7 +201,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
while true do
local debuff = UnitDebuff(unit, d)
if not debuff then break end
- if HealBot_TrackedHoTs[debuff] and iconCount < 5 then
+ if HealBot_TrackedHoTs[debuff] and iconCount < 10 then
iconCount = iconCount + 1
HealBot_UnitIcons[unit][iconCount] = debuff
end
diff --git a/HealBot_Data.lua b/HealBot_Data.lua
index 86d1b4c..387e68a 100644
--- a/HealBot_Data.lua
+++ b/HealBot_Data.lua
@@ -246,6 +246,7 @@ HealBot_ConfigDefaults = {
bpadding = {[HEALBOT_SKINS_STD] = 10, ["HealBot Party"] = 10, ["HealBot Raid"] = 10, ["Alteric Valley"] = 10, ["Modern Flat"] = 10},
bboffset = {[HEALBOT_SKINS_STD] = 16, ["HealBot Party"] = 16, ["HealBot Raid"] = 16, ["Alteric Valley"] = 16, ["Modern Flat"] = 3},
bfontoutline = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 1},
+ biconsize = {[HEALBOT_SKINS_STD] = 12, ["HealBot Party"] = 12, ["HealBot Raid"] = 12, ["Alteric Valley"] = 12, ["Modern Flat"] = 12},
ShowTooltip = 1,
ShowManaBars = 0,
ManaBarsHealersOnly = 0,
@@ -274,18 +275,6 @@ HEALBOT_ADDON_ID="HealBot_Heals"
HealBot_AbortButton=1;
-HealBot_Groups = {
- ["ITEMS"] = {
- HEALBOT_BANDAGES,
- HEALBOT_HEALING_POTIONS,
- HEALBOT_HEALTHSTONES,
- },
- ["PALADIN"] = {
- HEALBOT_HOLY_LIGHT,
- HEALBOT_FLASH_OF_LIGHT,
- },
-}
-
HealBot_Spells = {
-- Cast = secs until effect starts
-- Channel = secs until caster available
@@ -584,7 +573,7 @@ HealBot_Action_TooltipUnit=nil;
HealBot_Ressing = {};
HealBot_IamRessing = false;
--- Table Recycling Pool (Puppeteer-inspired)
+-- Table Recycling Pool
local tablePool = {}
function HealBot_GetTable()
local t = table.remove(tablePool)
diff --git a/HealBot_Options.lua b/HealBot_Options.lua
index 7c49722..553aab7 100644
--- a/HealBot_Options.lua
+++ b/HealBot_Options.lua
@@ -301,6 +301,9 @@ function HealBot_Options_SetSkins()
HealBot_Options_BarAlphaInHeal:SetValue(HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin]);
HealBot_Options_BarTextureS:SetValue(HealBot_Config.btexture[HealBot_Config.Current_Skin])
HealBot_Options_BarHeightS:SetValue(HealBot_Config.bheight[HealBot_Config.Current_Skin])
+ HealBot_Options_AbortBarSize:SetValue(HealBot_Config.abortsize[HealBot_Config.Current_Skin])
+ HealBot_Options_FontHeight:SetValue(HealBot_Config.btextheight[HealBot_Config.Current_Skin])
+ HealBot_Options_IconSizeS:SetValue(HealBot_Config.biconsize[HealBot_Config.Current_Skin] or 12)
HealBot_Options_BarWidthS:SetValue(HealBot_Config.bwidth[HealBot_Config.Current_Skin])
HealBot_Options_BarNumColsS:SetValue(HealBot_Config.numcols[HealBot_Config.Current_Skin])
HealBot_Options_BarMaxRowsS:SetValue((HealBot_Config.bmaxrows and HealBot_Config.bmaxrows[HealBot_Config.Current_Skin]) or 0)
diff --git a/HealBot_Options_General.lua b/HealBot_Options_General.lua
index 1bb5a40..89eb156 100644
--- a/HealBot_Options_General.lua
+++ b/HealBot_Options_General.lua
@@ -44,6 +44,11 @@ function HealBot_Options_FontHeight_OnValueChanged(this)
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
HealBot_Action_ResetSkin()
end
+function HealBot_Options_IconSizeS_OnValueChanged(this)
+ HealBot_Config.biconsize[HealBot_Config.Current_Skin] = this:GetValue();
+ getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
+ HealBot_Action_ResetSkin()
+end
function HealBot_Options_AbortBarSize_OnValueChanged(this)
HealBot_Config.abortsize[HealBot_Config.Current_Skin] = this:GetValue();
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
diff --git a/HealBot_Options_Skins.xml b/HealBot_Options_Skins.xml
index fb8abf9..a85fb30 100644
--- a/HealBot_Options_Skins.xml
+++ b/HealBot_Options_Skins.xml
@@ -360,6 +360,22 @@
HealBot_Options_FontHeight_OnValueChanged(this)
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_val_OnLoad(this,"Icon size",5,30)
+ HealBot_Options_IconSizeS_OnValueChanged(this)
+
+
diff --git a/HealBot_View_Layout.lua b/HealBot_View_Layout.lua
index 76c56e7..2af7eef 100644
--- a/HealBot_View_Layout.lua
+++ b/HealBot_View_Layout.lua
@@ -251,11 +251,14 @@ function HealBot_Action_EnableButton(button)
bar.txt:SetFont(fontName, fontHeight, "")
end
- for i = 1, 5 do
+ local iconSize = HealBot_Config.biconsize[HealBot_Config.Current_Skin] or 12
+ for i = 1, 10 do
local icon = getglobal(button:GetName() .. "BarIcon" .. i)
if icon then
if HealBot_UnitIcons and HealBot_UnitIcons[unit] and HealBot_UnitIcons[unit][i] then
icon:SetTexture(HealBot_UnitIcons[unit][i])
+ icon:SetWidth(iconSize)
+ icon:SetHeight(iconSize)
icon:Show()
else
icon:Hide()
diff --git a/README.md b/README.md
index 5df83bc..c0e9a53 100644
--- a/README.md
+++ b/README.md
@@ -48,6 +48,9 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
**v1.6.3**
* **Hotfix string splitter** - added falback for string splitter if the the string is empty or nil.
+* **UI Update - Icon Limit** - Increased maximum tracked buffs/debuffs per unit from 5 to 10.
+* **UI Update - Customizable icon size** - Added an option to change size of HoT icons (default to 12px).
+* **Cleanup** - Removed dead code `HealBot_Groups` table.
**v1.6.2**
* **Hotfix - raid and party frames** - if getNumRaidMembers() > 0 wrapper around extra bars stopped from displaying all frames blocked from displaying Extras\Raid.