mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-10-27 14:10:52 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8624a192b6 | ||
|
|
d949b7489a | ||
|
|
962f2a46aa | ||
|
|
eed71fa070 | ||
|
|
2baf535aa2 | ||
|
|
4694db4f90 | ||
|
|
076475442c | ||
|
|
d5ecdc6c76 | ||
|
|
42ff023a54 | ||
|
|
8050561733 | ||
|
|
8b85b6ca57 | ||
|
|
d222cd942c | ||
|
|
b298ad7047 | ||
|
|
94f8c2a843 | ||
|
|
b3e18bfd64 | ||
|
|
6acfa36d8d | ||
|
|
97df6c9a98 | ||
|
|
2a0d607bcd | ||
|
|
526a4f1b9b | ||
|
|
032c7571af | ||
|
|
f4ba0d983d | ||
|
|
62b93b74e2 | ||
|
|
820f23c3f2 | ||
|
|
59e3701d79 | ||
|
|
ee11884976 | ||
|
|
eb7cbc52f2 | ||
|
|
1edb4b22bb | ||
|
|
5e33429dee | ||
|
|
55bc6f1ea0 | ||
|
|
7f4d4be827 | ||
|
|
029235a733 | ||
|
|
7beff1c4ca | ||
|
|
4e8d5d8426 | ||
|
|
b40135a386 | ||
|
|
27ba0a386e | ||
|
|
4caaa85634 | ||
|
|
8894700b0a | ||
|
|
50a64c5549 | ||
|
|
2958bc8e94 | ||
|
|
4486682568 | ||
|
|
27231aaf99 | ||
|
|
bcd497104f | ||
|
|
ee4f706338 | ||
|
|
56b55f34ad | ||
|
|
135a8f6bcd | ||
|
|
7f5b1afe23 | ||
|
|
00a1ddf789 | ||
|
|
74e940f41c | ||
|
|
98b34f24b8 | ||
|
|
604a26dbb3 | ||
|
|
03114d4802 | ||
|
|
a0b6e2f72d | ||
|
|
7d910eadd2 | ||
|
|
1ef79cfcd1 | ||
|
|
1f9d3af81e | ||
|
|
e9cfd2fcc7 | ||
|
|
7c45d85030 | ||
|
|
92a4cb070a | ||
|
|
2af99cbc2b | ||
|
|
ebb42f936a | ||
|
|
04519b9631 | ||
|
|
3ebcecb8e6 |
+49
-19
@@ -103,6 +103,21 @@ function HealBot_SlashCmd(cmd)
|
||||
HealBot_AddDebug( "Channel active" );
|
||||
return;
|
||||
end
|
||||
if (cmd=="debug" or cmd=="dbg") then
|
||||
if not HealBot_Config then return; end
|
||||
if HealBot_Config.DebugMode == 1 then
|
||||
HealBot_Config.DebugMode = 0;
|
||||
if DEFAULT_CHAT_FRAME then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cFFFFD100HealBot|r: Debug mode |cFFFF0000DISABLED|r.");
|
||||
end
|
||||
else
|
||||
HealBot_Config.DebugMode = 1;
|
||||
if DEFAULT_CHAT_FRAME then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cFFFFD100HealBot|r: Debug mode |cFF00FF00ENABLED|r.");
|
||||
end
|
||||
end
|
||||
return;
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_SendAddonMessage moved to HealBot_Controller_Comms.lua
|
||||
@@ -222,27 +237,42 @@ end
|
||||
|
||||
-- SpiBonus and GetBonus functions moved to HealBot_Controller_Spells.lua
|
||||
|
||||
local HealBot_RaidUnitTokens = {}
|
||||
for i=1, 40 do HealBot_RaidUnitTokens[i] = "raid"..i end
|
||||
|
||||
HealBot_NameToUnitID = {}
|
||||
|
||||
function HealBot_UpdateUnitIDCache()
|
||||
HealBot_NameToUnitID = {}
|
||||
local name = UnitName("player")
|
||||
if name then HealBot_NameToUnitID[name] = "player" end
|
||||
|
||||
for i=1, 4 do
|
||||
local unit = "party"..i
|
||||
name = UnitName(unit)
|
||||
if name then HealBot_NameToUnitID[name] = unit end
|
||||
unit = "partypet"..i
|
||||
name = UnitName(unit)
|
||||
if name then HealBot_NameToUnitID[name] = unit end
|
||||
end
|
||||
|
||||
local petName = UnitName("pet")
|
||||
if petName then HealBot_NameToUnitID[petName] = "pet" end
|
||||
|
||||
for i=1, 40 do
|
||||
local unit = "raid"..i
|
||||
name = UnitName(unit)
|
||||
if name then HealBot_NameToUnitID[name] = unit end
|
||||
unit = "raidpet"..i
|
||||
name = UnitName(unit)
|
||||
if name then HealBot_NameToUnitID[name] = unit end
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_FindUnitID: Finds a unit token for a given player name.
|
||||
function HealBot_FindUnitID(unitname)
|
||||
local text;
|
||||
for _,unit in ipairs(HealBot_Action_HealGroup) do
|
||||
text = UnitName(unit);
|
||||
if text then
|
||||
if text==unitname then
|
||||
return unit;
|
||||
end
|
||||
end
|
||||
end
|
||||
for i=1,40 do
|
||||
local unit = "raid"..i;
|
||||
text = UnitName(unit);
|
||||
if text then
|
||||
if text==unitname then
|
||||
return unit;
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil;
|
||||
if not unitname then return nil end
|
||||
return HealBot_NameToUnitID[unitname]
|
||||
end
|
||||
|
||||
-- HealBot_PlaySound: Plays an audio alert based on ID.
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
## Interface: 11200
|
||||
## Title: HealBotBlue
|
||||
## Version: 1.7.0
|
||||
## Version: 1.7.5
|
||||
## Author: Bluewhale
|
||||
## Notes: Adds panel with skinable bars for healing and decursive
|
||||
## Notes: Raidframe replacement for healing, decursing, resource tracking and buffing with optional support for SuperWow, ClassicAPI, UnitXP_SP3 and Nampower.
|
||||
## SavedVariablesPerCharacter: HealBot_Config
|
||||
..\..\FrameXML\Fonts.xml
|
||||
..\..\FrameXML\OptionsFrameTemplates.xml
|
||||
|
||||
+8
-2
@@ -7,6 +7,7 @@ end
|
||||
|
||||
-- HealBot_MayHeal: Checks if unit is eligible for healing UI.
|
||||
function HealBot_MayHeal(unit)
|
||||
if string.find(unit, "^Test") then return true end
|
||||
if not UnitName(unit) or not HealBot_Heals[unit] then return false end
|
||||
if unit ~= 'target' then return true end
|
||||
if not HealBot_Config.TargetHeals or UnitCanAttack("player",unit) then return false end
|
||||
@@ -20,6 +21,7 @@ function HealBot_ShouldHeal(unit)
|
||||
return true;
|
||||
end
|
||||
end
|
||||
if string.find(unit, "^Test") then return true end
|
||||
return HealBot_MayHeal(unit) and UnitHealth(unit)>0 and not UnitIsDeadOrGhost(unit)
|
||||
and (UnitHealth(unit)<UnitHealthMax(unit)*HealBot_Config.AlertLevel or HealBot_AlwaysHeal());
|
||||
end
|
||||
@@ -33,6 +35,7 @@ end
|
||||
|
||||
-- HealBot_MustHeal: Internal utility: HealBot_MustHeal
|
||||
function HealBot_MustHeal(unit)
|
||||
if string.find(unit, "^Test") then return true end
|
||||
return HealBot_ShouldHeal(unit) and UnitHealth(unit)<UnitHealthMax(unit)*HealBot_Config.AlertLevel
|
||||
end
|
||||
|
||||
@@ -56,6 +59,7 @@ end
|
||||
|
||||
-- HealBot_CanHeal: Internal utility: HealBot_CanHeal
|
||||
function HealBot_CanHeal(unit)
|
||||
if string.find(unit, "^Test") then return true end
|
||||
if UnitIsDeadOrGhost(unit) then
|
||||
local rezSpell = HealBot_GetRezSpellForClass();
|
||||
if rezSpell and HealBot_GetHealSpell(unit, rezSpell) then
|
||||
@@ -136,9 +140,10 @@ end
|
||||
|
||||
-- HealBot_SplitString: Internal utility: HealBot_SplitString
|
||||
function HealBot_SplitString(str, delimiter)
|
||||
local result = {}
|
||||
local result = HealBot_GetTable()
|
||||
if not delimiter or delimiter == "" then
|
||||
return {str}
|
||||
table.insert(result, str)
|
||||
return result
|
||||
end
|
||||
local start_pos = 1
|
||||
while true do
|
||||
@@ -160,6 +165,7 @@ function HealBot_RunMacroText(body)
|
||||
ChatFrameEditBox:SetText(commands[i])
|
||||
ChatEdit_SendText(ChatFrameEditBox)
|
||||
end
|
||||
HealBot_ReleaseTable(commands)
|
||||
end
|
||||
|
||||
-- HealBot_RunMacro: Internal utility: HealBot_RunMacro
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@
|
||||
<Texture name="$parentRaidIcon" file="Interface\TargetingFrame\UI-RaidTargetingIcons" hidden="true">
|
||||
<Size><AbsDimension x="14" y="14"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Anchor point="TOP">
|
||||
<Offset><AbsDimension x="0" y="0"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
@@ -77,7 +77,11 @@ function HealBot_BonusScanner:ScanEquipment()
|
||||
|
||||
HealBot_BonusTooltip:SetOwner(HealBot_BonusTooltip, "ANCHOR_NONE");
|
||||
HealBot_BonusScanner.temp.bonuses = 0;
|
||||
HealBot_BonusScanner.temp.sets = {};
|
||||
if not HealBot_BonusScanner.temp.sets then
|
||||
HealBot_BonusScanner.temp.sets = {}
|
||||
else
|
||||
for k in pairs(HealBot_BonusScanner.temp.sets) do HealBot_BonusScanner.temp.sets[k] = nil end
|
||||
end
|
||||
HealBot_BonusScanner.temp.set = "";
|
||||
for i, slotname in HealBot_BonusScanner.slots do
|
||||
slotid, _ = GetInventorySlotInfo(slotname.. "Slot");
|
||||
|
||||
+69
-16
@@ -6,6 +6,7 @@ local StaticHasBuff = {}
|
||||
|
||||
-- HealBot_UnitAffected: Checks if a specific buff/debuff exists on a unit.
|
||||
function HealBot_UnitAffected(unit, effect)
|
||||
if string.find(unit, "^Test") then return nil; end
|
||||
if not effect then return nil; end
|
||||
local i = 1
|
||||
while true do
|
||||
@@ -41,6 +42,7 @@ function HealBot_CheckShamanWeaponBuff(spellName)
|
||||
if not firstWord then return false end
|
||||
|
||||
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
if not HealBot_ScanTooltip_Lines then HealBot_ScanTooltip_Lines = {} end
|
||||
local slots = HealBot_GetTable()
|
||||
if hasMainHandEnchant then table.insert(slots, 16) end
|
||||
if hasOffHandEnchant then table.insert(slots, 17) end
|
||||
@@ -49,7 +51,11 @@ function HealBot_CheckShamanWeaponBuff(spellName)
|
||||
HealBot_ScanTooltip:ClearLines()
|
||||
HealBot_ScanTooltip:SetInventoryItem("player", slot)
|
||||
for i = 1, HealBot_ScanTooltip:NumLines() do
|
||||
local textObj = getglobal("HealBot_ScanTooltipTextLeft" .. i)
|
||||
local textObj = HealBot_ScanTooltip_Lines[i]
|
||||
if not textObj then
|
||||
textObj = getglobal("HealBot_ScanTooltipTextLeft" .. i)
|
||||
HealBot_ScanTooltip_Lines[i] = textObj
|
||||
end
|
||||
if textObj then
|
||||
local text = textObj:GetText()
|
||||
if text and string.find(text, firstWord) then
|
||||
@@ -68,6 +74,7 @@ end
|
||||
|
||||
-- HealBot_CheckBuffs: Scans unit for missing tracked buffs.
|
||||
function HealBot_CheckBuffs(unit)
|
||||
if string.find(unit, "^Test") then return end
|
||||
if HealBot_Config.BuffWatch ~= 1 then
|
||||
HealBot_MissingBuffs[unit] = nil
|
||||
return
|
||||
@@ -102,13 +109,25 @@ function HealBot_CheckBuffs(unit)
|
||||
hasBuff[k] = nil
|
||||
end
|
||||
local i = 1
|
||||
if not HealBot_TextureToName then HealBot_TextureToName = {} end
|
||||
while true do
|
||||
local buffTexture = UnitBuff(unit, i)
|
||||
if not buffTexture then break end
|
||||
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
HealBot_ScanTooltip:ClearLines()
|
||||
HealBot_ScanTooltip:SetUnitBuff(unit, i)
|
||||
local buffName = HealBot_ScanTooltipTextLeft1:GetText()
|
||||
|
||||
local buffName = HealBot_TextureToName[buffTexture]
|
||||
if buffName == nil then
|
||||
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
HealBot_ScanTooltip:ClearLines()
|
||||
HealBot_ScanTooltip:SetUnitBuff(unit, i)
|
||||
local textObj = HealBot_ScanTooltipTextLeft1
|
||||
if textObj then
|
||||
buffName = textObj:GetText()
|
||||
end
|
||||
if buffName then
|
||||
HealBot_TextureToName[buffTexture] = buffName
|
||||
end
|
||||
end
|
||||
|
||||
if buffName then
|
||||
hasBuff[buffName] = true
|
||||
end
|
||||
@@ -159,9 +178,11 @@ local HealBot_TrackedHoTs = {
|
||||
}
|
||||
|
||||
local HealBot_DebuffTypeMap = nil
|
||||
local HealBot_AuraWarningPlayed = {}
|
||||
|
||||
-- HealBot_OnEvent_UnitAura: Updates debuff lists and icon textures on aura change.
|
||||
function HealBot_OnEvent_UnitAura(this, unit)
|
||||
if string.find(unit, "^Test") then return end
|
||||
if not HealBot_DebuffTypeMap then
|
||||
HealBot_DebuffTypeMap = {
|
||||
[HEALBOT_DISEASE] = HEALBOT_DISEASE_en,
|
||||
@@ -183,7 +204,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
||||
local iconCount = 0
|
||||
local i = 1;
|
||||
HealBot_UnitDebuff[unit] = nil;
|
||||
local trackedTextures = {}
|
||||
local trackedTextures = HealBot_GetTable()
|
||||
|
||||
while true do
|
||||
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
|
||||
@@ -254,9 +275,11 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
||||
end
|
||||
|
||||
local b = 1
|
||||
local activeBuffs = HealBot_GetTable()
|
||||
while true do
|
||||
local buff = UnitBuff(unit, b)
|
||||
if not buff then break end
|
||||
activeBuffs[buff] = true
|
||||
if HealBot_TrackedHoTs[buff] and iconCount < 10 then
|
||||
iconCount = iconCount + 1
|
||||
HealBot_UnitIcons[unit][iconCount] = buff
|
||||
@@ -264,6 +287,30 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
||||
b = b + 1
|
||||
end
|
||||
|
||||
if HealBot_Integrations_Nampower_Active and HealBot_Nampower_Auras then
|
||||
local guid = HealBot_GetUnitGUID and HealBot_GetUnitGUID(unit)
|
||||
if guid then
|
||||
if not HealBot_Nampower_NameCache then HealBot_Nampower_NameCache = HealBot_GetTable() end
|
||||
HealBot_Nampower_NameCache[guid] = UnitName(unit)
|
||||
|
||||
if HealBot_Nampower_Auras[guid] then
|
||||
local validHoTs = {
|
||||
["Renew"] = "Interface\\Icons\\Spell_Holy_Renew",
|
||||
["Rejuvenation"] = "Interface\\Icons\\Spell_Nature_Rejuvenation",
|
||||
["Regrowth"] = "Interface\\Icons\\Spell_Nature_ResistNature",
|
||||
["Power Word: Shield"] = "Interface\\Icons\\Spell_Holy_PowerWordShield",
|
||||
}
|
||||
for spellName, _ in pairs(HealBot_Nampower_Auras[guid]) do
|
||||
local tex = validHoTs[spellName]
|
||||
if tex and not activeBuffs[tex] then
|
||||
HealBot_Nampower_Auras[guid][spellName] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
HealBot_ReleaseTable(activeBuffs)
|
||||
|
||||
local d = 1
|
||||
while true do
|
||||
local debuff = UnitDebuff(unit, d)
|
||||
@@ -276,24 +323,30 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
||||
end
|
||||
|
||||
if HealBot_UnitDebuff[unit] then
|
||||
if DebuffType and HealBot_Range_Check(unit, 27) == 1 then
|
||||
if HealBot_Config.ShowDebuffWarning == 1 then
|
||||
local color = HealBot_Config.CDCBarColour[DebuffType]
|
||||
local r, g, b = 1, 0, 0
|
||||
if color then
|
||||
r, g, b = color.R, color.G, color.B
|
||||
if DebuffType and HealBot_Range_Check(unit, 40) == 1 then
|
||||
if HealBot_AuraWarningPlayed[unit] ~= DebuffType then
|
||||
HealBot_AuraWarningPlayed[unit] = DebuffType
|
||||
if HealBot_Config.ShowDebuffWarning == 1 then
|
||||
local color = HealBot_Config.CDCBarColour[DebuffType]
|
||||
local r, g, b = 1, 0, 0
|
||||
if color then
|
||||
r, g, b = color.R, color.G, color.B
|
||||
end
|
||||
UIErrorsFrame:AddMessage(UnitName(unit) .. " suffers from " .. DebuffType,
|
||||
r, g, b,
|
||||
1, UIERRORS_HOLD_TIME);
|
||||
end
|
||||
UIErrorsFrame:AddMessage(UnitName(unit) .. " suffers from " .. DebuffType,
|
||||
r, g, b,
|
||||
1, UIERRORS_HOLD_TIME);
|
||||
if HealBot_Config.SoundDebuffWarning == 1 then HealBot_PlaySound(HealBot_Config.SoundDebuffPlay); end
|
||||
end
|
||||
if HealBot_Config.SoundDebuffWarning == 1 then HealBot_PlaySound(HealBot_Config.SoundDebuffPlay); end
|
||||
end
|
||||
else
|
||||
HealBot_AuraWarningPlayed[unit] = nil
|
||||
end
|
||||
-- Check buffs synchronously because tooltip scanning fails in OnUpdate
|
||||
HealBot_CheckBuffs(unit)
|
||||
|
||||
-- Defer UI updates
|
||||
HealBot_View_DirtyUnits[unit] = true
|
||||
HealBot_ReleaseTable(trackedTextures)
|
||||
end
|
||||
end
|
||||
|
||||
+118
-17
@@ -30,8 +30,15 @@ function HealBot_AddChat(msg)
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_AddDebug: Prints debug messages to internal chat channel.
|
||||
-- HealBot_AddDebug: Prints debug messages to chat or internal debug channel.
|
||||
function HealBot_AddDebug(msg)
|
||||
if HealBot_Config and HealBot_Config.DebugMode == 1 then
|
||||
if DEFAULT_CHAT_FRAME then
|
||||
DEFAULT_CHAT_FRAME:AddMessage("|cFFFFD100[HB Debug]|r " .. msg);
|
||||
end
|
||||
return;
|
||||
end
|
||||
|
||||
local chanid = HealBot_Get_DebugChan();
|
||||
if chanid and HealBot_SpamCnt < 3 then
|
||||
HealBot_SpamCnt = HealBot_SpamCnt + 1;
|
||||
@@ -71,33 +78,127 @@ function HealBot_SendAddonMessage(prefix, text)
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_AddonMsg: Parses incoming heal data from other clients.
|
||||
function HealBot_OnEvent_AddonMsg(this, addon_id, inc_msg, dist_target, sender_id)
|
||||
if addon_id == HEALBOT_ADDON_ID then
|
||||
local tmpTest, unitname, heal_val
|
||||
tmpTest, tmpTest, unitname, heal_val = string.find(inc_msg, ">> (%a+) <<=>> (.%d+) <<" );
|
||||
if heal_val then
|
||||
if sender_id == UnitName("player") then return end
|
||||
if not HealBot_HealsIn[unitname] then
|
||||
HealBot_HealsIn[unitname] = 0;
|
||||
if not HealBot_IncomingHealers then HealBot_IncomingHealers = {} end
|
||||
|
||||
-- Reusable global array for gfind string splitting
|
||||
if not HealBot_Comms_Args then HealBot_Comms_Args = {} end
|
||||
|
||||
local function ClearIncomingHeal(sender)
|
||||
local data = HealBot_IncomingHealers[sender]
|
||||
if not data then return end
|
||||
local oldAmount = data.amount
|
||||
for i=1, 5 do
|
||||
local oldTarget = data.targets[i]
|
||||
if oldTarget then
|
||||
if HealBot_HealsIn[oldTarget] then
|
||||
HealBot_HealsIn[oldTarget] = HealBot_HealsIn[oldTarget] - oldAmount
|
||||
if HealBot_HealsIn[oldTarget] < 0 then HealBot_HealsIn[oldTarget] = 0 end
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(oldTarget))
|
||||
end
|
||||
HealBot_Healers[sender_id] = ">> " .. unitname .. " <<=>> " .. heal_val .. " <<";
|
||||
HealBot_HealsIn[unitname] = HealBot_HealsIn[unitname] + tonumber(heal_val);
|
||||
if tonumber(heal_val) > 0 then
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(unitname))
|
||||
elseif HealBot_HealsIn[unitname] < 0 then
|
||||
HealBot_HealsIn[unitname] = 0;
|
||||
data.targets[i] = nil
|
||||
end
|
||||
end
|
||||
data.amount = 0
|
||||
end
|
||||
|
||||
local function SetIncomingHeal(sender, amount, protocol, t1, t2, t3, t4, t5)
|
||||
-- prioritize HealComm over HealBot protocol to avoid double-counting
|
||||
if HealBot_IncomingHealers[sender] and HealBot_IncomingHealers[sender].protocol == "HealComm" and protocol == "HealBot" then
|
||||
return
|
||||
end
|
||||
|
||||
if not HealBot_IncomingHealers[sender] then
|
||||
HealBot_IncomingHealers[sender] = { targets = {}, amount = 0, protocol = protocol }
|
||||
end
|
||||
|
||||
ClearIncomingHeal(sender)
|
||||
|
||||
local data = HealBot_IncomingHealers[sender]
|
||||
data.protocol = protocol
|
||||
|
||||
if amount > 0 and t1 then
|
||||
data.amount = amount
|
||||
data.targets[1] = t1
|
||||
data.targets[2] = t2
|
||||
data.targets[3] = t3
|
||||
data.targets[4] = t4
|
||||
data.targets[5] = t5
|
||||
|
||||
for i=1, 5 do
|
||||
local target = data.targets[i]
|
||||
if target then
|
||||
if not HealBot_HealsIn[target] then HealBot_HealsIn[target] = 0 end
|
||||
HealBot_HealsIn[target] = HealBot_HealsIn[target] + amount
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(target))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_AddonMsg: Parses incoming heal data from other clients.
|
||||
function HealBot_OnEvent_AddonMsg(this, addon_id, inc_msg, dist_target, sender_id)
|
||||
if sender_id == UnitName("player") then return end
|
||||
|
||||
if addon_id == "HealComm" then
|
||||
-- Clear reusable args array
|
||||
for i=1, 10 do HealBot_Comms_Args[i] = nil end
|
||||
local argCount = 0
|
||||
local start_pos = 1
|
||||
local next_pos = string.find(inc_msg, "/", start_pos, true)
|
||||
while next_pos do
|
||||
argCount = argCount + 1
|
||||
HealBot_Comms_Args[argCount] = string.sub(inc_msg, start_pos, next_pos - 1)
|
||||
start_pos = next_pos + 1
|
||||
next_pos = string.find(inc_msg, "/", start_pos, true)
|
||||
end
|
||||
if start_pos <= string.len(inc_msg) then
|
||||
argCount = argCount + 1
|
||||
HealBot_Comms_Args[argCount] = string.sub(inc_msg, start_pos)
|
||||
end
|
||||
local cmd = HealBot_Comms_Args[1]
|
||||
|
||||
if cmd == "Heal" and HealBot_Comms_Args[2] and HealBot_Comms_Args[3] then
|
||||
SetIncomingHeal(sender_id, tonumber(HealBot_Comms_Args[3]) or 0, "HealComm", HealBot_Comms_Args[2])
|
||||
elseif cmd == "Healstop" then
|
||||
SetIncomingHeal(sender_id, 0, "HealComm")
|
||||
elseif cmd == "GrpHeal" and HealBot_Comms_Args[2] then
|
||||
SetIncomingHeal(sender_id, tonumber(HealBot_Comms_Args[2]) or 0, "HealComm", HealBot_Comms_Args[4], HealBot_Comms_Args[5], HealBot_Comms_Args[6], HealBot_Comms_Args[7], HealBot_Comms_Args[8])
|
||||
elseif cmd == "GrpHealstop" then
|
||||
SetIncomingHeal(sender_id, 0, "HealComm")
|
||||
elseif cmd == "Resurrection" then
|
||||
if HealBot_Comms_Args[2] == "stop" then
|
||||
HealBot_AddDebug(sender_id .. " Stopped ressing");
|
||||
for unit, resser in pairs(HealBot_Ressing) do
|
||||
if resser == sender_id then
|
||||
HealBot_Ressing[unit] = nil;
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(unit));
|
||||
end
|
||||
end
|
||||
elseif HealBot_Comms_Args[2] and HealBot_Comms_Args[3] == "start" then
|
||||
HealBot_AddDebug(sender_id .. " is ressing " .. HealBot_Comms_Args[2]);
|
||||
HealBot_Ressing[HealBot_Comms_Args[2]] = sender_id;
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(HealBot_Comms_Args[2]));
|
||||
end
|
||||
end
|
||||
|
||||
elseif addon_id == HEALBOT_ADDON_ID then
|
||||
local tmpTest, tmpTest, unitname, heal_val = string.find(inc_msg, ">> (.-) <<=>> (.-) <<" );
|
||||
if heal_val and unitname then
|
||||
local amount = tonumber(heal_val) or 0
|
||||
if amount < 0 then amount = 0 end -- HealBot sends negative to cancel
|
||||
SetIncomingHeal(sender_id, amount, "HealBot", unitname)
|
||||
end
|
||||
|
||||
elseif addon_id == "HealBot" then
|
||||
local tmpTest, datatype, datamsg, sender
|
||||
local PName = UnitName("player");
|
||||
tmpTest, tmpTest, datatype, sender, datamsg = string.find(inc_msg, ">> (%a+) <<=>> (%a+) <<=>> (.+)");
|
||||
tmpTest, tmpTest, datatype, sender, datamsg = string.find(inc_msg, ">> (.-) <<=>> (.-) <<=>> (.+)");
|
||||
if datatype == "RequestVersion" then
|
||||
HealBot_SendAddonMessage("HealBot", ">> SendVersion <<=>> " .. sender .. " <<=>> Version=" .. HEALBOT_VERSION);
|
||||
elseif datatype == "SendVersion" and PName == sender then
|
||||
HealBot_AddChat(sender_id .. ": " .. datamsg);
|
||||
end
|
||||
|
||||
elseif addon_id == "CTRA" then
|
||||
if ( string.sub(inc_msg, 1, 3) == "RES" ) then
|
||||
if ( inc_msg == "RESNO" ) then
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
HealBot_View_DirtyUnits = {}
|
||||
HealBot_View_DirtyPower = {}
|
||||
local unitsToRefresh = {}
|
||||
local powerToRefresh = {}
|
||||
local HealBot_Timer1, HealsIn_Timer = 0, 0;
|
||||
HealBot_LastModState = ""
|
||||
|
||||
@@ -67,11 +69,11 @@ function HealBot_OnUpdate(this, arg1)
|
||||
local pending = HealBot_TargetRestorePending;
|
||||
HealBot_TargetRestorePending = nil;
|
||||
HealBot_TargetRestoreTimer = 0;
|
||||
if pending.type == "enemy" then
|
||||
if pending == "enemy" then
|
||||
TargetLastEnemy();
|
||||
elseif pending.type == "friend" then
|
||||
elseif pending == "friend" then
|
||||
TargetLastTarget();
|
||||
elseif pending.type == "clear" then
|
||||
elseif pending == "clear" then
|
||||
ClearTarget();
|
||||
end
|
||||
end
|
||||
@@ -110,11 +112,11 @@ function HealBot_OnUpdate(this, arg1)
|
||||
|
||||
-- Restore target logic
|
||||
if pendingCast.targetEnemy then
|
||||
HealBot_TargetRestorePending = { type = "enemy" }
|
||||
HealBot_TargetRestorePending = "enemy"
|
||||
elseif pendingCast.oldTarget and pendingCast.oldTarget ~= UnitName(pendingCast.target) then
|
||||
HealBot_TargetRestorePending = { type = "friend" }
|
||||
HealBot_TargetRestorePending = "friend"
|
||||
elseif not pendingCast.oldTarget then
|
||||
HealBot_TargetRestorePending = { type = "clear" }
|
||||
HealBot_TargetRestorePending = "clear"
|
||||
end
|
||||
HealBot_TargetRestoreTimer = 0
|
||||
end
|
||||
@@ -152,7 +154,7 @@ function HealBot_OnUpdate(this, arg1)
|
||||
end
|
||||
|
||||
-- Process Dirty Queue for MVC View
|
||||
local unitsToRefresh = {}
|
||||
for k in pairs(unitsToRefresh) do unitsToRefresh[k] = nil end
|
||||
for unitID in pairs(HealBot_View_DirtyUnits) do
|
||||
unitsToRefresh[unitID] = true
|
||||
HealBot_View_DirtyUnits[unitID] = nil
|
||||
@@ -162,7 +164,7 @@ function HealBot_OnUpdate(this, arg1)
|
||||
HealBot_Action_Refresh(unitID)
|
||||
end
|
||||
|
||||
local powerToRefresh = {}
|
||||
for k in pairs(powerToRefresh) do powerToRefresh[k] = nil end
|
||||
for unitID in pairs(HealBot_View_DirtyPower) do
|
||||
powerToRefresh[unitID] = true
|
||||
HealBot_View_DirtyPower[unitID] = nil
|
||||
@@ -171,13 +173,6 @@ function HealBot_OnUpdate(this, arg1)
|
||||
HealBot_Action_RefreshPower(unitID)
|
||||
end
|
||||
|
||||
local powerID, _ = next(HealBot_View_DirtyPower)
|
||||
while powerID do
|
||||
HealBot_Action_RefreshPower(powerID)
|
||||
HealBot_View_DirtyPower[powerID] = nil
|
||||
powerID, _ = next(HealBot_View_DirtyPower)
|
||||
end
|
||||
|
||||
if HealBot_EquipChangeTimer > 0 then
|
||||
HealBot_EquipChangeTimer = HealBot_EquipChangeTimer - arg1
|
||||
if HealBot_EquipChangeTimer <= 0 then
|
||||
@@ -187,6 +182,16 @@ function HealBot_OnUpdate(this, arg1)
|
||||
HealBot_RecalcSpells();
|
||||
end
|
||||
end
|
||||
if HealBot_Config.HealBot_Integrations_ShowHoTTimers == 1 then
|
||||
if not HealBot_HoT_Update_Timer or GetTime() >= HealBot_HoT_Update_Timer then
|
||||
HealBot_HoT_Update_Timer = GetTime() + 0.25
|
||||
if HealBot_Action_UpdatePlayerHoTs then
|
||||
HealBot_Action_UpdatePlayerHoTs()
|
||||
end
|
||||
end
|
||||
elseif HealBot_PlayerHoTsListFrame and HealBot_PlayerHoTsListFrame:IsVisible() then
|
||||
HealBot_PlayerHoTsListFrame:Hide()
|
||||
end
|
||||
|
||||
HealBot_Timer1 = HealBot_Timer1 + arg1;
|
||||
if HealBot_Timer1 >= 2.5 then
|
||||
@@ -298,9 +303,6 @@ local HealBot_EventHandlers = {
|
||||
["PLAYER_ENTERING_WORLD"] = function(this)
|
||||
HealBot_Model:RefreshUnit("player")
|
||||
HealBot_Model:RefreshUnit("pet")
|
||||
if HealBot_UnitClass("player") == "DRUID" then
|
||||
HealBot_UpdateShapeshiftForm()
|
||||
end
|
||||
HealBot_OnEvent_PlayerEnteringWorld(this)
|
||||
end,
|
||||
["VARIABLES_LOADED"] = function(this)
|
||||
@@ -329,9 +331,7 @@ local HealBot_EventHandlers = {
|
||||
HealBot_OnEvent_PlayerEquipmentChanged2(this, arg1)
|
||||
end,
|
||||
["UNIT_PET"] = function(this, arg1) HealBot_OnEvent_PartyMembersChanged(this) end,
|
||||
["SPELLS_CHANGED"] = function(this, arg1) HealBot_OnEvent_SpellsChanged(this, arg1) end,
|
||||
["UPDATE_SHAPESHIFT_FORM"] = function(this) HealBot_UpdateShapeshiftForm() end,
|
||||
["UPDATE_SHAPESHIFT_FORMS"] = function(this) HealBot_UpdateShapeshiftForm() end
|
||||
["SPELLS_CHANGED"] = function(this, arg1) HealBot_OnEvent_SpellsChanged(this, arg1) end
|
||||
}
|
||||
|
||||
-- HealBot_OnEvent: Event dispatcher for WoW UI events.
|
||||
@@ -348,18 +348,19 @@ end
|
||||
function HealBot_OnEvent_VariablesLoaded(this)
|
||||
local class = HealBot_UnitClass("player")
|
||||
|
||||
table.foreach(HealBot_ConfigDefaults, function (key, val)
|
||||
if not HealBot_Config[key] then
|
||||
HealBot_Config[key] = val;
|
||||
end
|
||||
if type(val) == "table" and type(HealBot_Config[key]) == "table" then
|
||||
for k, v in pairs(val) do
|
||||
if HealBot_Config[key][k] == nil then
|
||||
HealBot_Config[key][k] = v
|
||||
local function DeepCopyMissing(src, dest)
|
||||
for k, v in pairs(src) do
|
||||
if type(v) == "table" then
|
||||
if type(dest[k]) ~= "table" then dest[k] = {} end
|
||||
DeepCopyMissing(v, dest[k])
|
||||
else
|
||||
if dest[k] == nil then
|
||||
dest[k] = v
|
||||
end
|
||||
end
|
||||
end
|
||||
end);
|
||||
end
|
||||
DeepCopyMissing(HealBot_ConfigDefaults, HealBot_Config)
|
||||
|
||||
local foundModern = false
|
||||
if HealBot_Config.Skins then
|
||||
@@ -420,11 +421,6 @@ function HealBot_OnEvent_VariablesLoaded(this)
|
||||
this:RegisterEvent("CHAT_MSG_ADDON");
|
||||
this:RegisterEvent("CHAT_MSG_SYSTEM");
|
||||
this:RegisterEvent("PLAYER_ENTERING_WORLD");
|
||||
if class == "DRUID" then
|
||||
this:RegisterEvent("UPDATE_SHAPESHIFT_FORM");
|
||||
this:RegisterEvent("UPDATE_SHAPESHIFT_FORMS");
|
||||
HealBot_UpdateShapeshiftForm();
|
||||
end
|
||||
HealBot_SpellsInitFlag = 2;
|
||||
end
|
||||
end
|
||||
@@ -490,6 +486,14 @@ end
|
||||
function HealBot_OnEvent_PlayerRegenEnabled(this)
|
||||
HealBot_IsFighting = false;
|
||||
HealBot_Delay_RecalcParty = 1;
|
||||
|
||||
if HealBot_IncomingHealers then
|
||||
for sender, data in pairs(HealBot_IncomingHealers) do
|
||||
if not HealBot_FindUnitID(sender) then
|
||||
HealBot_IncomingHealers[sender] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_PlayerTargetChanged: Internal utility: HealBot_OnEvent_PlayerTargetChanged
|
||||
@@ -504,6 +508,7 @@ end
|
||||
function HealBot_OnEvent_PartyMembersChanged(this)
|
||||
HealBot_Model:PreserveStateByGUID()
|
||||
HealBot_Integrations_PruneNampower()
|
||||
if HealBot_UpdateUnitIDCache then HealBot_UpdateUnitIDCache() end
|
||||
if HealBot_IsFighting then
|
||||
HealBot_Action_PartyChanged()
|
||||
end
|
||||
@@ -563,12 +568,14 @@ end
|
||||
function HealBot_OnEvent_SpellsChanged(this, arg1)
|
||||
if arg1 then return; end
|
||||
HealBot_AddDebug("HB: SpellsChanged");
|
||||
if HealBot_CacheSpellIDs then HealBot_CacheSpellIDs() end
|
||||
HealBot_SpellsInitFlag = 2;
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_TalentsChanged: Internal utility: HealBot_OnEvent_TalentsChanged
|
||||
function HealBot_OnEvent_TalentsChanged(this, arg1)
|
||||
HealBot_AddDebug("HB: TalentsChanged");
|
||||
if HealBot_UpdateTalentRanks then HealBot_UpdateTalentRanks() end
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_PlayerEnteringWorld: Internal utility: HealBot_OnEvent_PlayerEnteringWorld
|
||||
@@ -578,6 +585,7 @@ function HealBot_OnEvent_PlayerEnteringWorld(this)
|
||||
if HealBot_ApplyRefreshHook then
|
||||
HealBot_ApplyRefreshHook()
|
||||
end
|
||||
if HealBot_UpdateUnitIDCache then HealBot_UpdateUnitIDCache() end
|
||||
end
|
||||
|
||||
-- HealBot_OnEvent_SpellcastStart: Internal utility: HealBot_OnEvent_SpellcastStart
|
||||
|
||||
@@ -8,13 +8,32 @@ function HealBot_ResetRangeScale()
|
||||
_scale = 0
|
||||
end
|
||||
|
||||
local _rangeCache = {}
|
||||
local _lastFrameTime = 0
|
||||
|
||||
-- HealBot_Range_Check: Checks if unit is in range via map distance or API.
|
||||
function HealBot_Range_Check(unit, range)
|
||||
local currentTime = GetTime()
|
||||
if _lastFrameTime ~= currentTime then
|
||||
for r, cacheTable in pairs(_rangeCache) do
|
||||
for u in pairs(cacheTable) do
|
||||
cacheTable[u] = nil
|
||||
end
|
||||
end
|
||||
_lastFrameTime = currentTime
|
||||
end
|
||||
|
||||
local return_val = 0;
|
||||
if not range then
|
||||
range = 40;
|
||||
end
|
||||
if ( unit == "player" ) then
|
||||
|
||||
_rangeCache[range] = _rangeCache[range] or {}
|
||||
if _rangeCache[range][unit] ~= nil then
|
||||
return _rangeCache[range][unit]
|
||||
end
|
||||
|
||||
if ( unit == "player" or string.find(unit, "^Test") ) then
|
||||
return_val = 1;
|
||||
elseif HealBot_Integrations_ClassicAPI_Active and UnitDistanceSquared and UnitInLineOfSight then
|
||||
local inSight = UnitInLineOfSight("player", unit)
|
||||
@@ -56,5 +75,7 @@ function HealBot_Range_Check(unit, range)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
_rangeCache[range][unit] = return_val
|
||||
return return_val;
|
||||
end
|
||||
|
||||
+163
-73
@@ -3,6 +3,7 @@
|
||||
|
||||
HealBot_CastingSpell = nil;
|
||||
HealBot_CastingTarget = nil;
|
||||
HealBot_CastingGroupMembers = nil;
|
||||
HealBot_TargetRestorePending = nil;
|
||||
HealBot_TargetRestoreTimer = 0;
|
||||
|
||||
@@ -33,28 +34,27 @@ function HealBot_GetSpellName(id)
|
||||
return spellName .. " (" .. subSpellName .. ")";
|
||||
end
|
||||
|
||||
HealBot_SpellNameToId = {}
|
||||
|
||||
function HealBot_CacheSpellIDs()
|
||||
HealBot_SpellNameToId = {}
|
||||
local id = 1
|
||||
while true do
|
||||
local spellName, subSpellName = GetSpellName(id, BOOKTYPE_SPELL)
|
||||
if not spellName then break end
|
||||
if subSpellName and subSpellName ~= "" then
|
||||
HealBot_SpellNameToId[spellName .. " (" .. subSpellName .. ")"] = id
|
||||
HealBot_SpellNameToId[spellName .. "(" .. subSpellName .. ")"] = id
|
||||
end
|
||||
HealBot_SpellNameToId[spellName] = id
|
||||
id = id + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_GetSpellId: Internal utility: HealBot_GetSpellId
|
||||
function HealBot_GetSpellId(spell)
|
||||
local id, idd = 1, 0;
|
||||
while true do
|
||||
local spellName, subSpellName = GetSpellName(id, BOOKTYPE_SPELL);
|
||||
if (spellName) then
|
||||
if (spell == spellName .. " (" .. subSpellName .. ")") or (spell == spellName .. "(" .. subSpellName .. ")") then
|
||||
return id;
|
||||
end
|
||||
if (spell == spellName) then
|
||||
idd = id;
|
||||
end
|
||||
else
|
||||
break
|
||||
end
|
||||
id = id + 1;
|
||||
end
|
||||
if idd > 0 then
|
||||
return idd
|
||||
else
|
||||
return nil;
|
||||
end
|
||||
if not spell then return nil end
|
||||
return HealBot_SpellNameToId[spell]
|
||||
end
|
||||
|
||||
-- HealBot_CastSpellByName: Internal utility: HealBot_CastSpellByName
|
||||
@@ -158,12 +158,52 @@ function HealBot_Process_HealValue(spell, target)
|
||||
end
|
||||
local uname = UnitName(target)
|
||||
if uname then
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. uname .. " <<=>> " .. HealBot_HealValue .. " << ");
|
||||
if not HealBot_HealsIn[uname] then
|
||||
HealBot_HealsIn[uname] = 0;
|
||||
if not HealBot_CastingGroupMembers then HealBot_CastingGroupMembers = {} end
|
||||
for i=1, table.getn(HealBot_CastingGroupMembers) do HealBot_CastingGroupMembers[i] = nil end
|
||||
table.setn(HealBot_CastingGroupMembers, 0)
|
||||
if HEALBOT_PRAYER_OF_HEALING and string.find(spell, HEALBOT_PRAYER_OF_HEALING) then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
local targetGroup = 0
|
||||
for i = 1, GetNumRaidMembers() do
|
||||
local name, _, subgroup = GetRaidRosterInfo(i)
|
||||
if name == uname then targetGroup = subgroup; break; end
|
||||
end
|
||||
if targetGroup > 0 then
|
||||
for i = 1, GetNumRaidMembers() do
|
||||
local name, _, subgroup = GetRaidRosterInfo(i)
|
||||
if subgroup == targetGroup and name then table.insert(HealBot_CastingGroupMembers, name); end
|
||||
end
|
||||
end
|
||||
else
|
||||
table.insert(HealBot_CastingGroupMembers, UnitName("player"))
|
||||
for i = 1, GetNumPartyMembers() do
|
||||
if UnitName("party"..i) then table.insert(HealBot_CastingGroupMembers, UnitName("party"..i)); end
|
||||
end
|
||||
end
|
||||
end
|
||||
if table.getn(HealBot_CastingGroupMembers) == 0 then
|
||||
table.insert(HealBot_CastingGroupMembers, uname)
|
||||
end
|
||||
|
||||
if table.getn(HealBot_CastingGroupMembers) > 1 then
|
||||
local commsStr = "GrpHeal/" .. HealBot_HealValue .. "/1500/"
|
||||
for _, memberName in ipairs(HealBot_CastingGroupMembers) do
|
||||
commsStr = commsStr .. memberName .. "/"
|
||||
end
|
||||
HealBot_SendAddonMessage("HealComm", commsStr)
|
||||
for _, memberName in ipairs(HealBot_CastingGroupMembers) do
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. memberName .. " <<=>> " .. HealBot_HealValue .. " << ")
|
||||
if not HealBot_HealsIn[memberName] then HealBot_HealsIn[memberName] = 0 end
|
||||
HealBot_HealsIn[memberName] = HealBot_HealsIn[memberName] + HealBot_HealValue
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(memberName))
|
||||
end
|
||||
else
|
||||
HealBot_SendAddonMessage("HealComm", "Heal/" .. uname .. "/" .. HealBot_HealValue .. "/1500/")
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. uname .. " <<=>> " .. HealBot_HealValue .. " << ")
|
||||
if not HealBot_HealsIn[uname] then HealBot_HealsIn[uname] = 0 end
|
||||
HealBot_HealsIn[uname] = HealBot_HealsIn[uname] + HealBot_HealValue
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(uname))
|
||||
end
|
||||
HealBot_HealsIn[uname] = HealBot_HealsIn[uname] + HealBot_HealValue;
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(uname));
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -171,18 +211,6 @@ end
|
||||
-- HealBot_StartCasting: Initiates spell cast and broadcasts incoming heal.
|
||||
function HealBot_StartCasting(spell, target, ttype)
|
||||
HealBot_CastFailed = false;
|
||||
|
||||
-- Extract base spell for internal tracking
|
||||
local baseSpell = spell
|
||||
local parenIndex = string.find(spell, " %(")
|
||||
if parenIndex then
|
||||
baseSpell = string.sub(spell, 1, parenIndex - 1)
|
||||
else
|
||||
parenIndex = string.find(spell, "%(")
|
||||
if parenIndex then
|
||||
baseSpell = string.sub(spell, 1, parenIndex - 1)
|
||||
end
|
||||
end
|
||||
|
||||
HealBot_CastSpellByName(spell);
|
||||
if ( SpellCanTargetUnit(target) ) then
|
||||
@@ -197,11 +225,11 @@ function HealBot_StartCasting(spell, target, ttype)
|
||||
end
|
||||
end
|
||||
|
||||
if ttype == "fired" and HealBot_Spells[baseSpell] then
|
||||
if ttype == "fired" and HealBot_Spells[spell] then
|
||||
if not HealBot_CastFailed then
|
||||
HealBot_CastingSpell = baseSpell;
|
||||
HealBot_CastingSpell = spell;
|
||||
HealBot_CastingTarget = target;
|
||||
HealBot_Process_HealValue(baseSpell, target);
|
||||
HealBot_Process_HealValue(spell, target);
|
||||
HealBot_AnnounceCast(spell, target);
|
||||
end
|
||||
end
|
||||
@@ -216,13 +244,24 @@ function HealBot_StopCasting()
|
||||
if HealBot_HealValue > 0 then
|
||||
local uname = UnitName(HealBot_CastingTarget)
|
||||
if uname then
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. uname .. " <<=>> " .. 0 - HealBot_HealValue .. " << ");
|
||||
if HealBot_HealsIn[uname] then
|
||||
HealBot_HealsIn[uname] = HealBot_HealsIn[uname] - HealBot_HealValue;
|
||||
if HealBot_HealsIn[uname] < 0 then
|
||||
HealBot_HealsIn[uname] = 0;
|
||||
end
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(uname));
|
||||
if HealBot_CastingGroupMembers and table.getn(HealBot_CastingGroupMembers) > 1 then
|
||||
HealBot_SendAddonMessage("HealComm", "GrpHealstop");
|
||||
for _, memberName in ipairs(HealBot_CastingGroupMembers) do
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. memberName .. " <<=>> " .. 0 - HealBot_HealValue .. " << ")
|
||||
if HealBot_HealsIn[memberName] then
|
||||
HealBot_HealsIn[memberName] = HealBot_HealsIn[memberName] - HealBot_HealValue;
|
||||
if HealBot_HealsIn[memberName] < 0 then HealBot_HealsIn[memberName] = 0; end
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(memberName));
|
||||
end
|
||||
end
|
||||
else
|
||||
HealBot_SendAddonMessage("HealComm", "Healstop");
|
||||
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. uname .. " <<=>> " .. 0 - HealBot_HealValue .. " << ");
|
||||
if HealBot_HealsIn[uname] then
|
||||
HealBot_HealsIn[uname] = HealBot_HealsIn[uname] - HealBot_HealValue;
|
||||
if HealBot_HealsIn[uname] < 0 then HealBot_HealsIn[uname] = 0; end
|
||||
HealBot_RecalcHeals(HealBot_FindUnitID(uname));
|
||||
end
|
||||
end
|
||||
end
|
||||
HealBot_HealValue = 0;
|
||||
@@ -235,7 +274,7 @@ function HealBot_StopCasting()
|
||||
local ag = HealBot_Config.babortcolg[HealBot_Config.Current_Skin] or 0.1;
|
||||
local ab = HealBot_Config.babortcolb[HealBot_Config.Current_Skin] or 0.5;
|
||||
local aa = HealBot_Config.babortcola[HealBot_Config.Current_Skin] or 1;
|
||||
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||
if not bar.txt then bar.txt = getglobal(bar:GetName() .. "_text") end
|
||||
bar:SetStatusBarColor(ar, ag, ab, 0);
|
||||
local sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin];
|
||||
local sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin];
|
||||
@@ -301,7 +340,7 @@ function HealBot_CheckCasting(unit)
|
||||
local sg = HealBot_Config.btextenabledcolg[HealBot_Config.Current_Skin];
|
||||
local sb = HealBot_Config.btextenabledcolb[HealBot_Config.Current_Skin];
|
||||
local sa = HealBot_Config.btextenabledcola[HealBot_Config.Current_Skin];
|
||||
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||
if not bar.txt then bar.txt = getglobal(bar:GetName() .. "_text") end
|
||||
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||
end
|
||||
end
|
||||
@@ -326,7 +365,15 @@ function HealBot_CastSpellOnFriend(spell, target)
|
||||
if formCancelled then
|
||||
-- ALWAYS put the cast into the Pending queue so the OnUpdate loop can wait for the server
|
||||
-- to process the unshift before attempting the cast, otherwise we get "You are in shapeshift form".
|
||||
HealBot_PendingShapeshiftCast = { spell = spell, target = target, targetEnemy = targetEnemy, oldTarget = oldTarget, fireTime = GetTime() + 0.05, expires = GetTime() + 2.0 }
|
||||
if not HealBot_PendingShapeshiftCast then HealBot_PendingShapeshiftCast = {} end
|
||||
HealBot_PendingShapeshiftCast.spell = spell
|
||||
HealBot_PendingShapeshiftCast.target = target
|
||||
HealBot_PendingShapeshiftCast.targetEnemy = targetEnemy
|
||||
HealBot_PendingShapeshiftCast.oldTarget = oldTarget
|
||||
HealBot_PendingShapeshiftCast.fireTime = GetTime() + 0.05
|
||||
HealBot_PendingShapeshiftCast.expires = GetTime() + 2.0
|
||||
HealBot_PendingShapeshiftCast.started = nil
|
||||
HealBot_PendingShapeshiftCast.nextSpam = nil
|
||||
return;
|
||||
end
|
||||
|
||||
@@ -337,11 +384,11 @@ function HealBot_CastSpellOnFriend(spell, target)
|
||||
HealBot_StartCasting(spell, target, "direct");
|
||||
|
||||
if targetEnemy then
|
||||
HealBot_TargetRestorePending = { type = "enemy" };
|
||||
HealBot_TargetRestorePending = "enemy";
|
||||
elseif oldTarget and oldTarget ~= UnitName(target) then
|
||||
HealBot_TargetRestorePending = { type = "friend" };
|
||||
HealBot_TargetRestorePending = "friend";
|
||||
elseif not oldTarget then
|
||||
HealBot_TargetRestorePending = { type = "clear" };
|
||||
HealBot_TargetRestorePending = "clear";
|
||||
end
|
||||
HealBot_TargetRestoreTimer = 0;
|
||||
end
|
||||
@@ -426,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);
|
||||
@@ -457,7 +510,7 @@ function HealBot_FindHealSpells()
|
||||
temp_Spell_cast = HealBot_Spells[spell].CastTime;
|
||||
end
|
||||
RealHealing = ((HealBot_GetBonus() * healingbonus_penalty) * (temp_Spell_cast / 3.5));
|
||||
local playerClass, englishClass = UnitClass("player");
|
||||
local englishClass = HealBot_UnitClass("player");
|
||||
local SpiBonus = 0;
|
||||
if (englishClass == "PRIEST") then
|
||||
SpiBonus = ((HealBot_SpiBonus(spell) * healingbonus_penalty) * (temp_Spell_cast / 3.5))
|
||||
@@ -470,7 +523,7 @@ function HealBot_FindHealSpells()
|
||||
end
|
||||
end);
|
||||
|
||||
local items = {};
|
||||
local items = HealBot_GetTable();
|
||||
for bag = 0, NUM_BAG_FRAMES do
|
||||
for slot = 1, GetContainerNumSlots(bag) do
|
||||
local item = HealBot_GetItemName(bag, slot);
|
||||
@@ -496,6 +549,7 @@ function HealBot_FindHealSpells()
|
||||
HealBot_Heals["raidpet" .. i] = HealBot_Heals.party;
|
||||
end
|
||||
|
||||
HealBot_ReleaseTable(items);
|
||||
if HealBot_CalcEquipBonus then
|
||||
HealBot_AddDebug("...Done Equip Bonus:" .. RealHealing);
|
||||
end
|
||||
@@ -519,10 +573,14 @@ end
|
||||
|
||||
-- HealBot_GetHealSpell: Resolves spell rank based on health deficit.
|
||||
function HealBot_GetHealSpell(unit, pattern)
|
||||
if (not UnitName(unit)) then return nil end;
|
||||
if not string.find(unit, "^Test") then
|
||||
if (not UnitName(unit)) then return nil end;
|
||||
end
|
||||
if not pattern then return nil end;
|
||||
if UnitOnTaxi("player") then return nil end;
|
||||
if HealBot_Config.ProtectPvP == 1 and UnitIsPVP(unit) and not UnitIsPVP("player") then return nil end
|
||||
if not string.find(unit, "^Test") then
|
||||
if HealBot_Config.ProtectPvP == 1 and UnitIsPVP(unit) and not UnitIsPVP("player") then return nil end
|
||||
end
|
||||
if HealBot_UnitClass("player") == "DRUID" then
|
||||
if HealBot_GetShapeshiftForm() and HealBot_Config.AutoUnshift ~= 1 then return nil end;
|
||||
end
|
||||
@@ -566,7 +624,15 @@ end
|
||||
|
||||
-- HealBot_RecalcHeals: Flags unit for visual refresh.
|
||||
function HealBot_RecalcHeals(unit)
|
||||
HealBot_Action_Refresh(unit);
|
||||
if unit then
|
||||
HealBot_View_DirtyUnits[unit] = true;
|
||||
else
|
||||
if HealBot_Action_UnitButtons then
|
||||
for u, _ in pairs(HealBot_Action_UnitButtons) do
|
||||
HealBot_View_DirtyUnits[u] = true;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_RecalcParty: Triggers group layout rebuild.
|
||||
@@ -579,7 +645,6 @@ function HealBot_RecalcParty()
|
||||
end
|
||||
end
|
||||
end
|
||||
HealBot_Action_RefreshButtons();
|
||||
end
|
||||
|
||||
-- HealBot_RecalcSpells: Recalculates spells and updates layout.
|
||||
@@ -588,17 +653,24 @@ function HealBot_RecalcSpells()
|
||||
HealBot_RecalcParty();
|
||||
end
|
||||
|
||||
-- HealBot_GetTalentRank: Internal utility: HealBot_GetTalentRank
|
||||
function HealBot_GetTalentRank(talentName)
|
||||
HealBot_TalentRanks = {}
|
||||
|
||||
function HealBot_UpdateTalentRanks()
|
||||
HealBot_TalentRanks = {}
|
||||
for t = 1, GetNumTalentTabs() do
|
||||
for i = 1, GetNumTalents(t) do
|
||||
local nameTalent, icon, tier, column, currRank, maxRank = GetTalentInfo(t, i);
|
||||
if nameTalent == talentName then
|
||||
return currRank;
|
||||
local nameTalent, icon, tier, column, currRank, maxRank = GetTalentInfo(t, i)
|
||||
if nameTalent then
|
||||
HealBot_TalentRanks[nameTalent] = currRank
|
||||
end
|
||||
end
|
||||
end
|
||||
return 0;
|
||||
end
|
||||
|
||||
-- HealBot_GetTalentRank: Internal utility: HealBot_GetTalentRank
|
||||
function HealBot_GetTalentRank(talentName)
|
||||
if not next(HealBot_TalentRanks) then HealBot_UpdateTalentRanks() end
|
||||
return HealBot_TalentRanks[talentName] or 0
|
||||
end
|
||||
|
||||
-- HealBot_SpiBonus: Internal utility: HealBot_SpiBonus
|
||||
@@ -633,6 +705,7 @@ end
|
||||
|
||||
-- HealBot_InitSpells: Scans spellbook to find available heals.
|
||||
function HealBot_InitSpells()
|
||||
HealBot_CacheSpellIDs()
|
||||
local id = 1
|
||||
local cnt = 0;
|
||||
local class = HealBot_UnitClass("player")
|
||||
@@ -671,8 +744,15 @@ function HealBot_InitGetSpellData(spell, id, class)
|
||||
_cast = 0;
|
||||
line = nil;
|
||||
|
||||
if not HealBot_ScanTooltip_Lines_Left then HealBot_ScanTooltip_Lines_Left = {} end
|
||||
if not HealBot_ScanTooltip_Lines_Right then HealBot_ScanTooltip_Lines_Right = {} end
|
||||
|
||||
for lineNum = 2, 6 do
|
||||
local lText = getglobal("HealBot_ScanTooltipTextLeft"..lineNum);
|
||||
local lText = HealBot_ScanTooltip_Lines_Left[lineNum];
|
||||
if not lText then
|
||||
lText = getglobal("HealBot_ScanTooltipTextLeft"..lineNum);
|
||||
HealBot_ScanTooltip_Lines_Left[lineNum] = lText;
|
||||
end
|
||||
if lText and lText:IsVisible() and lText:GetText() then
|
||||
local txt = lText:GetText();
|
||||
local t1, t2, match;
|
||||
@@ -696,7 +776,11 @@ function HealBot_InitGetSpellData(spell, id, class)
|
||||
end
|
||||
end
|
||||
|
||||
local rText = getglobal("HealBot_ScanTooltipTextRight"..lineNum);
|
||||
local rText = HealBot_ScanTooltip_Lines_Right[lineNum];
|
||||
if not rText then
|
||||
rText = getglobal("HealBot_ScanTooltipTextRight"..lineNum);
|
||||
HealBot_ScanTooltip_Lines_Right[lineNum] = rText;
|
||||
end
|
||||
if rText and rText:IsVisible() and rText:GetText() then
|
||||
local txt = rText:GetText();
|
||||
local t1, t2, match;
|
||||
@@ -857,10 +941,7 @@ function HealBot_Generic_Patten(matchStr, matchPattern)
|
||||
return tmpTest, _HealsMin, _HealsMax;
|
||||
end
|
||||
|
||||
-- HealBot_UpdateShapeshiftForm: Called on UPDATE_SHAPESHIFT_FORM
|
||||
function HealBot_UpdateShapeshiftForm()
|
||||
-- Deprecated
|
||||
end
|
||||
|
||||
|
||||
-- HealBot_GetShapeshiftForm: Detects active druid form to prevent invalid casts.
|
||||
function HealBot_GetShapeshiftForm()
|
||||
@@ -870,9 +951,18 @@ function HealBot_GetShapeshiftForm()
|
||||
for i=1,forms do
|
||||
local icon,name,active = GetShapeshiftFormInfo(i);
|
||||
if active then
|
||||
return i;
|
||||
if icon then
|
||||
local icon_lower = string.lower(icon)
|
||||
-- Exclude non-standard/custom forms like Tree of Life from unshifting
|
||||
if not string.find(icon_lower, "humanoidform") and not string.find(icon_lower, "treeoflife") and not string.find(icon_lower, "healingway") and not string.find(icon_lower, "stoneclawtotem") then
|
||||
return nil;
|
||||
end
|
||||
else
|
||||
return i;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil;
|
||||
end
|
||||
|
||||
|
||||
+9
-5
@@ -1,4 +1,5 @@
|
||||
HealBot_ConfigDefaults = {
|
||||
DebugMode = 0,
|
||||
ShowManaBars=0,
|
||||
ManaBarsHealersOnly=0,
|
||||
Version = HEALBOT_VERSION,
|
||||
@@ -248,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,
|
||||
@@ -260,15 +268,11 @@ HealBot_ConfigDefaults = {
|
||||
HealBot_Integrations_Nampower = 0,
|
||||
HealBot_Integrations_SuperWoW = 0,
|
||||
HealBot_Integrations_ClassicAPI = 0,
|
||||
HealBot_Integrations_ShowHoTTimers = 0,
|
||||
};
|
||||
|
||||
HealBot_Config = {};
|
||||
|
||||
--HealBot_EmergIncMelee = {};
|
||||
--HealBot_EmergIncRange = {};
|
||||
--HealBot_EmergIncHealers = {};
|
||||
--HealBot_EmergIncCustom = {};
|
||||
--HealBot_KeyCombo = {};
|
||||
HealBot_HealsIn = {};
|
||||
HealBot_Healers = {};
|
||||
HealBot_UnitDebuff = {};
|
||||
|
||||
+42
-18
@@ -10,6 +10,8 @@ function HealBot_GetUnitGUID(unit)
|
||||
return UnitGUID(unit)
|
||||
elseif HealBot_Integrations_SuperWoW_Active and GetUnitGUID then
|
||||
return GetUnitGUID(unit)
|
||||
elseif HealBot_Integrations_Nampower_Active and GetUnitGUID then
|
||||
return GetUnitGUID(unit)
|
||||
end
|
||||
return nil
|
||||
end
|
||||
@@ -36,22 +38,29 @@ function HealBot_Integrations_Toggle()
|
||||
HealBot_NampowerFrame:RegisterEvent("AURA_CAST_ON_OTHER")
|
||||
HealBot_NampowerFrame:SetScript("OnEvent", function()
|
||||
if not HealBot_Integrations_Nampower_Active then return end
|
||||
local spellID, caster, target, _, _, _, _, duration = arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8
|
||||
if not caster or not target or duration <= 0 then return end
|
||||
|
||||
local spellName = GetSpellRecField(spellID, "name")
|
||||
if not spellName then return end
|
||||
|
||||
if not HealBot_Nampower_Auras[target] then
|
||||
HealBot_Nampower_Auras[target] = {}
|
||||
end
|
||||
|
||||
local expirationTime = GetTime() + (duration / 1000)
|
||||
HealBot_Nampower_Auras[target][spellName] = expirationTime
|
||||
|
||||
local unitID = HealBot_Model:GetUnitIDByName(target)
|
||||
if unitID then
|
||||
HealBot_OnEvent_UnitAura(nil, unitID)
|
||||
if event == "AURA_CAST_ON_SELF" or event == "AURA_CAST_ON_OTHER" then
|
||||
local spellID, caster, target, _, _, _, _, duration = arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8
|
||||
if not caster or not target or duration <= 0 then return end
|
||||
|
||||
-- The player is ALWAYS the caster in these events for Nampower
|
||||
if not HealBot_PlayerGUID then
|
||||
HealBot_PlayerGUID = caster
|
||||
end
|
||||
|
||||
local spellName = GetSpellRecField(spellID, "name")
|
||||
if not spellName then return end
|
||||
|
||||
if not HealBot_Nampower_Auras[target] then
|
||||
HealBot_Nampower_Auras[target] = HealBot_GetTable()
|
||||
end
|
||||
|
||||
local expirationTime = GetTime() + (duration / 1000)
|
||||
HealBot_Nampower_Auras[target][spellName] = expirationTime
|
||||
|
||||
local unitID = HealBot_Model:GetUnitIDByName(target)
|
||||
if unitID then
|
||||
HealBot_OnEvent_UnitAura(nil, unitID)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
@@ -59,7 +68,8 @@ function HealBot_Integrations_Toggle()
|
||||
HealBot_Integrations_Nampower_Active = false;
|
||||
HealBot_AddDebug("nampower Integration: DISABLED");
|
||||
if HealBot_Nampower_Auras then
|
||||
for k in pairs(HealBot_Nampower_Auras) do
|
||||
for k, v in pairs(HealBot_Nampower_Auras) do
|
||||
HealBot_ReleaseTable(v)
|
||||
HealBot_Nampower_Auras[k] = nil
|
||||
end
|
||||
end
|
||||
@@ -73,7 +83,8 @@ function HealBot_Integrations_PruneNampower()
|
||||
local currentTime = GetTime()
|
||||
for targetName, auras in pairs(HealBot_Nampower_Auras) do
|
||||
-- Check if target is still in the raid/party
|
||||
if not HealBot_Model:GetUnitIDByName(targetName) then
|
||||
if not HealBot_Model:GetUnitByGUID(targetName) and not HealBot_Model:GetUnitIDByName(targetName) then
|
||||
HealBot_ReleaseTable(auras)
|
||||
HealBot_Nampower_Auras[targetName] = nil
|
||||
else
|
||||
-- Prune expired auras
|
||||
@@ -86,6 +97,7 @@ function HealBot_Integrations_PruneNampower()
|
||||
end
|
||||
end
|
||||
if not hasAuras then
|
||||
HealBot_ReleaseTable(auras)
|
||||
HealBot_Nampower_Auras[targetName] = nil
|
||||
end
|
||||
end
|
||||
@@ -122,4 +134,16 @@ end
|
||||
HealBot_Integrations_ClassicAPI_Active = false;
|
||||
HealBot_AddDebug("ClassicAPI Integration: DISABLED");
|
||||
end
|
||||
|
||||
if HealBot_Options_Integrations_ShowHoTTimers then
|
||||
if HealBot_Integrations_Nampower_Active or HealBot_Integrations_SuperWoW_Active or HealBot_Integrations_ClassicAPI_Active then
|
||||
HealBot_Options_Integrations_ShowHoTTimers:Enable()
|
||||
getglobal(HealBot_Options_Integrations_ShowHoTTimers:GetName().."Text"):SetTextColor(1, 1, 1)
|
||||
else
|
||||
HealBot_Options_Integrations_ShowHoTTimers:Disable()
|
||||
getglobal(HealBot_Options_Integrations_ShowHoTTimers:GetName().."Text"):SetTextColor(0.5, 0.5, 0.5)
|
||||
HealBot_Options_Integrations_ShowHoTTimers:SetChecked(0)
|
||||
HealBot_Config.HealBot_Integrations_ShowHoTTimers = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -390,3 +392,5 @@ HEALBOT_WORDS_SEC = "sec";
|
||||
HEALBOT_WORDS_TO = "to";
|
||||
HEALBOT_WORDS_CAST = "Cast"
|
||||
HEALBOT_WORDS_FOR = "for";
|
||||
HEALBOT_OPTIONS_TESTBARS = "Test Bars";
|
||||
HEALBOT_WORD_TEST = "Test";
|
||||
|
||||
@@ -18,7 +18,7 @@ if (GetLocale() == "frFR") then
|
||||
|
||||
HEALBOT_DRUID = "Druide";
|
||||
HEALBOT_HUNTER = "Chasseur";
|
||||
HEALBOT_MAGE = "Magier";
|
||||
HEALBOT_MAGE = "Mage";
|
||||
HEALBOT_PALADIN = "Paladin";
|
||||
HEALBOT_PRIEST = "Pr\195\170tre";
|
||||
HEALBOT_ROGUE = "Voleur";
|
||||
@@ -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 ***************
|
||||
|
||||
@@ -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 = "디버프"
|
||||
|
||||
+40
-15
@@ -1,6 +1,13 @@
|
||||
-- HealBot_Model.lua
|
||||
-- Centralized Data Store and Observer System for HealBotBlue
|
||||
|
||||
local pool_oldGUIDs = {}
|
||||
local pool_newUnitForGUID = {}
|
||||
local pool_stateSwaps = {}
|
||||
local pool_iconSwaps = {}
|
||||
local pool_missingBuffSwaps = {}
|
||||
local pool_debuffSwaps = {}
|
||||
|
||||
-- Safe local wrappers to prevent native UIDropDownMenu concatenation crashes
|
||||
-- when setting selected values on closed dropdowns during initialization.
|
||||
function HealBot_UIDropDownMenu_SetSelectedID(frame, id, useValue)
|
||||
@@ -137,19 +144,19 @@ end
|
||||
|
||||
-- Updates base unit info (Name, Class)
|
||||
function HealBot_Model:UpdateUnitIdentity(unit)
|
||||
if not self.units[unit] then return false end
|
||||
if not self.units[unit] or string.find(unit, "^Test") then return false end
|
||||
|
||||
local oldName = self.units[unit].name
|
||||
local oldEnglishClass = self.units[unit].englishClass
|
||||
local name = UnitName(unit)
|
||||
local _, englishClass = UnitClass(unit)
|
||||
local englishClass = HealBot_UnitClass(unit)
|
||||
|
||||
if oldName ~= name or oldEnglishClass ~= englishClass then
|
||||
self.units[unit].name = name
|
||||
self.units[unit].englishClass = englishClass
|
||||
self.units[unit].class = UnitClass(unit)
|
||||
|
||||
if (HealBot_Integrations_SuperWoW_Active or HealBot_Integrations_ClassicAPI_Active) and HealBot_GetUnitGUID then
|
||||
if (HealBot_Integrations_SuperWoW_Active or HealBot_Integrations_ClassicAPI_Active or HealBot_Integrations_Nampower_Active) and HealBot_GetUnitGUID then
|
||||
local guid = HealBot_GetUnitGUID(unit)
|
||||
if guid and guid ~= "0" and guid ~= "0x0000000000000000" then
|
||||
self.unitGUIDs[unit] = guid
|
||||
@@ -178,16 +185,18 @@ end
|
||||
|
||||
-- HealBot_Model:PreserveStateByGUID: Preserves icon and debuff state when group indices shift during combat.
|
||||
function HealBot_Model:PreserveStateByGUID()
|
||||
if not (HealBot_Integrations_SuperWoW_Active or HealBot_Integrations_ClassicAPI_Active) or not HealBot_GetUnitGUID then return end
|
||||
if not (HealBot_Integrations_SuperWoW_Active or HealBot_Integrations_ClassicAPI_Active or HealBot_Integrations_Nampower_Active) or not HealBot_GetUnitGUID then return end
|
||||
|
||||
local oldGUIDs = {}
|
||||
for k in pairs(pool_oldGUIDs) do pool_oldGUIDs[k] = nil end
|
||||
local oldGUIDs = pool_oldGUIDs
|
||||
for unit, guid in pairs(self.unitGUIDs) do
|
||||
if string.find(unit, "^party") or string.find(unit, "^raid") or unit == "player" or unit == "pet" then
|
||||
oldGUIDs[unit] = guid
|
||||
end
|
||||
end
|
||||
|
||||
local newUnitForGUID = {}
|
||||
for k in pairs(pool_newUnitForGUID) do pool_newUnitForGUID[k] = nil end
|
||||
local newUnitForGUID = pool_newUnitForGUID
|
||||
-- Scan the new roster
|
||||
for _, unit in ipairs(self.partyMembers) do
|
||||
local guid = HealBot_GetUnitGUID(unit)
|
||||
@@ -206,10 +215,14 @@ function HealBot_Model:PreserveStateByGUID()
|
||||
end
|
||||
end
|
||||
|
||||
local stateSwaps = {}
|
||||
local iconSwaps = {}
|
||||
local missingBuffSwaps = {}
|
||||
local debuffSwaps = {}
|
||||
for k in pairs(pool_stateSwaps) do pool_stateSwaps[k] = nil end
|
||||
local stateSwaps = pool_stateSwaps
|
||||
for k in pairs(pool_iconSwaps) do pool_iconSwaps[k] = nil end
|
||||
local iconSwaps = pool_iconSwaps
|
||||
for k in pairs(pool_missingBuffSwaps) do pool_missingBuffSwaps[k] = nil end
|
||||
local missingBuffSwaps = pool_missingBuffSwaps
|
||||
for k in pairs(pool_debuffSwaps) do pool_debuffSwaps[k] = nil end
|
||||
local debuffSwaps = pool_debuffSwaps
|
||||
|
||||
for oldUnit, guid in pairs(oldGUIDs) do
|
||||
local newUnit = newUnitForGUID[guid]
|
||||
@@ -231,14 +244,26 @@ function HealBot_Model:PreserveStateByGUID()
|
||||
|
||||
for targetUnit, stateData in pairs(stateSwaps) do
|
||||
-- Deep copy to prevent memory aliasing
|
||||
self.units[targetUnit] = {}
|
||||
for k, v in pairs(stateData) do
|
||||
self.units[targetUnit][k] = v
|
||||
if not self.units[targetUnit] then
|
||||
self.units[targetUnit] = HealBot_GetTable()
|
||||
self.units[targetUnit].icons = HealBot_GetTable()
|
||||
end
|
||||
self.units[targetUnit].icons = {}
|
||||
|
||||
local targetIcons = self.units[targetUnit].icons
|
||||
if not targetIcons then targetIcons = HealBot_GetTable() end
|
||||
for k in pairs(targetIcons) do targetIcons[k] = nil end
|
||||
|
||||
for k in pairs(self.units[targetUnit]) do self.units[targetUnit][k] = nil end
|
||||
|
||||
for k, v in pairs(stateData) do
|
||||
if k ~= "icons" then
|
||||
self.units[targetUnit][k] = v
|
||||
end
|
||||
end
|
||||
self.units[targetUnit].icons = targetIcons
|
||||
|
||||
if HealBot_UnitIcons and iconSwaps[targetUnit] then
|
||||
if not HealBot_UnitIcons[targetUnit] then HealBot_UnitIcons[targetUnit] = {} end
|
||||
if not HealBot_UnitIcons[targetUnit] then HealBot_UnitIcons[targetUnit] = HealBot_GetTable() end
|
||||
for j=1, 10 do
|
||||
HealBot_UnitIcons[targetUnit][j] = iconSwaps[targetUnit][j]
|
||||
end
|
||||
|
||||
+58
-5
@@ -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,
|
||||
@@ -210,13 +224,18 @@ function HealBot_Returned_Colours()
|
||||
HealBot_SetSkinColours()
|
||||
HealBot_SetCDCBarColours()
|
||||
end
|
||||
ColorPickerFrame.func = HealBot_Returned_Colours
|
||||
|
||||
-- HealBot_UseColourPick: Internal utility: HealBot_UseColourPick
|
||||
function HealBot_UseColourPick(R, G, B, A)
|
||||
ColorPickerFrame.func = HealBot_Returned_Colours;
|
||||
ColorPickerFrame.cancelFunc = HealBot_Returned_Colours;
|
||||
if ColorPickerFrame:IsVisible() then
|
||||
ColorPickerFrame:Hide();
|
||||
elseif A then
|
||||
ColorPickerFrame.hasOpacity = true;
|
||||
ColorPickerFrame.opacity = A;
|
||||
ColorPickerFrame.opacityFunc = HealBot_Returned_Colours;
|
||||
ColorPickerFrame:ClearAllPoints();
|
||||
ColorPickerFrame:SetPoint("TOPLEFT","HealBot_Options","TOPRIGHT",0,-152);
|
||||
ColorPickerFrame:Show();
|
||||
@@ -224,6 +243,7 @@ function HealBot_UseColourPick(R, G, B, A)
|
||||
ColorPickerFrame:SetColorRGB(R, G, B);
|
||||
else
|
||||
ColorPickerFrame.hasOpacity = false;
|
||||
ColorPickerFrame.opacityFunc = nil;
|
||||
ColorPickerFrame:ClearAllPoints();
|
||||
ColorPickerFrame:SetPoint("TOPLEFT","HealBot_Options","TOPRIGHT",0,-152);
|
||||
ColorPickerFrame:Show();
|
||||
@@ -234,10 +254,18 @@ end
|
||||
-- HealBot_Options_Defaults_OnClick: UI handler for OnClick options panel.
|
||||
function HealBot_Options_Defaults_OnClick(this)
|
||||
HealBot_Options_CastNotify_OnClick(nil,0);
|
||||
-- HealBot_Config = HealBot_ConfigDefaults;
|
||||
table.foreach(HealBot_ConfigDefaults, function (key,val)
|
||||
HealBot_Config[key] = val;
|
||||
end);
|
||||
HealBot_Config = {}
|
||||
local function DeepCopy(src, dest)
|
||||
for k, v in pairs(src) do
|
||||
if type(v) == "table" then
|
||||
dest[k] = {}
|
||||
DeepCopy(v, dest[k])
|
||||
else
|
||||
dest[k] = v
|
||||
end
|
||||
end
|
||||
end
|
||||
DeepCopy(HealBot_ConfigDefaults, HealBot_Config)
|
||||
HealBot_Options_OnShow(HealBot_Options);
|
||||
HealBot_RecalcSpells();
|
||||
HealBot_Action_Reset();
|
||||
@@ -334,12 +362,37 @@ function HealBot_Options_SetSkins()
|
||||
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)
|
||||
HealBot_Options_GridOrientation:SetChecked(((HealBot_Config.GridOrientation and HealBot_Config.GridOrientation[HealBot_Config.Current_Skin]) == 2) and 1 or nil)
|
||||
local orient = (HealBot_Config.GridOrientation and HealBot_Config.GridOrientation[HealBot_Config.Current_Skin]) or 1
|
||||
UIDropDownMenu_SetSelectedID(HealBot_Options_GridOrientation_Dropdown, orient)
|
||||
if orient == 2 then
|
||||
HealBot_Options_GridOrientation_DropdownText:SetText("Horizontal (Rows)")
|
||||
HealBot_Options_BarMaxRowsS:Hide()
|
||||
HealBot_Options_BarNumColsS:Show()
|
||||
else
|
||||
HealBot_Options_GridOrientation_DropdownText:SetText("Vertical (Columns)")
|
||||
HealBot_Options_BarMaxRowsS:Show()
|
||||
HealBot_Options_BarNumColsS:Hide()
|
||||
end
|
||||
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)
|
||||
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)
|
||||
|
||||
+16
-17
@@ -8,7 +8,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-30" />
|
||||
<AbsDimension x="170" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -28,15 +28,15 @@
|
||||
<FontString name="$parentLabel" text="Solo Skin:" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="-10" y="15" /></Offset>
|
||||
<Offset><AbsDimension x="-10" y="15"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="30" y="-80" /></Offset>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_AutoSwap" relativePoint="BOTTOMLEFT">
|
||||
<Offset><AbsDimension x="0" y="-25"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
@@ -52,15 +52,15 @@
|
||||
<FontString name="$parentLabel" text="Party Skin:" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="-10" y="15" /></Offset>
|
||||
<Offset><AbsDimension x="-10" y="15"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="30" y="-130" /></Offset>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Auto_Solo" relativePoint="BOTTOMLEFT">
|
||||
<Offset><AbsDimension x="0" y="-25"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
@@ -76,15 +76,15 @@
|
||||
<FontString name="$parentLabel" text="Raid 15 Skin:" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="-10" y="15" /></Offset>
|
||||
<Offset><AbsDimension x="-10" y="15"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="30" y="-180" /></Offset>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Auto_Party" relativePoint="BOTTOMLEFT">
|
||||
<Offset><AbsDimension x="0" y="-25"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
@@ -100,15 +100,15 @@
|
||||
<FontString name="$parentLabel" text="Raid 25 Skin:" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="-10" y="15" /></Offset>
|
||||
<Offset><AbsDimension x="-10" y="15"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="30" y="-230" /></Offset>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Auto_Raid15" relativePoint="BOTTOMLEFT">
|
||||
<Offset><AbsDimension x="0" y="-25"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
@@ -124,15 +124,15 @@
|
||||
<FontString name="$parentLabel" text="Raid 40 Skin:" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="-10" y="15" /></Offset>
|
||||
<Offset><AbsDimension x="-10" y="15"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset><AbsDimension x="30" y="-280" /></Offset>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Auto_Raid25" relativePoint="BOTTOMLEFT">
|
||||
<Offset><AbsDimension x="0" y="-25"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
@@ -141,7 +141,6 @@
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
</Frames>
|
||||
<Scripts>
|
||||
<OnShow>
|
||||
|
||||
+356
-363
@@ -2,371 +2,364 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||
<Script file="HealBot_Options_Buffs.lua" />
|
||||
<Frame name="HealBot_Options_Panel6" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<Frame name="HealBot_Options_BuffFrame" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Size>
|
||||
<AbsDimension y="330"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="21" y="-35"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-21" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_BuffPanel_Text" text="Buff Settings" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="10" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
|
||||
<CheckButton name="HealBot_Options_BuffWatch" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffFrame" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="-15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCH)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffWatch_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_Options_BuffWatchInCombat" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffWatch" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCHINCOMBAT)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffWatchInCombat_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff1" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff1Text" text="HEALBOT_OPTIONS_BUFF1" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffWatchInCombat" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-15" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff1Self" inherits="OptionsCheckButtonTemplate" id="1">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Frame name="HealBot_Options_Panel6" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<Frame name="HealBot_Options_BuffFrame">
|
||||
<Size>
|
||||
<AbsDimension y="330"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="50" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-50" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_BuffPanel_Text" text="Buff Settings" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff2" inherits="UIDropDownMenuTemplate" id="2">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff2Text" text="HEALBOT_OPTIONS_BUFF2" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff2Self" inherits="OptionsCheckButtonTemplate" id="2">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff2" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff3" inherits="UIDropDownMenuTemplate" id="3">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff3Text" text="HEALBOT_OPTIONS_BUFF3" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff2" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff3Self" inherits="OptionsCheckButtonTemplate" id="3">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff3" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff4" inherits="UIDropDownMenuTemplate" id="4">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff4Text" text="HEALBOT_OPTIONS_BUFF4" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff3" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff4Self" inherits="OptionsCheckButtonTemplate" id="4">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff4" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff5" inherits="UIDropDownMenuTemplate" id="5">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff5Text" text="HEALBOT_OPTIONS_BUFF5" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffWatchInCombat" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="160" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff5Self" inherits="OptionsCheckButtonTemplate" id="5">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff5" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff6" inherits="UIDropDownMenuTemplate" id="6">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff6Text" text="HEALBOT_OPTIONS_BUFF6" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff5" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff6Self" inherits="OptionsCheckButtonTemplate" id="6">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff6" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff7" inherits="UIDropDownMenuTemplate" id="7">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff7Text" text="HEALBOT_OPTIONS_BUFF7" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff6" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff7Self" inherits="OptionsCheckButtonTemplate" id="7">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff7" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_Buff8" inherits="UIDropDownMenuTemplate" id="8">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff8Text" text="HEALBOT_OPTIONS_BUFF8" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff7" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad> HealBot_Options_Buff_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff8Self" inherits="OptionsCheckButtonTemplate" id="8">
|
||||
<Size><AbsDimension x="20" y="20"/></Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff8" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="40" y="18"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
</Frames>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
|
||||
<CheckButton name="HealBot_Options_BuffWatch" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffFrame" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCH)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffWatch_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_Options_BuffWatchInCombat" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffWatch" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCHINCOMBAT)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffWatchInCombat_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Column 1 (Buffs 1-4) -->
|
||||
<Frame name="HealBot_Options_Buff1" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff1Text" text="HEALBOT_OPTIONS_BUFF1" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BuffWatchInCombat" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff1Self" inherits="UICheckButtonTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff2" inherits="UIDropDownMenuTemplate" id="2">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff2Text" text="HEALBOT_OPTIONS_BUFF2" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff2Self" inherits="UICheckButtonTemplate" id="2">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff2" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff3" inherits="UIDropDownMenuTemplate" id="3">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff3Text" text="HEALBOT_OPTIONS_BUFF3" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff2" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff3Self" inherits="UICheckButtonTemplate" id="3">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff3" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff4" inherits="UIDropDownMenuTemplate" id="4">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff4Text" text="HEALBOT_OPTIONS_BUFF4" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff3" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff4Self" inherits="UICheckButtonTemplate" id="4">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff4" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- Column 2 (Buffs 5-8, anchored relative to Buff 1) -->
|
||||
<Frame name="HealBot_Options_Buff5" inherits="UIDropDownMenuTemplate" id="5">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff5Text" text="HEALBOT_OPTIONS_BUFF5" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="60" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff5Self" inherits="UICheckButtonTemplate" id="5">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff5" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff6" inherits="UIDropDownMenuTemplate" id="6">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff6Text" text="HEALBOT_OPTIONS_BUFF6" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff5" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff6Self" inherits="UICheckButtonTemplate" id="6">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff6" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff7" inherits="UIDropDownMenuTemplate" id="7">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff7Text" text="HEALBOT_OPTIONS_BUFF7" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff6" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff7Self" inherits="UICheckButtonTemplate" id="7">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff7" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_Buff8" inherits="UIDropDownMenuTemplate" id="8">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_Options_Buff8Text" text="HEALBOT_OPTIONS_BUFF8" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-10" y="15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff7" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-28"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_Buff_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_Buff8Self" inherits="UICheckButtonTemplate" id="8">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff8" relativePoint="TOPLEFT">
|
||||
<Offset><AbsDimension x="145" y="8"/></Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_BuffSelf_OnLoad(this)</OnLoad>
|
||||
<OnClick>HealBot_Options_BuffSelf_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
</Frames>
|
||||
</Frame>
|
||||
</Ui>
|
||||
|
||||
+7
-25
@@ -45,9 +45,9 @@ function HealBot_WarningSound_OnClick(this,id)
|
||||
end
|
||||
-- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel.
|
||||
function HealBot_Options_CDCMonitor_DropDown()
|
||||
for i=1, getn(HealBot_Options_CDCMonitor_List), 1 do
|
||||
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
|
||||
local info = {};
|
||||
info.text = HealBot_Options_CDCMonitor_List[i];
|
||||
info.text = HealBot_Options_EmergencyFilter_List[i];
|
||||
info.func = HealBot_Options_CDCMonitor_OnSelect;
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
@@ -85,7 +85,7 @@ function HealBot_Options_CDCMonitor_Reset()
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = 0;
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = 0;
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = 0;
|
||||
if HealBot_Config.CDCMonitor==2 then
|
||||
if HealBot_Config.CDCMonitor==1 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = 1;
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = 1;
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = 1;
|
||||
@@ -95,25 +95,7 @@ function HealBot_Options_CDCMonitor_Reset()
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = 1;
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = 1;
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==3 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==4 then
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==5 then
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==6 then
|
||||
HealBot_CDCInc[HEALBOT_PALADIN] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==7 then
|
||||
HealBot_CDCInc[HEALBOT_PRIEST] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==8 then
|
||||
HealBot_CDCInc[HEALBOT_ROGUE] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==9 then
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==10 then
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==11 then
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = 1;
|
||||
elseif HealBot_Config.CDCMonitor==12 then
|
||||
elseif HealBot_Config.CDCMonitor==2 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = HealBot_Config.EmergIncMelee[HEALBOT_DRUID];
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncMelee[HEALBOT_HUNTER];
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = HealBot_Config.EmergIncMelee[HEALBOT_MAGE];
|
||||
@@ -123,7 +105,7 @@ function HealBot_Options_CDCMonitor_Reset()
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN];
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK];
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.CDCMonitor==13 then
|
||||
elseif HealBot_Config.CDCMonitor==3 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = HealBot_Config.EmergIncRange[HEALBOT_DRUID];
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncRange[HEALBOT_HUNTER];
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = HealBot_Config.EmergIncRange[HEALBOT_MAGE];
|
||||
@@ -133,7 +115,7 @@ function HealBot_Options_CDCMonitor_Reset()
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncRange[HEALBOT_SHAMAN];
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncRange[HEALBOT_WARLOCK];
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncRange[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.CDCMonitor==14 then
|
||||
elseif HealBot_Config.CDCMonitor==4 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = HealBot_Config.EmergIncHealers[HEALBOT_DRUID];
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncHealers[HEALBOT_HUNTER];
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = HealBot_Config.EmergIncHealers[HEALBOT_MAGE];
|
||||
@@ -143,7 +125,7 @@ function HealBot_Options_CDCMonitor_Reset()
|
||||
HealBot_CDCInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN];
|
||||
HealBot_CDCInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK];
|
||||
HealBot_CDCInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.CDCMonitor==15 then
|
||||
elseif HealBot_Config.CDCMonitor==5 then
|
||||
HealBot_CDCInc[HEALBOT_DRUID] = HealBot_Config.EmergIncCustom[HEALBOT_DRUID];
|
||||
HealBot_CDCInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncCustom[HEALBOT_HUNTER];
|
||||
HealBot_CDCInc[HEALBOT_MAGE] = HealBot_Config.EmergIncCustom[HEALBOT_MAGE];
|
||||
|
||||
+23
-41
@@ -9,7 +9,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="-20" y="-30" />
|
||||
<AbsDimension x="40" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -45,13 +45,7 @@
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_CureDispelCleanse" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_CureDispelCleanse">
|
||||
<Size>
|
||||
<AbsDimension y="110"/>
|
||||
</Size>
|
||||
@@ -83,9 +77,9 @@
|
||||
</Frame>
|
||||
<Frame name="HealBot_Options_CDCButLeft" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOP" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="150" y="-35" />
|
||||
<AbsDimension x="40" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -93,9 +87,9 @@
|
||||
<Layer level="OVERLAY">
|
||||
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCLEFT">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||
<Anchor point="RIGHT" relativeTo="HealBot_Options_CDCButLeft" relativePoint="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-42"/>
|
||||
<AbsDimension x="-5" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -110,9 +104,9 @@
|
||||
</Frame>
|
||||
<Frame name="HealBot_Options_CDCButRight" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOP" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="150" y="-67" />
|
||||
<AbsDimension x="40" y="-67" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -120,9 +114,9 @@
|
||||
<Layer level="OVERLAY">
|
||||
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCRIGHT">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||
<Anchor point="RIGHT" relativeTo="HealBot_Options_CDCButRight" relativePoint="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-74"/>
|
||||
<AbsDimension x="-5" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -136,13 +130,7 @@
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<Frame name="HealBot_Options_CureDispelCleanseCol" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_CureDispelCleanseCol">
|
||||
<Size>
|
||||
<AbsDimension y="95"/>
|
||||
</Size>
|
||||
@@ -177,9 +165,9 @@
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-35"/>
|
||||
<AbsDimension x="-2" y="-35"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -192,9 +180,9 @@
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-35"/>
|
||||
<AbsDimension x="-2" y="-35"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -269,9 +257,9 @@
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-65"/>
|
||||
<AbsDimension x="-2" y="-65"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -284,9 +272,9 @@
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-65"/>
|
||||
<AbsDimension x="-2" y="-65"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -356,13 +344,7 @@
|
||||
<BarColor r="0" g="1" b="0"/>
|
||||
</StatusBar>
|
||||
|
||||
<Frame name="HealBot_Options_CureDispelCleanseWarn" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_CureDispelCleanseWarn">
|
||||
<Size>
|
||||
<AbsDimension y="120"/>
|
||||
</Size>
|
||||
@@ -394,9 +376,9 @@
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_ShowDebuffWarning" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseWarn" relativePoint="TOPLEFT">
|
||||
<Anchor point="TOP" relativeTo="HealBot_Options_CureDispelCleanseWarn" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="70" y="-35" />
|
||||
<AbsDimension x="-90" y="-35" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -409,7 +391,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowDebuffWarning" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
+288
-284
@@ -2,288 +2,292 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||
<Script file="HealBot_Options_Chat.lua" />
|
||||
<Frame name="HealBot_Options_Panel7" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<!-- Chat Message 1 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg1_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[1].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg1_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg1_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(1, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg1_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg1_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[1].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<!-- Chat Message 2 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg2_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-90" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[2].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg2_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg2_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(2, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg2_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg2_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[2].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<!-- Chat Message 3 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg3_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-150" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[3].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg3_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg3_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(3, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg3_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg3_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[3].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<!-- Chat Message 4 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg4_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-210" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[4].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg4_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg4_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(4, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg4_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg4_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[4].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<!-- Chat Message 5 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg5_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-270" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[5].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg5_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg5_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(5, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg5_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg5_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[5].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
</Frames>
|
||||
</Frame>
|
||||
<Frame name="HealBot_Options_Panel7" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<!-- Chat Message 1 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg1_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="120" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[1].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg1_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg1_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(1, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg1_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg1_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[1].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<!-- Chat Message 2 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg2_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg1_Text" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[2].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg2_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg2_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(2, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg2_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg2_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[2].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<!-- Chat Message 3 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg3_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg2_Text" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[3].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg3_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg3_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(3, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg3_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg3_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[3].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<!-- Chat Message 4 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg4_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg3_Text" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[4].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg4_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg4_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(4, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg4_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg4_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[4].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<!-- Chat Message 5 -->
|
||||
<EditBox name="HealBot_Options_ChatMsg5_Spell" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg4_Text" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[5].Spell = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<Button name="HealBot_Options_ChatMsg5_Channel" inherits="UIPanelButtonTemplate" text="None">
|
||||
<Size>
|
||||
<AbsDimension x="80" y="22"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg5_Spell" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
HealBot_Options_ChatMsg_Channel_OnClick(5, this);
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="HealBot_Options_ChatMsg5_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||
<Size>
|
||||
<AbsDimension x="300" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg5_Spell" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
if HealBot_Config.ChatMessages then
|
||||
HealBot_Config.ChatMessages[5].Message = this:GetText();
|
||||
end
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
</Frames>
|
||||
</Frame>
|
||||
</Ui>
|
||||
@@ -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],
|
||||
@@ -203,13 +227,30 @@ function HealBot_SetSkinColours()
|
||||
end
|
||||
|
||||
-- 5. Update Text Labels
|
||||
HealBot_EnTextColorpickt:SetTextHeight(btextheight)
|
||||
HealBot_DisTextColorpickt:SetTextHeight(btextheight)
|
||||
HealBot_DebTextColorpickt:SetTextHeight(btextheight)
|
||||
|
||||
HealBot_EnTextColorpickt:SetText(HEALBOT_SKIN_ENTEXT)
|
||||
HealBot_DisTextColorpickt:SetText(HEALBOT_SKIN_DISTEXT)
|
||||
HealBot_DebTextColorpickt:SetText(HEALBOT_SKIN_DEBTEXT)
|
||||
local bfont = (HealBot_Config.bfont and HealBot_Config.bfont[skin]) or "Fonts\\FRIZQT__.TTF"
|
||||
local fontOutline = (HealBot_Config.bfontoutline and HealBot_Config.bfontoutline[skin]) or 0
|
||||
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
|
||||
|
||||
if HealBot_EnTextColorpickt then
|
||||
HealBot_EnTextColorpickt:SetFont(bfont, btextheight, expectedFlags)
|
||||
HealBot_EnTextColorpickt:SetText(HEALBOT_SKIN_ENTEXT)
|
||||
end
|
||||
if HealBot_DisTextColorpickt then
|
||||
HealBot_DisTextColorpickt:SetFont(bfont, btextheight, expectedFlags)
|
||||
HealBot_DisTextColorpickt:SetText(HEALBOT_SKIN_DISTEXT)
|
||||
end
|
||||
if HealBot_DebTextColorpickt then
|
||||
HealBot_DebTextColorpickt:SetFont(bfont, btextheight, expectedFlags)
|
||||
HealBot_DebTextColorpickt:SetText(HEALBOT_SKIN_DEBTEXT)
|
||||
end
|
||||
if HealBot_MaxHPColorpickt then
|
||||
HealBot_MaxHPColorpickt:SetFont(bfont, btextheight, expectedFlags)
|
||||
HealBot_MaxHPColorpickt:SetText(HEALBOT_SKIN_MAXHPTEXT or "Max HP")
|
||||
end
|
||||
if HealBot_MinHPColorpickt then
|
||||
HealBot_MinHPColorpickt:SetFont(bfont, btextheight, expectedFlags)
|
||||
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()
|
||||
|
||||
+17
-23
@@ -10,7 +10,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="31" y="-40" />
|
||||
<AbsDimension x="60" y="-40" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -23,7 +23,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionLocked" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -36,7 +36,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GrowUpwards" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -49,7 +49,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionLocked" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="200" y="0" />
|
||||
<AbsDimension x="280" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -62,7 +62,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GrowUpwards" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="200" y="0" />
|
||||
<AbsDimension x="280" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -75,7 +75,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionMouseover" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="200" y="0" />
|
||||
<AbsDimension x="280" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -94,20 +94,14 @@
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="HealBot_Options_GenFrame" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_GenFrame">
|
||||
<Size>
|
||||
<AbsDimension y="95"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="21" y="-135"/>
|
||||
<AbsDimension x="60" y="-135"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPRIGHT">
|
||||
@@ -122,7 +116,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="130" y="-12" />
|
||||
<AbsDimension x="280" y="-12" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -134,7 +128,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="10" y="-30" />
|
||||
<AbsDimension x="0" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -156,7 +150,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="180" y="0" />
|
||||
<AbsDimension x="280" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -178,7 +172,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-2" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -203,7 +197,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GenFrame" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="10" y="-10" />
|
||||
<AbsDimension x="0" y="-10" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -216,7 +210,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideOptions" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-2" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -229,7 +223,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideAbort" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-2" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -242,7 +236,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_QualityRange" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-2" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -255,7 +249,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ProtectPvP" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-2" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
@@ -102,7 +102,7 @@ function HealBot_Options_EFClass_OnClick(this)
|
||||
HealBot_Config.EmergIncCustom[HEALBOT_WARLOCK] = HealBot_Options_EFClassWarlock:GetChecked() or 0;
|
||||
HealBot_Config.EmergIncCustom[HEALBOT_WARRIOR] = HealBot_Options_EFClassWarrior:GetChecked() or 0;
|
||||
end
|
||||
if HealBot_Config.EmergIncMonitor>10 then
|
||||
if HealBot_Config.EmergIncMonitor > 1 then
|
||||
HealBot_Action_PartyChanged();
|
||||
end
|
||||
end
|
||||
|
||||
+18
-30
@@ -5,13 +5,7 @@
|
||||
<Frame name="HealBot_Options_Panel3" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
|
||||
<Frame name="HealBot_Options_HealTargetFrame" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_HealTargetFrame">
|
||||
<Size>
|
||||
<AbsDimension y="88"/>
|
||||
</Size>
|
||||
@@ -32,9 +26,9 @@
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_HealButtons_Text" text="HEALBOT_OPTIONS_HEAL_BUTTONS" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="100" y="-8" />
|
||||
<AbsDimension x="0" y="-8" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -47,7 +41,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-21" />
|
||||
<AbsDimension x="85" y="-21" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -60,7 +54,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5" />
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -86,7 +80,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="122" y="5" />
|
||||
<AbsDimension x="122" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -99,7 +93,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="244" y="5" />
|
||||
<AbsDimension x="244" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -114,9 +108,9 @@
|
||||
|
||||
<Slider name="HealBot_Options_AlertLevel" inherits="HealBot_Options_SliderTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="45" y="-132" />
|
||||
<AbsDimension x="0" y="-132" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -142,9 +136,9 @@
|
||||
|
||||
<Frame name="HealBot_Options_EmergencyFilter" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="155" y="-205" />
|
||||
<AbsDimension x="40" y="-205" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -170,9 +164,9 @@
|
||||
|
||||
<Frame name="HealBot_Options_ExtraSort" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="155" y="-238" />
|
||||
<AbsDimension x="40" y="-238" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -198,9 +192,9 @@
|
||||
|
||||
<Frame name="HealBot_Options_HealthText" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="155" y="-271" />
|
||||
<AbsDimension x="40" y="-271" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -224,13 +218,7 @@
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<Frame name="HealBot_Options_EmergLFrame" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_EmergLFrame">
|
||||
<Size>
|
||||
<AbsDimension y="125"/>
|
||||
</Size>
|
||||
@@ -251,9 +239,9 @@
|
||||
|
||||
<Frame name="HealBot_Options_EmergencyFClass" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="128" y="-10" />
|
||||
<AbsDimension x="40" y="-10" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
@@ -4,4 +4,5 @@ function HealBot_Options_Integrations_OnShow(this)
|
||||
HealBot_Options_Integrations_Nampower:SetChecked(HealBot_Config.HealBot_Integrations_Nampower);
|
||||
HealBot_Options_Integrations_SuperWoW:SetChecked(HealBot_Config.HealBot_Integrations_SuperWoW);
|
||||
HealBot_Options_Integrations_ClassicAPI:SetChecked(HealBot_Config.HealBot_Integrations_ClassicAPI);
|
||||
HealBot_Options_Integrations_ShowHoTTimers:SetChecked(HealBot_Config.HealBot_Integrations_ShowHoTTimers);
|
||||
end
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="31" y="-40"/>
|
||||
<AbsDimension x="100" y="-35"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -27,7 +27,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_UnitXP" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5"/>
|
||||
<AbsDimension x="0" y="-6"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -44,9 +44,9 @@
|
||||
|
||||
<CheckButton name="HealBot_Options_Integrations_SuperWoW" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_Nampower" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="31" y="-145"/>
|
||||
<AbsDimension x="0" y="-60"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -65,7 +65,7 @@
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_SuperWoW" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5"/>
|
||||
<AbsDimension x="0" y="-6"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
@@ -80,22 +80,52 @@
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_Options_Integrations_ShowHoTTimers" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_ClassicAPI" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-6"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
getglobal(this:GetName().."Text"):SetText("Track Player HoT Timers");
|
||||
</OnLoad>
|
||||
<OnClick>
|
||||
HealBot_Config.HealBot_Integrations_ShowHoTTimers = this:GetChecked() and 1 or 0;
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame setAllPoints="true">
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="HealBot_Options_Integrations_NampowerInfo" inherits="GameFontHighlightSmall" justifyH="LEFT" justifyV="TOP" text="Note: For the 1-click Shapeshift auto-unshift to work smoothly, you must ENABLE 'Retry server rejected spells' in Nampower ENABLE Queue Instant Cast Spells and Queue Cast Time Spells.">
|
||||
<Size x="340" y="48"/>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_Nampower" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Color r="0.7" g="0.7" b="0.7"/>
|
||||
</FontString>
|
||||
<FontString name="HealBot_Options_Integrations_HoTInfo" inherits="GameFontHighlightSmall" justifyH="LEFT" justifyV="TOP" text="Note: HoT Timers require Nampower to be enabled and active to provide accurate aura times.">
|
||||
<Size x="340" y="30"/>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Integrations_ShowHoTTimers" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Color r="0.7" g="0.7" b="0.7"/>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
</Frames>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="HealBot_Options_Integrations_NampowerInfo" inherits="GameFontHighlightSmall" justifyH="LEFT" justifyV="TOP" text="Note: For the 1-click Shapeshift auto-unshift to work smoothly, you must ENABLE 'Retry server rejected spells' in Nampower ENABLE Queue Instant Cast Spells and Queue Cast Time Spells.">
|
||||
<Size x="330" y="30"/>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="65" y="-95"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Color r="0.7" g="0.7" b="0.7"/>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Scripts>
|
||||
<OnShow>
|
||||
HealBot_Options_Integrations_OnShow(this);
|
||||
|
||||
+109
-7
@@ -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
|
||||
@@ -8,15 +43,41 @@ function HealBot_Options_BarMaxRowsS_OnValueChanged(this)
|
||||
HealBot_Action_PartyChanged()
|
||||
end
|
||||
|
||||
-- HealBot_Options_GridOrientation_OnClick: UI handler for OnClick options panel.
|
||||
function HealBot_Options_GridOrientation_OnClick(this)
|
||||
function HealBot_Options_GridOrientationDD_OnLoad(this)
|
||||
UIDropDownMenu_Initialize(this, HealBot_Options_GridOrientationDD_Initialize);
|
||||
UIDropDownMenu_SetWidth(110, this);
|
||||
end
|
||||
|
||||
function HealBot_Options_GridOrientationDD_Initialize()
|
||||
local orient = HealBot_Config.GridOrientation and HealBot_Config.GridOrientation[HealBot_Config.Current_Skin] or 1;
|
||||
local info = {};
|
||||
info.text = "Vertical (Columns)";
|
||||
info.func = HealBot_Options_GridOrientationDD_OnClick;
|
||||
info.value = 1;
|
||||
info.checked = (orient == 1);
|
||||
UIDropDownMenu_AddButton(info);
|
||||
|
||||
info = {};
|
||||
info.text = "Horizontal (Rows)";
|
||||
info.func = HealBot_Options_GridOrientationDD_OnClick;
|
||||
info.value = 2;
|
||||
info.checked = (orient == 2);
|
||||
UIDropDownMenu_AddButton(info);
|
||||
end
|
||||
|
||||
function HealBot_Options_GridOrientationDD_OnClick()
|
||||
UIDropDownMenu_SetSelectedID(HealBot_Options_GridOrientation_Dropdown, this:GetID());
|
||||
if not HealBot_Config.GridOrientation then HealBot_Config.GridOrientation = {} end
|
||||
if this:GetChecked() then
|
||||
HealBot_Config.GridOrientation[HealBot_Config.Current_Skin] = 2 -- Horizontal
|
||||
else
|
||||
HealBot_Config.GridOrientation[HealBot_Config.Current_Skin] = 1 -- Vertical
|
||||
end
|
||||
HealBot_Config.GridOrientation[HealBot_Config.Current_Skin] = this.value;
|
||||
HealBot_Action_PartyChanged()
|
||||
|
||||
if (this.value == 2) then
|
||||
HealBot_Options_BarMaxRowsS:Hide();
|
||||
HealBot_Options_BarNumColsS:Show();
|
||||
else
|
||||
HealBot_Options_BarMaxRowsS:Show();
|
||||
HealBot_Options_BarNumColsS:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
-- HealBot_Options_NewSkin_OnTextChanged: UI handler for OnTextChanged options panel.
|
||||
@@ -71,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();
|
||||
@@ -118,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;
|
||||
@@ -158,3 +244,19 @@ function HealBot_Options_Skins_OnSelect()
|
||||
HealBot_Options_SetSkins()
|
||||
end
|
||||
end
|
||||
|
||||
function HealBot_Options_TestBarsButton_OnClick(this)
|
||||
if HealBot_Config.TestBarsOn then
|
||||
HealBot_Config.TestBarsOn = false
|
||||
this:SetText(HEALBOT_OPTIONS_TESTBARS.." OFF")
|
||||
else
|
||||
HealBot_Config.TestBarsOn = true
|
||||
this:SetText(HEALBOT_OPTIONS_TESTBARS.." ON")
|
||||
end
|
||||
HealBot_Action_PartyChanged()
|
||||
end
|
||||
|
||||
function HealBot_Options_NumTestBars_OnValueChanged(this)
|
||||
HealBot_Config.numTestBars = this:GetValue()
|
||||
if HealBot_Config.TestBarsOn then HealBot_Action_PartyChanged() end
|
||||
end
|
||||
|
||||
+460
-540
File diff suppressed because it is too large
Load Diff
+283
-271
@@ -2,307 +2,319 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||
<Script file="HealBot_Options_Spells.lua" />
|
||||
<Frame name="HealBot_Options_Panel2" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<Frame name="HealBot_Options_KeysFrame" inherits="OptionFrameBoxTemplate">
|
||||
<Frame name="HealBot_Options_Panel2" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||
<Frames>
|
||||
<Frame name="HealBot_Options_KeysFrame">
|
||||
<Size>
|
||||
<AbsDimension y="268"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="21" y="-30"/>
|
||||
<AbsDimension x="20" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-21" y="0"/>
|
||||
<AbsDimension x="-20" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_ComboButtons_ButtonText1" text="HEALBOT_OPTIONS_USEBUTTONS" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="110" y="-10" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
<Slider name="HealBot_Options_Dummy" hidden="true" inherits="HealBot_Options_SliderTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Slider>
|
||||
<Frame name="HealBot_Options_ComboClassButton">
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_ComboButtons_ButtonText" text="HEALBOT_OPTIONS_COMBOBUTTON" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Dummy" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="-25" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
|
||||
<CheckButton name="HealBot_ComboButtons_Button1" inherits="SendMailRadioButtonTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Dummy" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="40" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONLEFT)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_ComboButtons_ButtonText1" text="HEALBOT_OPTIONS_USEBUTTONS" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
<Slider name="HealBot_Options_Dummy" hidden="true" inherits="HealBot_Options_SliderTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Slider>
|
||||
|
||||
<Frame name="HealBot_Options_ComboClassButton">
|
||||
<Size>
|
||||
<AbsDimension x="40" y="16"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Dummy" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-22"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<FontString name="HealBot_ComboButtons_ButtonText" text="HEALBOT_OPTIONS_COMBOBUTTON" inherits="GameFontNormalSmall">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
|
||||
<CheckButton name="HealBot_ComboButtons_Button2" inherits="SendMailRadioButtonTemplate" id="2">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button1" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="40" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONMIDDLE)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_ComboButtons_Button3" inherits="SendMailRadioButtonTemplate" id="3">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button2" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="50" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONRIGHT)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_ComboButtons_Button4" inherits="SendMailRadioButtonTemplate" id="4">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button1" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-18"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON4)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_ComboButtons_Button5" inherits="SendMailRadioButtonTemplate" id="5">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button4" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="55" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON5)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_ComboButtons_Button1" inherits="SendMailRadioButtonTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="HealBot_Options_ComboClassButton" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="5" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONLEFT)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<EditBox name="HealBot_Options_Click" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Dummy" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="-68"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CLICK)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Click_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<EditBox name="HealBot_Options_Shift" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Click" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFT)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Shift_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<EditBox name="HealBot_Options_Ctrl" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_Shift" relativePoint="BOTTOMRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CTRL)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Ctrl_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<EditBox name="HealBot_Options_ShiftCtrl" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_Ctrl" relativePoint="BOTTOMRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFTCTRL)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_ShiftCtrl_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
<CheckButton name="HealBot_Options_EnableHealthy" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShiftCtrl" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="25" y="-4" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_EnableHealthy_OnLoad(this,HEALBOT_OPTIONS_ENABLEHEALTHY)</OnLoad>
|
||||
<OnClick>HealBot_Options_EnableHealthy_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_ComboButtons_Button2" inherits="SendMailRadioButtonTemplate" id="2">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button1" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="40" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONMIDDLE)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_ComboButtons_Button3" inherits="SendMailRadioButtonTemplate" id="3">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button2" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="50" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONRIGHT)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_ComboButtons_Button4" inherits="SendMailRadioButtonTemplate" id="4">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button1" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON4)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_ComboButtons_Button5" inherits="SendMailRadioButtonTemplate" id="5">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_ComboButtons_Button2" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON5)</OnLoad>
|
||||
<OnClick>HealBot_ComboButtons_Button_OnClick(this,this:GetID())</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<EditBox name="HealBot_Options_Click" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Dummy" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-68"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CLICK)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Click_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<EditBox name="HealBot_Options_Shift" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Click" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFT)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Shift_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<EditBox name="HealBot_Options_Ctrl" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Shift" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CTRL)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_Ctrl_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<EditBox name="HealBot_Options_ShiftCtrl" inherits="HealBot_Options_EditBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Ctrl" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFTCTRL)
|
||||
</OnLoad>
|
||||
<OnTextChanged>
|
||||
HealBot_Options_ShiftCtrl_OnTextChanged(this)
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<CheckButton name="HealBot_Options_EnableHealthy" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShiftCtrl" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_EnableHealthy_OnLoad(this,HEALBOT_OPTIONS_ENABLEHEALTHY)</OnLoad>
|
||||
<OnClick>HealBot_Options_EnableHealthy_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<Frame name="HealBot_Options_TooltipsPanel" inherits="OptionFrameBoxTemplate">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||
this:SetBackdropColor(0, 0, 0, 0);
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frame name="HealBot_Options_TooltipsPanel">
|
||||
<Size>
|
||||
<AbsDimension y="118"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EnableHealthy" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-300"/>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="TOPRIGHT">
|
||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_ShiftCtrl" relativePoint="BOTTOMRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-20" y="-180"/>
|
||||
<AbsDimension x="0" y="-12"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Frames>
|
||||
<CheckButton name="HealBot_Options_ShowTooltip" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_TooltipsPanel" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-4" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltip_OnLoad(this,HEALBOT_OPTIONS_SHOWTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltip_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frame name="HealBot_Options_TooltipPos" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowTooltip" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="68" y="-2" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_TooltipPos_OnLoad(this) </OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
<CheckButton name="HealBot_Options_ShowTooltipTarget" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_TooltipsPanel" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-30" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipTarget_OnLoad(this,HEALBOT_OPTIONS_SHOWUNITTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipTarget_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_Options_ShowTooltipSpellDetail" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_TooltipsPanel" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-55" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipSpellDetail_OnLoad(this,HEALBOT_OPTIONS_SHOWDETTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipSpellDetail_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_Options_ShowTooltipInstant" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_TooltipsPanel" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-80" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipInstant_OnLoad(this,HEALBOT_OPTIONS_SHOWRECTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipInstant_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<Frames>
|
||||
<CheckButton name="HealBot_Options_ShowTooltip" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltip_OnLoad(this,HEALBOT_OPTIONS_SHOWTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltip_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
</Frames>
|
||||
</Frame>
|
||||
<Frame name="HealBot_Options_TooltipPos" inherits="UIDropDownMenuTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="2"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_TooltipPos_OnLoad(this)</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<CheckButton name="HealBot_Options_ShowTooltipTarget" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowTooltip" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipTarget_OnLoad(this,HEALBOT_OPTIONS_SHOWUNITTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipTarget_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_Options_ShowTooltipSpellDetail" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowTooltipTarget" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipSpellDetail_OnLoad(this,HEALBOT_OPTIONS_SHOWDETTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipSpellDetail_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="HealBot_Options_ShowTooltipInstant" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowTooltipSpellDetail" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-4"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_ShowTooltipInstant_OnLoad(this,HEALBOT_OPTIONS_SHOWRECTOOLTIP)</OnLoad>
|
||||
<OnClick>HealBot_Options_ShowTooltipInstant_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
</Frames>
|
||||
</Frame>
|
||||
</Frames>
|
||||
</Frame>
|
||||
</Ui>
|
||||
|
||||
+362
-72
@@ -41,7 +41,12 @@ function HealBot_HealthColor(unit, hlth, maxhlth)
|
||||
return dr, dg, db, HealBot_Config.Barcola[HealBot_Config.Current_Skin];
|
||||
end
|
||||
|
||||
local text = UnitName(unit);
|
||||
local text
|
||||
if string.find(unit, "^Test") then
|
||||
text = HealBot_Model.units[unit] and HealBot_Model.units[unit].name or unit
|
||||
else
|
||||
text = UnitName(unit) or unit
|
||||
end
|
||||
if not HealBot_HealsIn[text] then
|
||||
HealBot_HealsIn[text] = 0;
|
||||
end
|
||||
@@ -64,18 +69,33 @@ function HealBot_HealthColor(unit, hlth, maxhlth)
|
||||
end
|
||||
|
||||
local colorMode = HealBot_Config.bcolormode[HealBot_Config.Current_Skin] or 1
|
||||
if colorMode == 2 and HealBot_Model and HealBot_Model.units[unit] and HealBot_Model.units[unit].englishClass and RAID_CLASS_COLORS and RAID_CLASS_COLORS[HealBot_Model.units[unit].englishClass] then
|
||||
if colorMode == 2 and string.find(unit, "pet") then
|
||||
r, g, b = 0.4, 0.9, 0.6 -- Mint color
|
||||
elseif colorMode == 2 and HealBot_Model and HealBot_Model.units[unit] and HealBot_Model.units[unit].englishClass and RAID_CLASS_COLORS and RAID_CLASS_COLORS[HealBot_Model.units[unit].englishClass] then
|
||||
local engClass = HealBot_Model.units[unit].englishClass
|
||||
r = RAID_CLASS_COLORS[engClass].r
|
||||
g = RAID_CLASS_COLORS[engClass].g
|
||||
b = RAID_CLASS_COLORS[engClass].b
|
||||
elseif colorMode == 2 and string.find(unit, "pet") then
|
||||
r, g, b = 0.4, 0.9, 0.6 -- Mint color
|
||||
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
|
||||
@@ -246,30 +266,49 @@ function HealBot_Action_EnableButton(button)
|
||||
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||
local fontName, fontHeight, fontFlags = bar.txt:GetFont()
|
||||
local fontOutline = HealBot_Config.bfontoutline[HealBot_Config.Current_Skin] or 0
|
||||
if fontOutline == 1 then
|
||||
bar.txt:SetFont(fontName, fontHeight, "OUTLINE")
|
||||
else
|
||||
bar.txt:SetFont(fontName, fontHeight, "")
|
||||
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
|
||||
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
|
||||
for i = 1, 10 do
|
||||
local icon = getglobal(button:GetName() .. "BarIcon" .. i)
|
||||
local icon = button["icon"..i]
|
||||
if not icon then
|
||||
icon = getglobal(button:GetName() .. "BarIcon" .. i)
|
||||
button["icon"..i] = icon
|
||||
end
|
||||
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()
|
||||
local currentTexture = icon:GetTexture()
|
||||
local newTexture = HealBot_UnitIcons[unit][i]
|
||||
if currentTexture ~= newTexture then
|
||||
icon:SetTexture(newTexture)
|
||||
end
|
||||
|
||||
if icon:GetWidth() ~= iconSize then
|
||||
icon:SetWidth(iconSize)
|
||||
icon:SetHeight(iconSize)
|
||||
end
|
||||
|
||||
if not icon:IsVisible() then
|
||||
icon:Show()
|
||||
end
|
||||
else
|
||||
icon:Hide()
|
||||
if icon:IsVisible() then
|
||||
icon:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local raidIcon = getglobal(button:GetName() .. "BarRaidIcon")
|
||||
if raidIcon then
|
||||
local index = GetRaidTargetIndex(unit)
|
||||
local index
|
||||
if not string.find(unit, "^Test") then
|
||||
index = GetRaidTargetIndex(unit)
|
||||
end
|
||||
if index then
|
||||
SetRaidTargetIconTexture(raidIcon, index)
|
||||
raidIcon:Show()
|
||||
@@ -298,15 +337,34 @@ end
|
||||
-- HealBot_Action_ResetSkin: Internal utility: HealBot_Action_ResetSkin
|
||||
function HealBot_Action_ResetSkin()
|
||||
HealBot_Action_PartyChanged()
|
||||
local skin = HealBot_Config.Current_Skin
|
||||
local bfont = (HealBot_Config.bfont and HealBot_Config.bfont[skin]) or "Fonts\\FRIZQT__.TTF"
|
||||
local btextheight = (HealBot_Config.btextheight and HealBot_Config.btextheight[skin]) or 10
|
||||
local fontOutline = (HealBot_Config.bfontoutline and HealBot_Config.bfontoutline[skin]) or 0
|
||||
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
|
||||
|
||||
if HealBot_Action_OptionsButton and HealBot_Action_OptionsButton:GetFontString() then
|
||||
HealBot_Action_OptionsButton:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
if HealBot_Action_AbortButton and HealBot_Action_AbortButton:GetFontString() then
|
||||
HealBot_Action_AbortButton:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
for j = 1, 20 do
|
||||
local headerobj = getglobal("HealBot_Action_Header" .. j)
|
||||
if headerobj and headerobj:GetFontString() then
|
||||
headerobj:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
end
|
||||
|
||||
if HealBot_Options:IsVisible() then
|
||||
HealBot_Action_SetTexture(HealBot_DiseaseColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_MagicColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_PoisonColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_CurseColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_EnTextColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_EnTextColorpickin, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_DisTextColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_DebTextColorpick, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||
HealBot_Action_SetTexture(HealBot_DiseaseColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_MagicColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_PoisonColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_CurseColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_EnTextColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_EnTextColorpickin, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_DisTextColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_Action_SetTexture(HealBot_DebTextColorpick, HealBot_Config.btexture[skin])
|
||||
HealBot_SetSkinColours()
|
||||
end
|
||||
end
|
||||
@@ -347,6 +405,13 @@ function HealBot_Action_PositionButton(button, OsetX, OsetY, bwidth, bheight, ch
|
||||
headerno = headerno + 1;
|
||||
local headerobj = getglobal("HealBot_Action_Header" .. headerno);
|
||||
headerobj:SetText(header)
|
||||
local bfont = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or "Fonts\\FRIZQT__.TTF"
|
||||
local btextheight = (HealBot_Config.btextheight and HealBot_Config.btextheight[HealBot_Config.Current_Skin]) or 10
|
||||
local fontOutline = (HealBot_Config.bfontoutline and HealBot_Config.bfontoutline[HealBot_Config.Current_Skin]) or 0
|
||||
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
|
||||
if headerobj:GetFontString() then
|
||||
headerobj:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
headerobj:Show();
|
||||
headerobj:ClearAllPoints();
|
||||
headerobj:SetHeight(bheight);
|
||||
@@ -383,6 +448,13 @@ function HealBot_Action_PositionButtonHorizontal(button, OsetX, OsetY, bwidth, b
|
||||
headerno = headerno + 1;
|
||||
local headerobj = getglobal("HealBot_Action_Header" .. headerno);
|
||||
headerobj:SetText(header)
|
||||
local bfont = (HealBot_Config.bfont and HealBot_Config.bfont[HealBot_Config.Current_Skin]) or "Fonts\\FRIZQT__.TTF"
|
||||
local btextheight = (HealBot_Config.btextheight and HealBot_Config.btextheight[HealBot_Config.Current_Skin]) or 10
|
||||
local fontOutline = (HealBot_Config.bfontoutline and HealBot_Config.bfontoutline[HealBot_Config.Current_Skin]) or 0
|
||||
local expectedFlags = fontOutline == 1 and "OUTLINE" or ""
|
||||
if headerobj:GetFontString() then
|
||||
headerobj:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
headerobj:Show();
|
||||
headerobj:ClearAllPoints();
|
||||
headerobj:SetHeight(bheight);
|
||||
@@ -441,8 +513,10 @@ end
|
||||
-- HealBot_Action_SetHealButton: Assigns a unit string to a grid button slot.
|
||||
function HealBot_Action_SetHealButton(index, unit)
|
||||
if not index then
|
||||
HealBot_Action_HealButtons = {};
|
||||
HealBot_Action_UnitButtons = {};
|
||||
for k in pairs(HealBot_Action_HealButtons) do HealBot_Action_HealButtons[k] = nil end
|
||||
for k in pairs(HealBot_Action_UnitButtons) do
|
||||
HealBot_Action_UnitButtons[k] = nil
|
||||
end
|
||||
return nil
|
||||
end
|
||||
local button = getglobal("HealBot_Action_HealUnit" .. index);
|
||||
@@ -495,10 +569,12 @@ function HealBot_Action_PartyChanged()
|
||||
end
|
||||
end
|
||||
|
||||
for j = 1, 15 do
|
||||
for j = 1, 20 do
|
||||
local headerobj = getglobal("HealBot_Action_Header" .. j);
|
||||
headerobj:SetText(" ")
|
||||
headerobj:Hide();
|
||||
if headerobj then
|
||||
headerobj:SetText(" ")
|
||||
headerobj:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
local bwidth = HealBot_Config.bwidth[HealBot_Config.Current_Skin] or 85;
|
||||
@@ -524,7 +600,52 @@ function HealBot_Action_PartyChanged()
|
||||
local i = 0;
|
||||
local last = 0;
|
||||
local GroupValid = numBars;
|
||||
last = last + 6
|
||||
if HealBot_Config.TestBarsOn then
|
||||
local testBars = HealBot_Config.numTestBars or 25
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = HEALBOT_OPTIONS_TESTBARS or "Test Bars"
|
||||
end
|
||||
local testClasses = {"PRIEST", "DRUID", "SHAMAN", "PALADIN", "WARRIOR", "MAGE", "WARLOCK", "HUNTER", "ROGUE"}
|
||||
local testNames = {"Arthas", "Illidan", "Sylvanas", "Thrall", "Jaina", "Uther", "Grommash", "Malfurion", "Tyrande", "Guldan", "Kael", "Rexxar", "Varian", "Voljin", "Baine"}
|
||||
for j = 1, testBars do
|
||||
i = i + 1
|
||||
local unit = "Test" .. j
|
||||
HealBot_Action_SetHealButton(i, unit)
|
||||
if not HealBot_Model.units[unit] then
|
||||
local rClass = testClasses[math.random(1, #testClasses)]
|
||||
local rName = testNames[math.random(1, #testNames)] .. j
|
||||
local mHealth = math.random(4000, 8000)
|
||||
local cHealth = math.random(1, mHealth)
|
||||
local pt = 0
|
||||
if rClass == "WARRIOR" then pt = 1 elseif rClass == "ROGUE" then pt = 3 end
|
||||
HealBot_Model.units[unit] = { name = rName, guid = "TestGuid"..j, class = rClass, englishClass = rClass, health = cHealth, maxHealth = mHealth, mana = 2000, maxMana = 4000, powerType = pt, incomingHeal = 0, hasAggro = false, range = 1 }
|
||||
if not HealBot_UnitIcons then HealBot_UnitIcons = {} end
|
||||
HealBot_UnitIcons[unit] = {}
|
||||
local testIcons = {
|
||||
"Interface\\Icons\\Spell_Holy_Renew",
|
||||
"Interface\\Icons\\Spell_Nature_Rejuvenation",
|
||||
"Interface\\Icons\\Spell_Nature_ResistNature", -- Regrowth
|
||||
"Interface\\Icons\\Spell_Holy_PowerWordShield",
|
||||
"Interface\\Icons\\Spell_Holy_Excorcism" -- Fear Ward
|
||||
}
|
||||
-- Shuffle icons
|
||||
for k = #testIcons, 2, -1 do
|
||||
local j = math.random(k)
|
||||
testIcons[k], testIcons[j] = testIcons[j], testIcons[k]
|
||||
end
|
||||
local numIcons = math.random(0, 3)
|
||||
for k = 1, numIcons do
|
||||
HealBot_UnitIcons[unit][k] = testIcons[k]
|
||||
end
|
||||
end
|
||||
numBars = numBars + 1
|
||||
end
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
numBars = numBars + 1
|
||||
numHeaders = numHeaders + 1
|
||||
end
|
||||
else
|
||||
last = last + 6
|
||||
if HealBot_Config.GroupHeals == 1 then
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = HEALBOT_OPTIONS_GROUPHEALS
|
||||
@@ -837,44 +958,47 @@ function HealBot_Action_PartyChanged()
|
||||
HeaderPos[i + 1] = nil;
|
||||
numBars = numBars - 1;
|
||||
end
|
||||
HealBot_ReleaseTable(order);
|
||||
HealBot_ReleaseTable(units);
|
||||
end
|
||||
|
||||
last = last + 40
|
||||
local PetsValid = numBars;
|
||||
if HealBot_Config.PetHeals == 1 then
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = HEALBOT_OPTIONS_PETHEALS
|
||||
numBars = numBars + 1;
|
||||
numHeaders = numHeaders + 1;
|
||||
end
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
local unit = "raidpet" .. j;
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
else
|
||||
local petUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
||||
for _, unit in ipairs(petUnits) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
end
|
||||
HealBot_ReleaseTable(order);
|
||||
HealBot_ReleaseTable(units);
|
||||
last = last + 40
|
||||
local PetsValid = numBars;
|
||||
if HealBot_Config.PetHeals == 1 then
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = HEALBOT_OPTIONS_PETHEALS
|
||||
numBars = numBars + 1;
|
||||
numHeaders = numHeaders + 1;
|
||||
end
|
||||
if numBars == PetsValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[PetsValid + 1] = nil;
|
||||
numBars = numBars - 1;
|
||||
numHeaders = numHeaders - 1;
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
local unit = "raidpet" .. j;
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
else
|
||||
if not HealBot_PetUnits then
|
||||
HealBot_PetUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
||||
end
|
||||
for _, unit in ipairs(HealBot_PetUnits) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
end
|
||||
end
|
||||
if numBars == PetsValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[PetsValid + 1] = nil;
|
||||
numBars = numBars - 1;
|
||||
numHeaders = numHeaders - 1;
|
||||
end
|
||||
|
||||
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||
local OffsetY = bpadding;
|
||||
@@ -988,10 +1112,17 @@ function HealBot_Action_PartyChanged()
|
||||
HealBot_Grid_Limit = limit;
|
||||
HealBot_Grid_NumBars = numBars;
|
||||
|
||||
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 ""
|
||||
|
||||
if HealBot_Config.HideOptions == 1 then
|
||||
HealBot_Action_OptionsButton:Hide();
|
||||
else
|
||||
HealBot_Action_OptionsButton:SetPoint("BOTTOM", "HealBot_Action", "BOTTOM", 0, bpadding);
|
||||
if HealBot_Action_OptionsButton:GetFontString() then
|
||||
HealBot_Action_OptionsButton:GetFontString():SetFont(bfont, btextheight, expectedFlags)
|
||||
end
|
||||
HealBot_Action_OptionsButton:Show();
|
||||
MaxOffsetY = MaxOffsetY + 30;
|
||||
end
|
||||
@@ -1007,6 +1138,7 @@ function HealBot_Action_PartyChanged()
|
||||
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||
bar.txt:SetText(HEALBOT_ACTION_ABORT);
|
||||
bar.txt:SetFont(bfont, btextheight, expectedFlags);
|
||||
HealBot_Action_SetTexture(bar, btexture);
|
||||
bar:SetMinMaxValues(0, 100);
|
||||
bar:SetValue(100);
|
||||
@@ -1054,8 +1186,8 @@ end
|
||||
function HealBot_Action_Reset()
|
||||
HealBot_Action:ClearAllPoints();
|
||||
HealBot_Action:SetPoint("TOP", "MinimapCluster", "BOTTOM", 7, 10);
|
||||
HealBot_Action_HealTarget = {};
|
||||
HealBot_Action_HealFocus = {};
|
||||
for k in pairs(HealBot_Action_HealTarget) do HealBot_Action_HealTarget[k] = nil end
|
||||
for k in pairs(HealBot_Action_HealFocus) do HealBot_Action_HealFocus[k] = nil end
|
||||
HealBot_Action_PartyChanged();
|
||||
end
|
||||
|
||||
@@ -1132,7 +1264,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)
|
||||
|
||||
@@ -1153,7 +1288,7 @@ end
|
||||
function HealBot_Action_AppendNewUnits()
|
||||
if not HealBot_Grid_LastI then return end
|
||||
|
||||
local unitsToCheck = {}
|
||||
local unitsToCheck = HealBot_GetTable()
|
||||
|
||||
-- Gather units based on config, similar to PartyChanged
|
||||
if HealBot_Config.GroupHeals == 1 then
|
||||
@@ -1220,4 +1355,159 @@ function HealBot_Action_AppendNewUnits()
|
||||
HealBot_Action_AppendUnit(unit)
|
||||
end
|
||||
end
|
||||
HealBot_ReleaseTable(unitsToCheck)
|
||||
end
|
||||
|
||||
local HealBot_PlayerHoTsListFrame = nil
|
||||
local HealBot_PlayerHoTFrames = {}
|
||||
|
||||
local HealBot_PlayerHoTs_ValidHoTs = {
|
||||
["Renew"] = "Interface\\Icons\\Spell_Holy_Renew",
|
||||
["Rejuvenation"] = "Interface\\Icons\\Spell_Nature_Rejuvenation",
|
||||
["Regrowth"] = "Interface\\Icons\\Spell_Nature_ResistNature",
|
||||
["Power Word: Shield"] = "Interface\\Icons\\Spell_Holy_PowerWordShield",
|
||||
}
|
||||
|
||||
local HealBot_PlayerHoTs_ListCache = {}
|
||||
|
||||
local function HealBot_PlayerHoTs_SortComparator(a, b)
|
||||
return (a.expires or 0) < (b.expires or 0)
|
||||
end
|
||||
|
||||
function HealBot_Action_UpdatePlayerHoTs()
|
||||
if not HealBot_PlayerHoTsListFrame then
|
||||
HealBot_PlayerHoTsListFrame = CreateFrame("Frame", "HealBot_PlayerHoTsListFrame", HealBot_Action)
|
||||
HealBot_PlayerHoTsListFrame:SetWidth(128)
|
||||
HealBot_PlayerHoTsListFrame:SetHeight(1)
|
||||
HealBot_PlayerHoTsListFrame:SetPoint("TOPLEFT", HealBot_Action, "BOTTOMLEFT", 0, -2)
|
||||
HealBot_PlayerHoTsListFrame:Show()
|
||||
end
|
||||
|
||||
if HealBot_Config.HealBot_Integrations_ShowHoTTimers ~= 1 then
|
||||
HealBot_PlayerHoTsListFrame:Hide()
|
||||
return
|
||||
else
|
||||
HealBot_PlayerHoTsListFrame:Show()
|
||||
end
|
||||
|
||||
local currentTime = GetTime()
|
||||
|
||||
-- Clear cache instead of reallocating
|
||||
local numHoTs = 0
|
||||
|
||||
if HealBot_Integrations_Nampower_Active and HealBot_Nampower_Auras then
|
||||
for targetName, auras in pairs(HealBot_Nampower_Auras) do
|
||||
for spellName, expiration in pairs(auras) do
|
||||
if HealBot_PlayerHoTs_ValidHoTs[spellName] then
|
||||
if expiration > currentTime then
|
||||
numHoTs = numHoTs + 1
|
||||
if not HealBot_PlayerHoTs_ListCache[numHoTs] then
|
||||
HealBot_PlayerHoTs_ListCache[numHoTs] = {}
|
||||
end
|
||||
HealBot_PlayerHoTs_ListCache[numHoTs].name = targetName
|
||||
HealBot_PlayerHoTs_ListCache[numHoTs].spell = spellName
|
||||
HealBot_PlayerHoTs_ListCache[numHoTs].expires = expiration
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Blank out remaining cache entries so sort doesn't read them
|
||||
for i = numHoTs + 1, table.getn(HealBot_PlayerHoTs_ListCache) do
|
||||
HealBot_PlayerHoTs_ListCache[i].expires = 9999999999
|
||||
end
|
||||
|
||||
-- Sort only the active portion by shifting expired ones to the end
|
||||
table.sort(HealBot_PlayerHoTs_ListCache, HealBot_PlayerHoTs_SortComparator)
|
||||
|
||||
for i = 1, math.max(numHoTs, table.getn(HealBot_PlayerHoTFrames)) do
|
||||
local frame = HealBot_PlayerHoTFrames[i]
|
||||
if i <= numHoTs then
|
||||
if not frame then
|
||||
frame = CreateFrame("Frame", "HealBot_PlayerHoT" .. i, HealBot_PlayerHoTsListFrame)
|
||||
frame:SetWidth(128)
|
||||
frame:SetHeight(16)
|
||||
if i == 1 then
|
||||
frame:SetPoint("TOPLEFT", HealBot_PlayerHoTsListFrame, "TOPLEFT", 0, 0)
|
||||
else
|
||||
frame:SetPoint("TOPLEFT", HealBot_PlayerHoTFrames[i-1], "BOTTOMLEFT", 0, -2)
|
||||
end
|
||||
|
||||
local icon = frame:CreateTexture(nil, "ARTWORK")
|
||||
icon:SetWidth(14)
|
||||
icon:SetHeight(14)
|
||||
icon:SetPoint("LEFT", frame, "LEFT", 2, 0)
|
||||
frame.icon = icon
|
||||
|
||||
local text = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
|
||||
text:SetPoint("LEFT", icon, "RIGHT", 4, 0)
|
||||
text:SetJustifyH("LEFT")
|
||||
frame.text = text
|
||||
|
||||
HealBot_PlayerHoTFrames[i] = frame
|
||||
end
|
||||
|
||||
local hot = HealBot_PlayerHoTs_ListCache[i]
|
||||
local timeLeft = math.floor(hot.expires - currentTime)
|
||||
|
||||
-- Resolve GUID to Name
|
||||
if not HealBot_Nampower_NameCache then HealBot_Nampower_NameCache = HealBot_GetTable() end
|
||||
|
||||
local dispName = HealBot_Nampower_NameCache[hot.name]
|
||||
|
||||
if not dispName then
|
||||
dispName = hot.name
|
||||
local resolved = false
|
||||
|
||||
local unitID = HealBot_Model:GetUnitByGUID(hot.name) or HealBot_Model:GetUnitIDByName(hot.name)
|
||||
if unitID then
|
||||
local n = UnitName(unitID)
|
||||
if n then
|
||||
dispName = n
|
||||
resolved = true
|
||||
end
|
||||
elseif string.sub(hot.name, 1, 2) == "0x" or string.sub(hot.name, 1, 2) == "0X" then
|
||||
if HealBot_PlayerGUID and string.lower(HealBot_PlayerGUID) == string.lower(hot.name) then
|
||||
dispName = UnitName("player") or "Player"
|
||||
resolved = true
|
||||
elseif HealBot_GetUnitGUID then
|
||||
if string.lower(HealBot_GetUnitGUID("player") or "") == string.lower(hot.name) then
|
||||
dispName = UnitName("player") or "Player"
|
||||
resolved = true
|
||||
elseif string.lower(HealBot_GetUnitGUID("target") or "") == string.lower(hot.name) then
|
||||
dispName = UnitName("target") or "Target"
|
||||
resolved = true
|
||||
elseif string.lower(HealBot_GetUnitGUID("mouseover") or "") == string.lower(hot.name) then
|
||||
dispName = UnitName("mouseover") or "Mouseover"
|
||||
resolved = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if resolved then
|
||||
HealBot_Nampower_NameCache[hot.name] = dispName
|
||||
elseif string.sub(hot.name, 1, 2) == "0x" then
|
||||
dispName = "Unknown"
|
||||
end
|
||||
end
|
||||
|
||||
local spellId = HealBot_GetSpellId and HealBot_GetSpellId(hot.spell) or nil
|
||||
local tex = HealBot_PlayerHoTs_ValidHoTs[hot.spell] or "Interface\\Icons\\INV_Misc_QuestionMark"
|
||||
if spellId then
|
||||
tex = GetSpellTexture(spellId, "BOOKTYPE_SPELL") or tex
|
||||
end
|
||||
|
||||
frame.icon:SetTexture(tex)
|
||||
frame.text:SetText(dispName .. ": " .. timeLeft .. "s")
|
||||
frame.text:SetTextColor(0.8, 1, 0.8)
|
||||
frame:Show()
|
||||
else
|
||||
if frame then
|
||||
frame:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
HealBot_PlayerHoTsListFrame:SetHeight(math.max(1, numHoTs * 18))
|
||||
end
|
||||
|
||||
@@ -20,8 +20,15 @@ function HealBot_Action_RefreshTooltip(unit)
|
||||
if not unit then unit = HealBot_Action_TooltipUnit end
|
||||
if not unit then return end;
|
||||
|
||||
local hlth=UnitHealth(unit);
|
||||
local maxhlth=UnitHealthMax(unit);
|
||||
local hlth=0;
|
||||
local maxhlth=100;
|
||||
if string.find(unit, "^Test") then
|
||||
hlth = HealBot_Model.units[unit] and HealBot_Model.units[unit].health or 5000;
|
||||
maxhlth = HealBot_Model.units[unit] and HealBot_Model.units[unit].maxHealth or 10000;
|
||||
else
|
||||
hlth=UnitHealth(unit);
|
||||
maxhlth=UnitHealthMax(unit);
|
||||
end
|
||||
|
||||
local spellLeft = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Left"));
|
||||
local spellMiddle = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Middle"));
|
||||
@@ -33,8 +40,9 @@ function HealBot_Action_RefreshTooltip(unit)
|
||||
HealBot_Action_Tooltip_ClearLines();
|
||||
|
||||
if HealBot_Config.Tooltip_ShowTarget==1 then
|
||||
if UnitName(unit) then
|
||||
HealBot_Action_Tooltip_SetLineLeft(UnitName(unit),0,1,0,linenum)
|
||||
local uname = HealBot_Model.units[unit] and HealBot_Model.units[unit].name or UnitName(unit)
|
||||
if uname then
|
||||
HealBot_Action_Tooltip_SetLineLeft(uname,0,1,0,linenum)
|
||||
if hlth and maxhlth then
|
||||
local r,g,b,a=HealBot_HealthColor(unit,hlth,maxhlth);
|
||||
HealBot_Action_Tooltip_SetLineRight(hlth.."/"..maxhlth.." (-"..maxhlth-hlth..")",r,g,b,linenum)
|
||||
|
||||
@@ -21,6 +21,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
* `/hb` - Toggles the main HealBot panel on and off
|
||||
* `/hb options` - Toggles the HealBot options panel on and off
|
||||
* `/hb reset` - Resets the contents of the main HealBot panel
|
||||
* `/hb debug` - Toggles in-game debug message output to the main chat frame
|
||||
|
||||
### Key Features & Current Functionality
|
||||
* **MVC & Observer Architecture:** High-performance, reactive engine that updates frames dynamically on state changes, drastically reducing CPU and memory overhead. Features memory recycling pool and event loop decoupling for zero-stutter combat.
|
||||
@@ -30,7 +31,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
* **Talent-Based Calculations & Equipment Bonus:** Dynamic spell healing calculations for Druid, Priest, and Paladin based on talents, and automatically scans equipped gear to scale healing predictions.
|
||||
* **Modifier-Aware Tooltips:** Tooltips dynamically update to show exact bound actions (Shift/Ctrl/Alt) and required mana costs (turns red if insufficient mana).
|
||||
* **Blizzard Party Frame Toggle:** Toggle to automatically hide Blizzard's default party frames when in a group in favor of HealBot's layouts.
|
||||
* **HoT & Buff Tracking:** Intelligently track active HoTs and buffs directly on the grid frames with custom icons (e.g., Renew, Rejuvenation, Regrowth, Fear Ward).
|
||||
* **HoT & Buff Tracking:** Intelligently track active HoTs and buffs directly on the grid frames with custom icons (e.g., Renew, Rejuvenation, Regrowth, Fear Ward). Optional extended HoT timer tracker togglable below frames.
|
||||
* **Mana Bars for Healers:** Enable and position mini-mana status bars next to unit frames, toggleable to display for healer classes only or all classes.
|
||||
* **Curse & Debuff Warning (CDC):** Dynamic visual and audio alerts for cleanable debuffs. Customizable colors based on debuff type (Curse, Poison, Disease, Magic).
|
||||
* **Pet & Familiar Frames:** Dedicated, toggleable frames for tracking and healing player pets.
|
||||
@@ -49,6 +50,43 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
|
||||
### Change Log
|
||||
|
||||
**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 - Skins Options & Custom Health Gradients** - Added configurable Max HP and Min HP colour pickers with descriptive labels for custom gradient support. Fixed colour picker button click interceptors and hooked ColorPickerFrame callbacks. Integrated global font selector across raid frame text, headers, Options button, and preview bars. Reorganized Skins tab layout to anchor Test Bars cleanly in Column 2.
|
||||
* **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.
|
||||
* **UI - Options Tabs Relative Anchoring Fix** - Fixed layout skewing and margin drift across Spells, Buffs, Chat, Extras (Integrations), and Auto options tabs. Replaced arbitrary hardcoded coordinate shifts with clean relative-anchoring hierarchies centered across the dialog width.
|
||||
* **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**
|
||||
* **Performance Fix - CPU Spikes** - Fixed massive FPS drops during raid combat. The `HealBot_CheckBuffs` function previously forced the client to generate hidden UI tooltips for up to 32 buffs per player on every single `UNIT_AURA` event. Tooltip parsing is now cached per texture, bypassing thousands of redundant API calls per second.
|
||||
* **Performance Fix - Frame Rendering** - Eliminated redundant UI layout recalculations in `HealBot_Action_EnableButton`. The UI no longer forces `SetFont`, `SetWidth`, `SetHeight`, and `GetGlobal` lookups on every single combat tick (which previously caused 4,000+ layout updates per second in 40-man raids).
|
||||
* **Performance Fix - Range Checking** - Greatly reduced CPU stutter caused by range calculations. `HealBot_Range_Check` now caches map positioning math and API calls per-frame, preventing the addon from calculating the exact same `math.sqrt` distance up to 5 times per unit during heavy combat.
|
||||
* **Performance Fix - Unit ID Lookup** - Optimized `HealBot_FindUnitID` by pre-allocating raid unit tokens, preventing massive string concatenation and garbage collection spam during high-frequency combat events like `CHAT_MSG_ADDON` (HealComm).
|
||||
* **Performance Fix - String GC Leak** - Fixed garbage collection hitches caused by `string.gfind` closures in the HealComm parsing loop by rewriting it to use closure-free `string.find` native loops.
|
||||
* **Debug Output Command** - Added `/hb debug` (or `/hb dbg`) slash command to toggle real-time debug message printing directly into the standard chat frame without requiring custom chat channels.
|
||||
* **Performance Fix - Spell Lookup** - Fixed a massive CPU drain and garbage generation issue where the entire spellbook was linearly scanned every frame per unit. Spell IDs are now cached via O(1) dictionary lookup on login and talent/spell changes.
|
||||
* **Performance Fix - Unit Hash Lookup** - Eliminated heavy C-API calls to `UnitName()` during incoming heals by caching raid and party unit tokens in a fast O(1) hash table that updates on roster changes.
|
||||
* **Performance Fix - Range Cache GC Leak** - Fixed a continuous memory leak in the range checker caused by string concatenation (`unit .. "_" .. range`) running every frame. Range states are now stored in a nested numeric table cache.
|
||||
* **Performance Fix - Talent Rank Scan** - Fixed severe CPU stutter when gaining or losing auras that affect stats. Previously, inventory updates forced a full equipment and spell recalculation which linearly scanned the entire talent tree multiple times per rank. Talent ranks are now cached natively.
|
||||
* **Feature - HoT Tracking** - Added an option in the Integrations tab to track Player-cast HoT timers in a dedicated list below the main HealBot frame. Requires Nampower to fetch exact durations. Added support for tracking Power Word: Shield. Implemented with a pre-allocated static cache array for zero GC leaks, and precise GUID trapping for instant name resolution on self and non-party members.
|
||||
|
||||
|
||||
**v1.7.3**
|
||||
* **Performance Fix - Table Pooling Part 2** - Fixed remaining un-pooled table allocations in layout updates, macro parsing, nampower integration, and aura tracking by utilizing HealBot_GetTable().
|
||||
* **Performance Fix - HealComm Networking** - Fixed issue where incoming `HealComm` messages triggered synchronous UI redraws, causing massive lag in 40-man raids during combat. `HealBot_RecalcHeals` is now decoupled and deferred through the `HealBot_OnUpdate` dirty queue, allowing multiple network events to collapse into a single frame redraw.
|
||||
|
||||
**v1.7.2**
|
||||
* **Performance Fix - Table Pooling** - Fixed massive Vanilla Lua 5.0 garbage collection memory leaks caused by unbounded table allocations in high-frequency update loops (e.g., `OnUpdate` and `PreserveStateByGUID`). Moved tables to file-local scope and implemented inline clearing.
|
||||
* **Performance Fix - OOC Cleanup** - Added an out-of-combat garbage collection hook (`PLAYER_REGEN_ENABLED`) to purge disconnected senders from the `HealBot_IncomingHealers` global table, preventing memory bloat during prolonged play sessions.
|
||||
* **Bug Fix - Incoming Heals Comms** - Fixed a regex string parsing bug that caused incoming heals from other HealBot instances to drop if a unit's name contained non-alphabetic characters (e.g. dashes or spaces in pet names).
|
||||
* **Feature - Standard HealComm Sync** - Implemented lightweight parsing of the standard `HealComm` addon channel. HealBot now perfectly syncs incoming heals with modern raid frames like Luna, Grid, and pfUI, while retaining backwards compatibility with older versions of HealBot.
|
||||
* **UI Update - Raid Marks** - Anchored raid target icons to top of unit frames instead of center.
|
||||
* **Bug Fix** - Fixed an issue where the debuff warning sound and UI message would spam repeatedly on every aura update. The warning now only plays once per unique dispellable debuff type applied to a unit. Increased warning trigger range to 40 yards.
|
||||
|
||||
**v1.7.1**
|
||||
* **Bug Fix - Shapeshift Auto-Unshift** - Fixed an issue where the shapeshift spell queue would incorrectly pull druids out of Tree of Life form .
|
||||
* **Cleanup** - Removed deprecated `UPDATE_SHAPESHIFT_FORM` event listeners and `HealBot_UpdateShapeshiftForm` function to save CPU cycles.
|
||||
|
||||
**v1.7.0**
|
||||
* **Feature - Raid Marks** - Added tracking and display of raid marks on unit frames.
|
||||
* **External Addon Integrations** - Added a new 'Extras' tab in Options to optionally enable integrations with `UnitXP_SP3` (for ultra-precise 3D range and Line of Sight checks), `nampower` (for accurate real-time heal/buff tracking), `SuperWoW` (for robust GUID-based state tracking), and `ClassicAPI` (for native +Healing bonuses and fast 3D distance checks).
|
||||
@@ -79,6 +117,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
* **UI Update - Customizable icon size** - Added an option to change size of HoT icons (default to 12px).
|
||||
* **Cleanup** - Removed dead code `HealBot_Groups` table.
|
||||
* **Bug Fix - Buff Watch Self** - Fixed an issue where the "Self Only" toggle for watched buffs failed to load visually across sessions.
|
||||
* **Bug Fix - Pet Coloring** - Fixed an issue where custom server integrations giving pets a class could override the mint pet color when class color override is toggled.
|
||||
|
||||
**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.
|
||||
@@ -112,6 +151,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.
|
||||
@@ -128,7 +169,6 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
* **Chat Announcements & Mouseover Casts:** Chat announcements are now correctly fired when using native Hovercasting (Mouseover). Additionally, added safety checks to prevent spamming chat announcements when accidentally clicking on a dead player (unless casting a resurrection spell).
|
||||
* **New Priest Buff (Enlighten):** Added the custom "Enlighten" buff to Priest trackable buffs, complete with the `btnholyscriptures` icon on unit frames.
|
||||
|
||||
|
||||
**1.3.3**
|
||||
* **Chat Panel Refactor:** Completely replaced the spell selection dropdowns in the Chat tab with manual text input boxes, allowing users to type exact spell names (with or without ranks) directly, matching the behavior of the key-bindings configuration. Fixed a string matching bug caused by Vanilla WoW's hidden trailing spaces when comparing spell names, ensuring that both rankless (e.g. `Flash Heal`) and ranked inputs trigger correctly.
|
||||
* **Chat Layout Stack:** Restructured the Chat Options XML layout to correctly stack the inputs into neat rows, preventing horizontal overlap and providing more space for typing long announce messages.
|
||||
|
||||
Reference in New Issue
Block a user