From dd9f9886b4f96c4f939767b0adb0da28c02cb8d6 Mon Sep 17 00:00:00 2001 From: Bluewhale1337 <295648290+Bluewhale1337@users.noreply.github.com> Date: Tue, 21 Jul 2026 09:02:33 +0200 Subject: [PATCH] feat: implement automatic skin swapping based on group size and add horizontal grid layout options --- HealBotBlue.toc | 1 + HealBot_Data.lua | 10 +++ HealBot_Options.lua | 2 + HealBot_Options.xml | 9 +++ HealBot_Options_Auto.lua | 79 ++++++++++++++++++++ HealBot_Options_Auto.xml | 152 ++++++++++++++++++++++++++++++++++++++ HealBot_Options_Skins.lua | 18 +++++ HealBot_Options_Skins.xml | 36 ++++++++- HealBot_View_Layout.lua | 93 +++++++++++++++++++---- 9 files changed, 385 insertions(+), 15 deletions(-) create mode 100644 HealBot_Options_Auto.lua create mode 100644 HealBot_Options_Auto.xml diff --git a/HealBotBlue.toc b/HealBotBlue.toc index 1713e79..cb73825 100644 --- a/HealBotBlue.toc +++ b/HealBotBlue.toc @@ -27,3 +27,4 @@ HealBot_Options_CDC.xml HealBot_Options_Skins.xml HealBot_Options_Buffs.xml HealBot_Options_Chat.xml +HealBot_Options_Auto.xml diff --git a/HealBot_Data.lua b/HealBot_Data.lua index a6fe2bf..e0a5377 100644 --- a/HealBot_Data.lua +++ b/HealBot_Data.lua @@ -181,7 +181,17 @@ HealBot_ConfigDefaults = { Current_Skin = "Modern Flat", Skin_ID = 1, Skins = {"Modern Flat", HEALBOT_SKINS_STD, "HealBot Party", "HealBot Raid", "Alteric Valley"}, + AutoSwap_Enabled = 0, + AutoSwap_Profiles = { + [1] = "Modern Flat", -- Solo + [2] = "HealBot Party", -- Party (2-5) + [3] = "HealBot Raid", -- Raid 15 (6-15) + [4] = "HealBot Raid", -- Raid 25 (16-25) + [5] = "HealBot Raid", -- Raid 40 (26-40) + }, numcols = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 4, ["Alteric Valley"] = 2, ["Modern Flat"] = 1}, + bmaxrows = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 0}, + GridOrientation = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1}, btexture = {[HEALBOT_SKINS_STD] = 8,["HealBot Party"] = 6, ["HealBot Raid"] = 7, ["Alteric Valley"] = 9, ["Modern Flat"] = 10}, bcspace = {[HEALBOT_SKINS_STD] = 4, ["HealBot Party"] = 4, ["HealBot Raid"] = 2, ["Alteric Valley"] = 2, ["Modern Flat"] = 4}, brspace = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 2, ["HealBot Raid"] = 2, ["Alteric Valley"] = 1, ["Modern Flat"] = 2}, diff --git a/HealBot_Options.lua b/HealBot_Options.lua index 0a30e9c..f3ebf3e 100644 --- a/HealBot_Options.lua +++ b/HealBot_Options.lua @@ -314,6 +314,8 @@ function HealBot_Options_SetSkins() HealBot_Options_BarHeightS:SetValue(HealBot_Config.bheight[HealBot_Config.Current_Skin]) 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[HealBot_Config.Current_Skin] or 0) + HealBot_Options_GridOrientation:SetChecked((HealBot_Config.GridOrientation[HealBot_Config.Current_Skin] == 2) and 1 or nil) HealBot_Options_BarBRSpaceS:SetValue(HealBot_Config.brspace[HealBot_Config.Current_Skin]) HealBot_Options_BarBCSpaceS:SetValue(HealBot_Config.bcspace[HealBot_Config.Current_Skin]) HealBot_Options_FramePaddingS:SetValue((HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10) diff --git a/HealBot_Options.xml b/HealBot_Options.xml index 31db38a..c2c12a2 100644 --- a/HealBot_Options.xml +++ b/HealBot_Options.xml @@ -206,6 +206,15 @@ +