feat: add max/min HP bar color configuration and font selection options to skins

This commit is contained in:
Bluewhale1337
2026-10-10 12:25:28 +02:00
parent d5ecdc6c76
commit 4694db4f90
12 changed files with 451 additions and 322 deletions
+7 -1
View File
@@ -473,7 +473,13 @@ end
-- HealBot_AddHeal: Internal utility: HealBot_AddHeal
function HealBot_AddHeal(spell)
HealBot_SetSpellDefaults(spell);
table.foreachi(HealBot_Spells[spell].Target, function (i, val)
local targetList = HealBot_Spells[spell].Target
if not targetList and HealBot_Spells[spell].Group and HealBot_Spells[HealBot_Spells[spell].Group] then
targetList = HealBot_Spells[HealBot_Spells[spell].Group].Target
end
if not targetList then targetList = {"player", "party", "pet"} end
table.foreachi(targetList, function (i, val)
if not HealBot_Heals[val] then HealBot_Heals[val] = {} end
table.insert(HealBot_Heals[val], spell);
end);
HealBot_Spells[spell].BagSlot = HealBot_GetBagSlot(spell);
+7
View File
@@ -249,6 +249,13 @@ HealBot_ConfigDefaults = {
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},
bcolormaxr = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 0},
bcolormaxg = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
bcolormaxb = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 0},
bcolorminr = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
bcolorming = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 0},
bcolorminb = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 0},
bfont = {[HEALBOT_SKINS_STD] = "Fonts\\FRIZQT__.TTF", ["HealBot Party"] = "Fonts\\FRIZQT__.TTF", ["HealBot Raid"] = "Fonts\\FRIZQT__.TTF", ["Alteric Valley"] = "Fonts\\FRIZQT__.TTF", ["Modern Flat"] = "Fonts\\FRIZQT__.TTF"},
ShowTooltip = 1,
ShowManaBars = 0,
ManaBarsHealersOnly = 0,
+2
View File
@@ -242,6 +242,8 @@ HEALBOT_OPTIONS_NEWSKINTEXT = "Neuer Skin"
HEALBOT_OPTIONS_SAVESKIN = "Speichern"
HEALBOT_OPTIONS_SKINBARS = "Leisten Optionen"
HEALBOT_OPTIONS_SKINPANEL = "Panel Farben"
HEALBOT_SKIN_MAXHPTEXT = "Max HP"
HEALBOT_SKIN_MINHPTEXT = "Min HP"
HEALBOT_SKIN_ENTEXT = "Aktiv"
HEALBOT_SKIN_DISTEXT = "Inaktiv"
HEALBOT_SKIN_DEBTEXT = "Debuff"
+2
View File
@@ -275,6 +275,8 @@ HEALBOT_OPTIONS_BUFF7 = "Buff 7";
HEALBOT_OPTIONS_BUFF8 = "Buff 8";
HEALBOT_OPTIONS_SKINBARS = "Bar options"
HEALBOT_OPTIONS_SKINPANEL = "Panel colours"
HEALBOT_SKIN_MAXHPTEXT = "Max HP"
HEALBOT_SKIN_MINHPTEXT = "Min HP"
HEALBOT_SKIN_ENTEXT = "Enabled"
HEALBOT_SKIN_DISTEXT = "Disabled"
HEALBOT_SKIN_DEBTEXT = "Debuff"
+2
View File
@@ -305,6 +305,8 @@ HEALBOT_OPTIONS_NEWSKINTEXT = "New skin" -- *************** needs French
HEALBOT_OPTIONS_SAVESKIN = "Save" -- *************** needs French translation ***************
HEALBOT_OPTIONS_SKINBARS = "Bar options" -- *************** needs French translation ***************
HEALBOT_OPTIONS_SKINPANEL = "Panel colours" -- *************** needs French translation ***************
HEALBOT_SKIN_MAXHPTEXT = "Max HP"
HEALBOT_SKIN_MINHPTEXT = "Min HP"
HEALBOT_SKIN_ENTEXT = "Enabled" -- *************** needs French translation ***************
HEALBOT_SKIN_DISTEXT = "Disabled" -- *************** needs French translation ***************
HEALBOT_SKIN_DEBTEXT = "Debuff" -- *************** needs French translation ***************
+2
View File
@@ -221,6 +221,8 @@ HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
HEALBOT_OPTIONS_SAVESKIN = "저장"
HEALBOT_OPTIONS_SKINBARS = "바 옵션들"
HEALBOT_OPTIONS_SKINPANEL = "패널 색"
HEALBOT_SKIN_MAXHPTEXT = "최대 생명력"
HEALBOT_SKIN_MINHPTEXT = "최소 생명력"
HEALBOT_SKIN_ENTEXT = "활성화"
HEALBOT_SKIN_DISTEXT = "비활성화"
HEALBOT_SKIN_DEBTEXT = "디버프"
+29
View File
@@ -202,6 +202,20 @@ function HealBot_Returned_Colours()
HealBot_Config.babortcolg[HealBot_Config.Current_Skin],
HealBot_Config.babortcolb[HealBot_Config.Current_Skin] = ColorPickerFrame:GetColorRGB();
HealBot_Config.babortcola[HealBot_Config.Current_Skin] = A;
elseif HealBot_ColourObjWaiting=="MaxHP" then
if not HealBot_Config.bcolormaxr then HealBot_Config.bcolormaxr = {} end
if not HealBot_Config.bcolormaxg then HealBot_Config.bcolormaxg = {} end
if not HealBot_Config.bcolormaxb then HealBot_Config.bcolormaxb = {} end
HealBot_Config.bcolormaxr[HealBot_Config.Current_Skin],
HealBot_Config.bcolormaxg[HealBot_Config.Current_Skin],
HealBot_Config.bcolormaxb[HealBot_Config.Current_Skin] = ColorPickerFrame:GetColorRGB();
elseif HealBot_ColourObjWaiting=="MinHP" then
if not HealBot_Config.bcolorminr then HealBot_Config.bcolorminr = {} end
if not HealBot_Config.bcolorming then HealBot_Config.bcolorming = {} end
if not HealBot_Config.bcolorminb then HealBot_Config.bcolorminb = {} end
HealBot_Config.bcolorminr[HealBot_Config.Current_Skin],
HealBot_Config.bcolorming[HealBot_Config.Current_Skin],
HealBot_Config.bcolorminb[HealBot_Config.Current_Skin] = ColorPickerFrame:GetColorRGB();
else
HealBot_Config.CDCBarColour[HealBot_ColourObjWaiting].R,
HealBot_Config.CDCBarColour[HealBot_ColourObjWaiting].G,
@@ -358,6 +372,21 @@ function HealBot_Options_SetSkins()
HealBot_Options_FramePaddingS:SetValue((HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10)
HealBot_Options_BorderThicknessS:SetValue((HealBot_Config.bboffset and HealBot_Config.bboffset[HealBot_Config.Current_Skin]) or 1)
HealBot_Options_FontHeight:SetValue(HealBot_Config.btextheight[HealBot_Config.Current_Skin])
local fontFile = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or "Fonts\\FRIZQT__.TTF"
local fontName = "Friz Quadrata"
if HealBot_Font_List then
for i = 1, getn(HealBot_Font_List) do
if HealBot_Font_List[i].file == fontFile then
fontName = HealBot_Font_List[i].text
UIDropDownMenu_SetSelectedID(HealBot_Options_Font_Dropdown, i)
break
end
end
end
if HealBot_Options_Font_DropdownText then
HealBot_Options_Font_DropdownText:SetText(fontName)
end
HealBot_Options_BarAlphaDis:SetValue(HealBot_Config.bardisa[HealBot_Config.Current_Skin])
HealBot_Options_AbortBarSize:SetValue(HealBot_Config.abortsize[HealBot_Config.Current_Skin])
local isShowHeaders = (HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1)
+26
View File
@@ -119,6 +119,16 @@ function HealBot_SkinColorpick_OnClick(SkinType)
HealBot_Config.babortcolg[HealBot_Config.Current_Skin],
HealBot_Config.babortcolb[HealBot_Config.Current_Skin],
HealBot_Config.babortcola[HealBot_Config.Current_Skin])
elseif SkinType=="MaxHP" then
local r = HealBot_Config.bcolormaxr and HealBot_Config.bcolormaxr[HealBot_Config.Current_Skin] or 0.0
local g = HealBot_Config.bcolormaxg and HealBot_Config.bcolormaxg[HealBot_Config.Current_Skin] or 1.0
local b = HealBot_Config.bcolormaxb and HealBot_Config.bcolormaxb[HealBot_Config.Current_Skin] or 0.0
HealBot_UseColourPick(r, g, b, 1.0)
elseif SkinType=="MinHP" then
local r = HealBot_Config.bcolorminr and HealBot_Config.bcolorminr[HealBot_Config.Current_Skin] or 1.0
local g = HealBot_Config.bcolorming and HealBot_Config.bcolorming[HealBot_Config.Current_Skin] or 0.0
local b = HealBot_Config.bcolorminb and HealBot_Config.bcolorminb[HealBot_Config.Current_Skin] or 0.0
HealBot_UseColourPick(r, g, b, 1.0)
end
end
-- HealBot_SetSkinColours: Applies skin configuration to UI elements.
@@ -136,6 +146,20 @@ function HealBot_SetSkinColours()
HealBot_EnTextColorpickin:SetStatusBarColor(0, 1, 0, inHealAlpha)
HealBot_DisTextColorpick:SetStatusBarColor(0, 1, 0, disabledAlpha)
local maxR = HealBot_Config.bcolormaxr and HealBot_Config.bcolormaxr[skin] or 0.0
local maxG = HealBot_Config.bcolormaxg and HealBot_Config.bcolormaxg[skin] or 1.0
local maxB = HealBot_Config.bcolormaxb and HealBot_Config.bcolormaxb[skin] or 0.0
if HealBot_MaxHPColorpick then
HealBot_MaxHPColorpick:SetStatusBarColor(maxR, maxG, maxB, 1.0)
end
local minR = HealBot_Config.bcolorminr and HealBot_Config.bcolorminr[skin] or 1.0
local minG = HealBot_Config.bcolorming and HealBot_Config.bcolorming[skin] or 0.0
local minB = HealBot_Config.bcolorminb and HealBot_Config.bcolorminb[skin] or 0.0
if HealBot_MinHPColorpick then
HealBot_MinHPColorpick:SetStatusBarColor(minR, minG, minB, 1.0)
end
-- 2. Set Text Colors
HealBot_EnTextColorpickt:SetTextColor(
HealBot_Config.btextenabledcolr[skin], HealBot_Config.btextenabledcolg[skin],
@@ -210,6 +234,8 @@ function HealBot_SetSkinColours()
HealBot_EnTextColorpickt:SetText(HEALBOT_SKIN_ENTEXT)
HealBot_DisTextColorpickt:SetText(HEALBOT_SKIN_DISTEXT)
HealBot_DebTextColorpickt:SetText(HEALBOT_SKIN_DEBTEXT)
if HealBot_MaxHPColorpickt then HealBot_MaxHPColorpickt:SetText(HEALBOT_SKIN_MAXHPTEXT or "Max HP") end
if HealBot_MinHPColorpickt then HealBot_MinHPColorpickt:SetText(HEALBOT_SKIN_MINHPTEXT or "Min HP") end
-- 6. Force UI redraw (Kept the scale hack since it addresses a specific engine quirk)
local barScale = HealBot_EnTextColorpick:GetScale()
+60
View File
@@ -1,6 +1,41 @@
-- HealBot Options panel file: HealBot_Options_Skins.lua
-- Split from original HealBot_Options.lua
HealBot_Font_List = {
{ text = "Friz Quadrata", file = "Fonts\\FRIZQT__.TTF" },
{ text = "Arial Narrow", file = "Fonts\\ARIALN.TTF" },
{ text = "Skurri", file = "Fonts\\skurri.ttf" },
{ text = "Morpheus", file = "Fonts\\MORPHEUS.ttf" },
}
function HealBot_Options_FontDD_OnLoad(this)
UIDropDownMenu_Initialize(this, HealBot_Options_FontDD_Initialize)
UIDropDownMenu_SetWidth(110, this)
end
function HealBot_Options_FontDD_Initialize()
local currentFont = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or "Fonts\\FRIZQT__.TTF"
for i = 1, getn(HealBot_Font_List) do
local fontItem = HealBot_Font_List[i]
local info = {}
info.text = fontItem.text
info.func = HealBot_Options_FontDD_OnClick
info.value = fontItem.file
info.checked = (currentFont == fontItem.file)
UIDropDownMenu_AddButton(info)
end
end
function HealBot_Options_FontDD_OnClick()
UIDropDownMenu_SetSelectedID(HealBot_Options_Font_Dropdown, this:GetID())
if HealBot_Options_Font_DropdownText then
HealBot_Options_Font_DropdownText:SetText(this:GetText())
end
if not HealBot_Config.bfont then HealBot_Config.bfont = {} end
HealBot_Config.bfont[HealBot_Config.Current_Skin] = this.value
HealBot_Action_ResetSkin()
end
-- HealBot_Options_BarMaxRowsS_OnValueChanged: UI handler for OnValueChanged options panel.
function HealBot_Options_BarMaxRowsS_OnValueChanged(this)
if not HealBot_Config.bmaxrows then HealBot_Config.bmaxrows = {} end
@@ -97,6 +132,24 @@ function HealBot_Options_NewSkinb_OnClick(this)
HealBot_Config.babortcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.babortcola[HealBot_Config.Current_Skin]
HealBot_Config.ShowHeader[HealBot_Options_NewSkin:GetText()] = HealBot_Config.ShowHeader[HealBot_Config.Current_Skin]
if not HealBot_Config.bcolormaxr then HealBot_Config.bcolormaxr = {} end
if not HealBot_Config.bcolormaxg then HealBot_Config.bcolormaxg = {} end
if not HealBot_Config.bcolormaxb then HealBot_Config.bcolormaxb = {} end
if not HealBot_Config.bcolorminr then HealBot_Config.bcolorminr = {} end
if not HealBot_Config.bcolorming then HealBot_Config.bcolorming = {} end
if not HealBot_Config.bcolorminb then HealBot_Config.bcolorminb = {} end
if not HealBot_Config.bfont then HealBot_Config.bfont = {} end
local curSkin = HealBot_Config.Current_Skin
local newSkin = HealBot_Options_NewSkin:GetText()
HealBot_Config.bcolormaxr[newSkin] = HealBot_Config.bcolormaxr[curSkin] or 0
HealBot_Config.bcolormaxg[newSkin] = HealBot_Config.bcolormaxg[curSkin] or 1
HealBot_Config.bcolormaxb[newSkin] = HealBot_Config.bcolormaxb[curSkin] or 0
HealBot_Config.bcolorminr[newSkin] = HealBot_Config.bcolorminr[curSkin] or 1
HealBot_Config.bcolorming[newSkin] = HealBot_Config.bcolorming[curSkin] or 0
HealBot_Config.bcolorminb[newSkin] = HealBot_Config.bcolorminb[curSkin] or 0
HealBot_Config.bfont[newSkin] = HealBot_Config.bfont[curSkin] or "Fonts\\FRIZQT__.TTF"
table.insert(HealBot_Skins,2,HealBot_Options_NewSkin:GetText())
HealBot_Config.Skin_ID = 2;
HealBot_Config.Skins = HealBot_Skins; HealBot_Config.Current_Skin = HealBot_Options_NewSkin:GetText();
@@ -144,6 +197,13 @@ function HealBot_Options_DeleteSkin_OnClick(this)
HealBot_Config.babortcolb[HealBot_Options_SkinsText:GetText()] = nil
HealBot_Config.babortcola[HealBot_Options_SkinsText:GetText()] = nil
HealBot_Config.ShowHeader[HealBot_Options_SkinsText:GetText()] = nil
if HealBot_Config.bcolormaxr then HealBot_Config.bcolormaxr[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bcolormaxg then HealBot_Config.bcolormaxg[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bcolormaxb then HealBot_Config.bcolormaxb[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bcolorminr then HealBot_Config.bcolorminr[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bcolorming then HealBot_Config.bcolorming[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bcolorminb then HealBot_Config.bcolorminb[HealBot_Options_SkinsText:GetText()] = nil end
if HealBot_Config.bfont then HealBot_Config.bfont[HealBot_Options_SkinsText:GetText()] = nil end
table.remove(HealBot_Skins,HealBot_Config.Skin_ID)
HealBot_Config.Skin_ID = 1;
HealBot_Config.Skins = HealBot_Skins;
+283 -311
View File
@@ -170,13 +170,13 @@
<!-- COLUMN 2: Grid & Layout -->
<CheckButton name="HealBot_Options_ShowHeaders" inherits="SendMailRadioButtonTemplate">
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarMaxRowsS" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="0" y="-5" /></Offset></Anchor></Anchors>
<Anchors><Anchor point="TOPLEFT"><Offset><AbsDimension x="190" y="-5" /></Offset></Anchor></Anchors>
<Scripts>
<OnLoad>HealBot_Options_ShowHeaders_OnLoad(this,HEALBOT_OPTIONS_SHOWHEADERS)</OnLoad>
<OnClick>HealBot_Options_ShowHeaders_OnClick(this)</OnClick>
</Scripts>
</CheckButton>
<Frame name="HealBot_Options_GridOrientation_Dropdown" inherits="UIDropDownMenuTemplate" id="1">
<Frame name="HealBot_Options_GridOrientation_Dropdown" inherits="UIDropDownMenuTemplate" id="1">
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowHeaders" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="-15" y="-20" /></Offset></Anchor></Anchors>
<Layers>
<Layer level="OVERLAY">
@@ -223,6 +223,23 @@
<OnValueChanged>HealBot_Options_AbortBarSize_OnValueChanged(this)</OnValueChanged>
</Scripts>
</Slider>
<Frame name="HealBot_Options_Font_Dropdown" inherits="UIDropDownMenuTemplate" id="2">
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_Options_AbortBarSize" relativePoint="BOTTOMLEFT"><Offset><AbsDimension x="-15" y="-20" /></Offset></Anchor></Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Font">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="15" y="0"/></Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>HealBot_Options_FontDD_OnLoad(this)</OnLoad>
</Scripts>
</Frame>
<!-- COLUMN 3: Visuals & Opacity -->
<CheckButton name="HealBot_Options_BarColorMode" inherits="SendMailRadioButtonTemplate">
@@ -287,309 +304,269 @@
</Scripts>
</Slider>
<Button name="HealBot_EnTextColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_IconSizeS" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="58" y="-15"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("En")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_EnTextColorpick" inherits="TextStatusBar">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_IconSizeS" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="58" y="-15"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString name="HealBot_EnTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_ENTEXT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_EnTextColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(70); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<StatusBar name="HealBot_EnTextColorpickin" inherits="TextStatusBar">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_IconSizeS" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="58" y="-15"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_DisTextColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("Dis")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_DisTextColorpick" inherits="TextStatusBar">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString name="HealBot_DisTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_DISTEXT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_DisTextColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_DebTextColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_DisTextColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("Debuff")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_DebTextColorpick" inherits="HealBot_ColourButtonTemplate">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_DisTextColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString name="HealBot_DebTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_DEBTEXT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_DebTextColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_BackgroundColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-25"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("Back")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_BackgroundColorpick" inherits="HealBot_ColourButtonTemplate">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-25"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="HEALBOT_SKIN_BACKTEXT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_BackgroundColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_BorderColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("Bor")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_BorderColorpick" inherits="HealBot_ColourButtonTemplate">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="HEALBOT_SKIN_BORDERTEXT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_BorderColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_AbortColorpickb">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnClick>HealBot_SkinColorpick_OnClick("Abort")</OnClick>
</Scripts>
</Button>
<StatusBar name="HealBot_AbortColorpick" inherits="HealBot_ColourButtonTemplate">
<Size>
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="5" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="HEALBOT_ACTION_ABORT">
<Anchors>
<Anchor point="CENTER" relativeTo="HealBot_AbortColorpick" relativePoint="CENTER">
<Offset>
<AbsDimension x="0" y="1"/>
</Offset>
</Anchor>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
</Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_Options_TestBarsButton" inherits="UIPanelButtonTemplate" text="HEALBOT_OPTIONS_TESTBARS">
<Size>
<AbsDimension x="100" y="22"/>
</Size>
<!-- BOTTOM ROW 1: Max HP, Min HP, Font Enabled, Font Disabled -->
<StatusBar name="HealBot_MaxHPColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="-61" y="-20"/>
</Offset>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_IconSizeS" relativePoint="BOTTOMLEFT">
<Offset><AbsDimension x="-25" y="-30"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Max Health">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="HealBot_MaxHPColorpickt" inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_MAXHPTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_MaxHPColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_MaxHPColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("MaxHP")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_MinHPColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_MaxHPColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Min Health">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="HealBot_MinHPColorpickt" inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_MINHPTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="1" g="0" b="0"/>
</StatusBar>
<Button name="HealBot_MinHPColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_MinHPColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("MinHP")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_EnTextColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_MinHPColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Font Normal">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="HealBot_EnTextColorpickt" inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_ENTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(70);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<StatusBar name="HealBot_EnTextColorpickin" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick"/></Anchors>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_EnTextColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("En")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_DisTextColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Font Disabled">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="HealBot_DisTextColorpickt" inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_DISTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_DisTextColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_DisTextColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("Dis")</OnClick></Scripts>
</Button>
<!-- BOTTOM ROW 2: Font Debuff, Background, Border, Abort Bar -->
<StatusBar name="HealBot_DebTextColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_MaxHPColorpick" relativePoint="BOTTOMLEFT">
<Offset><AbsDimension x="0" y="-22"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Font Debuff">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString name="HealBot_DebTextColorpickt" inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_DEBTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_DebTextColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_DebTextColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("Debuff")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_BackgroundColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_DebTextColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Background">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_BACKTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_BackgroundColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("Back")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_BorderColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Border">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString inherits="GameFontHighlightSmall" text="HEALBOT_SKIN_BORDERTEXT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_BorderColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("Bor")</OnClick></Scripts>
</Button>
<StatusBar name="HealBot_AbortColorpick" inherits="TextStatusBar">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="TOPRIGHT">
<Offset><AbsDimension x="12" y="0"/></Offset>
</Anchor>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString inherits="GameFontNormalSmall" text="Abort Bar">
<Anchors>
<Anchor point="BOTTOM" relativePoint="TOP">
<Offset><AbsDimension x="0" y="2"/></Offset>
</Anchor>
</Anchors>
</FontString>
<FontString inherits="GameFontHighlightSmall" text="HEALBOT_ACTION_ABORT">
<Anchors><Anchor point="CENTER"/></Anchors>
</FontString>
</Layer>
</Layers>
<Scripts><OnLoad>this:SetMinMaxValues(0,100); this:SetValue(100);</OnLoad></Scripts>
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
<BarColor r="0" g="1" b="0"/>
</StatusBar>
<Button name="HealBot_AbortColorpickb">
<Size><AbsDimension x="87" y="18"/></Size>
<Anchors><Anchor point="TOPLEFT" relativeTo="HealBot_AbortColorpick"/></Anchors>
<Scripts><OnClick>HealBot_SkinColorpick_OnClick("Abort")</OnClick></Scripts>
</Button>
<!-- BOTTOM ROW 3: Test Bars -->
<Button name="HealBot_Options_TestBarsButton" inherits="UIPanelButtonTemplate" text="HEALBOT_OPTIONS_TESTBARS">
<Size><AbsDimension x="110" y="22"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_DebTextColorpick" relativePoint="BOTTOMLEFT">
<Offset><AbsDimension x="80" y="-12"/></Offset>
</Anchor>
</Anchors>
<Scripts>
@@ -597,16 +574,11 @@
</Scripts>
</Button>
<Slider name="HealBot_Options_NumTestBarsS" inherits="HealBot_Options_SliderTemplate">
<Size>
<AbsDimension x="100" y="18" />
</Size>
<Size><AbsDimension x="110" y="18"/></Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_TestBarsButton" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="15" y="-2"/>
</Offset>
<Offset><AbsDimension x="15" y="-2"/></Offset>
</Anchor>
</Anchors>
<Scripts>
+28 -9
View File
@@ -77,10 +77,25 @@ function HealBot_HealthColor(unit, hlth, maxhlth)
g = RAID_CLASS_COLORS[engClass].g
b = RAID_CLASS_COLORS[engClass].b
else
if pct >= 0.98 then r = 0.0; end
if pct < 0.98 and pct >= 0.65 then r = 2.94 - (pct * 3); end
if pct <= 0.64 and pct > 0.31 then g = (pct - 0.31) * 3; end
if pct <= 0.31 then g = 0.0; end
local skin = HealBot_Config.Current_Skin
local maxR = HealBot_Config.bcolormaxr and HealBot_Config.bcolormaxr[skin] or 0.0
local maxG = HealBot_Config.bcolormaxg and HealBot_Config.bcolormaxg[skin] or 1.0
local maxB = HealBot_Config.bcolormaxb and HealBot_Config.bcolormaxb[skin] or 0.0
local minR = HealBot_Config.bcolorminr and HealBot_Config.bcolorminr[skin] or 1.0
local minG = HealBot_Config.bcolorming and HealBot_Config.bcolorming[skin] or 0.0
local minB = HealBot_Config.bcolorminb and HealBot_Config.bcolorminb[skin] or 0.0
if maxR == 0 and maxG == 1 and maxB == 0 and minR == 1 and minG == 0 and minB == 0 then
if pct >= 0.98 then r = 0.0; end
if pct < 0.98 and pct >= 0.65 then r = 2.94 - (pct * 3); end
if pct <= 0.64 and pct > 0.31 then g = (pct - 0.31) * 3; end
if pct <= 0.31 then g = 0.0; end
else
r = minR + (maxR - minR) * pct
g = minG + (maxG - minG) * pct
b = minB + (maxB - minB) * pct
end
end
return r, g, b, a;
end
@@ -252,8 +267,9 @@ function HealBot_Action_EnableButton(button)
local fontName, fontHeight, fontFlags = bar.txt:GetFont()
local fontOutline = HealBot_Config.bfontoutline[HealBot_Config.Current_Skin] or 0
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
if fontFlags ~= expectedFlags then
bar.txt:SetFont(fontName, fontHeight, expectedFlags)
local expectedFont = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or fontName
if fontFlags ~= expectedFlags or fontName ~= expectedFont then
bar.txt:SetFont(expectedFont, fontHeight, expectedFlags)
end
local iconSize = HealBot_Config.biconsize[HealBot_Config.Current_Skin] or 12
@@ -465,8 +481,8 @@ end
function HealBot_Action_SetHealButton(index, unit)
if not index then
for k in pairs(HealBot_Action_HealButtons) do HealBot_Action_HealButtons[k] = nil end
for k, v in pairs(HealBot_Action_UnitButtons) do
for j in pairs(v) do v[j] = nil end
for k in pairs(HealBot_Action_UnitButtons) do
HealBot_Action_UnitButtons[k] = nil
end
return nil
end
@@ -1205,7 +1221,10 @@ function HealBot_Action_AppendUnit(unit)
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)
local bfont = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or "Fonts\\FRIZQT__.TTF"
local fontOutline = (HealBot_Config.bfontoutline and HealBot_Config.bfontoutline[HealBot_Config.Current_Skin]) or 0
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
bar.txt:SetFont(bfont, btextheight, expectedFlags)
bar2:SetHeight(bheight)
HealBot_Action_SetTexture(bar2, btexture)
+3 -1
View File
@@ -52,7 +52,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
**v1.7.5**
* **Feature - Test Bars** - Implemented a "Test Bars" button and slider in the Skins options tab, allowing you to spawn and adjust a dummy raid group of up to 40 members without being in a real raid. This allows for easy layout and appearance customization out of combat.
* **UI - Cleanup** - While adding new funcionalities I ignored how menus look, just adding things for each tab where there was free space, so now I tried to clean up this convoluted mess I made. Menu Tabs are now aligned and grouped in a manner that makes more sense.
* **UI - Cleanup** - While adding new funcionalities the way menus look was ignored, new functions were added to each tab where there was free space, so attempt was made to clean up this convoluted mess I made. Menu Tabs are now aligned and grouped in a manner that makes more sense.
* **Performance Fix - Table Pooling & GC Leaks** - Resolved critical table leaks in emergency heals where pooled tables (`order` and `units`) failed to release when pet heals were disabled, un-nested pet healing from emergency heals, eliminated high-frequency (4 Hz) anonymous closure allocations in `HealBot_Action_UpdatePlayerHoTs`, and implemented in-place key recycling for equipment scanning and grid button tables.
**v1.7.4**
@@ -149,6 +149,8 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
* **Memory Optimization:** Fixed a significant memory leak where tracking tables were being repeatedly allocated every tick during aura scanning, and replaced `table.foreach` with pairs loops to avoid GC spikes during combat.
**v1.4.1**
* **Frame Disappearing Fix:** Fixed a layout rendering bug where frames would flash for a split second and disappear on login due to improper table clearing of unit buttons, leaving empty arrays that incorrectly failed the layout check.
* **Ranked Spell Parsing Fix:** Fixed a Lua crash during addon initialization when discovering ranked spells without an explicit target property. Ranked spells now dynamically inherit the target table from their base spells.
* **Talent-based Healing Calculations:** Implemented dynamic spell healing calculations for Druid, Priest, and Paladin classes based on talents.
* **Modifier Key Polling:** Replaced MODIFIER_STATE_CHANGED event with polling in HealBot_OnUpdate to track modifier keys reliably.
* **Incoming Heals Fix:** Fixed a bug where incoming heals failed to broadcast or show on the UI due to synchronous GCD fails and `CheckInteractDistance` limitations in the 1.12 API.