mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-07-27 17:54:44 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c50bcd54f3 | |||
| a6c75b78f7 | |||
| 1e1e06163c | |||
| 2995ccbd32 | |||
| 8b3355656e | |||
| dc50c9797f | |||
| dd7fcaf082 | |||
| b77c4d73c6 | |||
| e567c0f394 | |||
| b8b6a57ef8 | |||
| 3ae3f26f77 | |||
| 786e5d66df | |||
| 63fc88b006 | |||
| 03634b37e4 | |||
| dd9cfc301a |
+19
-1428
File diff suppressed because it is too large
Load Diff
+15
-1
@@ -1,6 +1,6 @@
|
|||||||
## Interface: 11200
|
## Interface: 11200
|
||||||
## Title: HealBotBlue
|
## Title: HealBotBlue
|
||||||
## Version: 1.2.2
|
## Version: 1.3.2
|
||||||
## Author: Bluewhale
|
## Author: Bluewhale
|
||||||
## Notes: Adds panel with skinable bars for healing and decursive
|
## Notes: Adds panel with skinable bars for healing and decursive
|
||||||
## SavedVariables: HealBot_Config
|
## SavedVariables: HealBot_Config
|
||||||
@@ -10,6 +10,20 @@
|
|||||||
..\..\FrameXML\UIDropDownMenu.xml
|
..\..\FrameXML\UIDropDownMenu.xml
|
||||||
HealBot_Error.xml
|
HealBot_Error.xml
|
||||||
HealBot_Model.lua
|
HealBot_Model.lua
|
||||||
|
HealBot_Controller_Range.lua
|
||||||
|
HealBot_Controller_Comms.lua
|
||||||
|
HealBot_Controller_Aura.lua
|
||||||
|
HealBot_Controller_Spells.lua
|
||||||
|
HealBot_Controller_Events.lua
|
||||||
HealBot.xml
|
HealBot.xml
|
||||||
|
HealBot_View_Layout.lua
|
||||||
|
HealBot_View_Tooltip.lua
|
||||||
HealBot_Action.xml
|
HealBot_Action.xml
|
||||||
HealBot_Options.xml
|
HealBot_Options.xml
|
||||||
|
HealBot_Options_General.xml
|
||||||
|
HealBot_Options_Spells.xml
|
||||||
|
HealBot_Options_Healing.xml
|
||||||
|
HealBot_Options_CDC.xml
|
||||||
|
HealBot_Options_Skins.xml
|
||||||
|
HealBot_Options_Buffs.xml
|
||||||
|
HealBot_Options_Chat.xml
|
||||||
|
|||||||
+41
-1051
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,182 @@
|
|||||||
|
-- HealBot_Controller_Aura.lua
|
||||||
|
-- Handles tracking buffs/debuffs (auras) on group/raid units
|
||||||
|
|
||||||
|
HealBot_MissingBuffs = {}
|
||||||
|
|
||||||
|
function HealBot_UnitAffected(unit, effect)
|
||||||
|
if not effect then return nil; end
|
||||||
|
local i = 1
|
||||||
|
while true do
|
||||||
|
local buff = UnitBuff(unit, i)
|
||||||
|
if not buff then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
if buff == effect then
|
||||||
|
return buff
|
||||||
|
end
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
i = 1
|
||||||
|
while true do
|
||||||
|
local debuff = UnitDebuff(unit, i)
|
||||||
|
if not debuff then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
if debuff == effect then
|
||||||
|
return debuff
|
||||||
|
end
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
return nil;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CheckShamanWeaponBuff(spellName)
|
||||||
|
local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo()
|
||||||
|
if hasMainHandEnchant or hasOffHandEnchant then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CheckBuffs(unit)
|
||||||
|
if HealBot_Config.BuffWatch ~= 1 then
|
||||||
|
HealBot_MissingBuffs[unit] = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local inCombat = UnitAffectingCombat("player") or UnitAffectingCombat(unit)
|
||||||
|
if inCombat and HealBot_Config.BuffWatchInCombat ~= 1 then
|
||||||
|
HealBot_MissingBuffs[unit] = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local myClass = UnitClass("player")
|
||||||
|
if not HealBot_Buff_Spells[myClass] then return end
|
||||||
|
|
||||||
|
if UnitIsDeadOrGhost(unit) or not UnitIsConnected(unit) then
|
||||||
|
HealBot_MissingBuffs[unit] = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Group Buff Equivalents
|
||||||
|
local HealBot_Buff_Equivalents = {
|
||||||
|
[HEALBOT_POWER_WORD_FORTITUDE] = HEALBOT_PRAYER_OF_FORTITUDE,
|
||||||
|
[HEALBOT_DIVINE_SPIRIT] = HEALBOT_PRAYER_OF_SPIRIT,
|
||||||
|
[HEALBOT_SHADOW_PROTECTION] = HEALBOT_PRAYER_OF_SHADOW_PROTECTION,
|
||||||
|
[HEALBOT_ARCANE_INTELLECT] = HEALBOT_ARCANE_BRILLIANCE,
|
||||||
|
[HEALBOT_MARK_OF_THE_WILD] = HEALBOT_GIFT_OF_THE_WILD,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Gather buffs on unit
|
||||||
|
local hasBuff = {}
|
||||||
|
local i = 1
|
||||||
|
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()
|
||||||
|
if buffName then
|
||||||
|
hasBuff[buffName] = true
|
||||||
|
end
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
HealBot_ScanTooltip:Hide()
|
||||||
|
|
||||||
|
HealBot_MissingBuffs[unit] = nil
|
||||||
|
|
||||||
|
if HealBot_Config.BuffDropDowns and HealBot_Config.BuffDropDowns[myClass] then
|
||||||
|
for j = 1, 8 do
|
||||||
|
local val = HealBot_Config.BuffDropDowns[myClass][j]
|
||||||
|
if val and val > 0 then
|
||||||
|
local isSelfOnly = (HealBot_Config.BuffWatchSelf and HealBot_Config.BuffWatchSelf[j] == 1)
|
||||||
|
if not (isSelfOnly and unit ~= "player") then
|
||||||
|
local spellName = HealBot_Buff_Spells[myClass][val]
|
||||||
|
|
||||||
|
local hasIt = hasBuff[spellName]
|
||||||
|
if not hasIt and HealBot_Buff_Equivalents[spellName] then
|
||||||
|
hasIt = hasBuff[HealBot_Buff_Equivalents[spellName]]
|
||||||
|
end
|
||||||
|
|
||||||
|
if not hasIt then
|
||||||
|
if myClass == "SHAMAN" and unit == "player" and string.find(spellName, " Weapon") then
|
||||||
|
hasIt = HealBot_CheckShamanWeaponBuff(spellName)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not hasIt then
|
||||||
|
HealBot_MissingBuffs[unit] = spellName
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_UnitAura(this, unit)
|
||||||
|
local DebuffType;
|
||||||
|
|
||||||
|
if HealBot_Heals[unit] and unit ~= "target" then
|
||||||
|
HealBot_UnitIcons[unit] = {}
|
||||||
|
local iconCount = 0
|
||||||
|
|
||||||
|
local HealBot_TrackedHoTs = {
|
||||||
|
["Interface\\Icons\\Spell_Holy_Renew"] = true,
|
||||||
|
["Interface\\Icons\\Spell_Nature_Rejuvenation"] = true,
|
||||||
|
["Interface\\Icons\\Spell_Nature_ResistNature"] = true,
|
||||||
|
["Interface\\Icons\\Spell_Holy_PowerWordShield"] = true,
|
||||||
|
["Interface\\Icons\\Spell_Holy_SealOfProtection"] = true,
|
||||||
|
["Interface\\Icons\\Spell_Holy_Excorcism"] = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
local i = 1;
|
||||||
|
while true do
|
||||||
|
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
|
||||||
|
if debuff then
|
||||||
|
if iconCount < 5 then
|
||||||
|
iconCount = iconCount + 1
|
||||||
|
HealBot_UnitIcons[unit][iconCount] = debuff
|
||||||
|
end
|
||||||
|
if HealBot_CDCInc[UnitClass(unit)] == 1 and HealBot_DebuffWatch[debuff_type] == "YES" then
|
||||||
|
HealBot_UnitDebuff[unit] = debuff_type
|
||||||
|
DebuffType = debuff_type;
|
||||||
|
if HealBot_DebuffPriority[debuff_type] then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
i = i + 1;
|
||||||
|
else
|
||||||
|
if i == 1 then HealBot_UnitDebuff[unit] = nil; end
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local b = 1
|
||||||
|
while true do
|
||||||
|
local buff = UnitBuff(unit, b)
|
||||||
|
if not buff then break end
|
||||||
|
if HealBot_TrackedHoTs[buff] and iconCount < 5 then
|
||||||
|
iconCount = iconCount + 1
|
||||||
|
HealBot_UnitIcons[unit][iconCount] = buff
|
||||||
|
end
|
||||||
|
b = b + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_UnitDebuff[unit] then
|
||||||
|
if DebuffType and HealBot_Range_Check(unit, 27) == 1 then
|
||||||
|
if HealBot_Config.ShowDebuffWarning == 1 then
|
||||||
|
UIErrorsFrame:AddMessage(UnitName(unit) .. " suffers from " .. DebuffType,
|
||||||
|
HealBot_Config.CDCBarColour[DebuffType].R,
|
||||||
|
HealBot_Config.CDCBarColour[DebuffType].G,
|
||||||
|
HealBot_Config.CDCBarColour[DebuffType].B,
|
||||||
|
1, UIERRORS_HOLD_TIME);
|
||||||
|
end
|
||||||
|
if HealBot_Config.SoundDebuffWarning == 1 then HealBot_PlaySound(HealBot_Config.SoundDebuffPlay); end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_CheckBuffs(unit);
|
||||||
|
HealBot_RecalcHeals(unit);
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
-- HealBot_Controller_Comms.lua
|
||||||
|
-- Handles network sync (addon messaging), errors, and chat debugging
|
||||||
|
|
||||||
|
function HealBot_Get_DebugChan()
|
||||||
|
local index = GetChannelName("HBmsg");
|
||||||
|
if (index > 0) then
|
||||||
|
return index;
|
||||||
|
else
|
||||||
|
return nil;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_AddChat(msg)
|
||||||
|
local chanid = HealBot_Get_DebugChan();
|
||||||
|
if chanid and HealBot_SpamCnt < 3 then
|
||||||
|
HealBot_SpamCnt = HealBot_SpamCnt + 1;
|
||||||
|
local hour, minute = GetGameTime();
|
||||||
|
if minute == 0 then
|
||||||
|
msg = "[" .. hour .. ":00] " .. msg;
|
||||||
|
elseif minute < 10 then
|
||||||
|
msg = "[" .. hour .. ":0" .. minute .. "] " .. msg;
|
||||||
|
else
|
||||||
|
msg = "[" .. hour .. ":" .. minute .. "] " .. msg;
|
||||||
|
end
|
||||||
|
SendChatMessage(msg, "CHANNEL", nil, chanid);
|
||||||
|
elseif ( DEFAULT_CHAT_FRAME ) then
|
||||||
|
DEFAULT_CHAT_FRAME:AddMessage(msg);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_AddDebug(msg)
|
||||||
|
local chanid = HealBot_Get_DebugChan();
|
||||||
|
if chanid and HealBot_SpamCnt < 3 then
|
||||||
|
HealBot_SpamCnt = HealBot_SpamCnt + 1;
|
||||||
|
local hour, minute = GetGameTime();
|
||||||
|
if minute == 0 then
|
||||||
|
msg = "[" .. hour .. ":00] DEBUG: " .. msg;
|
||||||
|
elseif minute < 10 then
|
||||||
|
msg = "[" .. hour .. ":0" .. minute .. "] DEBUG: " .. msg;
|
||||||
|
else
|
||||||
|
msg = "[" .. hour .. ":" .. minute .. "] DEBUG: " .. msg;
|
||||||
|
end
|
||||||
|
SendChatMessage(msg, "CHANNEL", nil, chanid);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Report_Error(msg)
|
||||||
|
if HealBot_ErrorCnt < 28 then
|
||||||
|
HealBot_ErrorCnt = HealBot_ErrorCnt + 1;
|
||||||
|
ShowUIPanel(HealBot_Error);
|
||||||
|
HealBot_ErrorsIn(msg, HealBot_ErrorCnt);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_AddError(msg)
|
||||||
|
UIErrorsFrame:AddMessage(msg, 1.0, 1.0, 1.0, 1.0, UIERRORS_HOLD_TIME);
|
||||||
|
HealBot_AddDebug(msg);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_SendAddonMessage(prefix, text)
|
||||||
|
if GetNumRaidMembers() > 0 then
|
||||||
|
SendAddonMessage(prefix, text, "RAID")
|
||||||
|
elseif GetNumPartyMembers() > 0 then
|
||||||
|
SendAddonMessage(prefix, text, "PARTY")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
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 not HealBot_HealsIn[unitname] then
|
||||||
|
HealBot_HealsIn[unitname] = 0;
|
||||||
|
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;
|
||||||
|
end
|
||||||
|
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+) <<=>> (.+)");
|
||||||
|
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
|
||||||
|
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
|
||||||
|
else
|
||||||
|
local unitname, tmpTest
|
||||||
|
tmpTest, tmpTest, unitname = string.find(inc_msg, "^RES (.+)$");
|
||||||
|
if ( unitname ) then
|
||||||
|
HealBot_AddDebug(sender_id .. " is ressing " .. unitname);
|
||||||
|
HealBot_Ressing[unitname] = sender_id;
|
||||||
|
HealBot_RecalcHeals(HealBot_FindUnitID(unitname));
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,440 @@
|
|||||||
|
-- HealBot_Controller_Events.lua
|
||||||
|
-- Manages WoW Frame events and periodic updates, routing to respective services
|
||||||
|
|
||||||
|
HealBot_View_DirtyUnits = {}
|
||||||
|
local HealBot_Timer1, HealsIn_Timer = 0, 0;
|
||||||
|
|
||||||
|
function HealBot_OnLoad(this)
|
||||||
|
this:RegisterEvent("VARIABLES_LOADED");
|
||||||
|
|
||||||
|
SLASH_HEALBOT1 = "/healbot";
|
||||||
|
SLASH_HEALBOT2 = "/hb";
|
||||||
|
SlashCmdList["HEALBOT"] = function(msg)
|
||||||
|
HealBot_SlashCmd(msg);
|
||||||
|
end
|
||||||
|
HealBot_AddError(HEALBOT_ADDON .. HEALBOT_LOADED);
|
||||||
|
|
||||||
|
-- Register MVC Observers
|
||||||
|
HealBot_Model:RegisterObserver("UNIT_HEALTH_CHANGED", function(unitID)
|
||||||
|
HealBot_View_DirtyUnits[unitID] = true
|
||||||
|
end)
|
||||||
|
HealBot_Model:RegisterObserver("UNIT_POWER_CHANGED", function(unitID)
|
||||||
|
HealBot_View_DirtyUnits[unitID] = true
|
||||||
|
end)
|
||||||
|
HealBot_Model:RegisterObserver("UNIT_AURA_CHANGED", function(unitID)
|
||||||
|
HealBot_View_DirtyUnits[unitID] = true
|
||||||
|
end)
|
||||||
|
HealBot_Model:RegisterObserver("ROSTER_CHANGED", function()
|
||||||
|
Delay_RecalcParty = 1
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_RegisterThis(this)
|
||||||
|
-- Deprecated / not used
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnUpdate(this, arg1)
|
||||||
|
if HealBot_TargetRestorePending then
|
||||||
|
HealBot_TargetRestoreTimer = HealBot_TargetRestoreTimer + arg1;
|
||||||
|
if HealBot_TargetRestoreTimer >= 0.1 then
|
||||||
|
local pending = HealBot_TargetRestorePending;
|
||||||
|
HealBot_TargetRestorePending = nil;
|
||||||
|
HealBot_TargetRestoreTimer = 0;
|
||||||
|
if pending.type == "enemy" then
|
||||||
|
TargetLastEnemy();
|
||||||
|
elseif pending.type == "friend" then
|
||||||
|
TargetLastTarget();
|
||||||
|
elseif pending.type == "clear" then
|
||||||
|
ClearTarget();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Process Dirty Queue for MVC View
|
||||||
|
if next(HealBot_View_DirtyUnits) ~= nil then
|
||||||
|
for unitID in pairs(HealBot_View_DirtyUnits) do
|
||||||
|
HealBot_Action_RefreshButtons(unitID)
|
||||||
|
HealBot_View_DirtyUnits[unitID] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Timer1 = HealBot_Timer1 + arg1;
|
||||||
|
if HealBot_Timer1 >= 2.5 then
|
||||||
|
if not HealBot_IsFighting then
|
||||||
|
HealsIn_Timer = HealsIn_Timer + 1;
|
||||||
|
if HealsIn_Timer >= 10 then
|
||||||
|
HealBot_HealsIn = {};
|
||||||
|
HealBot_Healers = {};
|
||||||
|
HealsIn_Timer = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_EquipChangeTimer > 0 then
|
||||||
|
HealBot_EquipChangeTimer = HealBot_EquipChangeTimer - arg1
|
||||||
|
if HealBot_EquipChangeTimer <= 0 then
|
||||||
|
HealBot_EquipChangeTimer = 0
|
||||||
|
HealBot_BonusScanner:ScanEquipment()
|
||||||
|
CalcEquipBonus = true;
|
||||||
|
HealBot_RecalcSpells();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if InitSpells > 1 then
|
||||||
|
InitSpells = InitSpells + 1;
|
||||||
|
if InitSpells > 2 then
|
||||||
|
local cnt = HealBot_InitSpells();
|
||||||
|
InitSpells = 0;
|
||||||
|
HealBot_RecalcSpells();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if Delay_RecalcParty > 0 then
|
||||||
|
Delay_RecalcParty = Delay_RecalcParty + 1
|
||||||
|
if Delay_RecalcParty > 1 then
|
||||||
|
Delay_RecalcParty = 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
HealsIn_Timer = 0;
|
||||||
|
end
|
||||||
|
HealBot_Timer1 = 0;
|
||||||
|
HealBot_SpamCnt = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local HealBot_EventHandlers = {
|
||||||
|
["UNIT_HEALTH"] = function(this, arg1)
|
||||||
|
if HealBot_Model:UpdateUnitHealth(arg1) then
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_HEALTH_CHANGED", arg1)
|
||||||
|
end
|
||||||
|
HealBot_OnEvent_UnitHealth(this, arg1)
|
||||||
|
end,
|
||||||
|
["UNIT_MANA"] = function(this, arg1)
|
||||||
|
if HealBot_Model:UpdateUnitPower(arg1) then
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_POWER_CHANGED", arg1)
|
||||||
|
end
|
||||||
|
if (arg1 == "player") then HealBot_RecalcHeals(); end
|
||||||
|
HealBot_Action_RefreshButtons(arg1);
|
||||||
|
end,
|
||||||
|
["UNIT_RAGE"] = function(this, arg1)
|
||||||
|
if HealBot_Model:UpdateUnitPower(arg1) then
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_POWER_CHANGED", arg1)
|
||||||
|
end
|
||||||
|
if (arg1 == "player") then HealBot_RecalcHeals(); end
|
||||||
|
HealBot_Action_RefreshButtons(arg1);
|
||||||
|
end,
|
||||||
|
["UNIT_ENERGY"] = function(this, arg1)
|
||||||
|
if HealBot_Model:UpdateUnitPower(arg1) then
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_POWER_CHANGED", arg1)
|
||||||
|
end
|
||||||
|
if (arg1 == "player") then HealBot_RecalcHeals(); end
|
||||||
|
HealBot_Action_RefreshButtons(arg1);
|
||||||
|
end,
|
||||||
|
["UNIT_DISPLAYPOWER"] = function(this, arg1)
|
||||||
|
if HealBot_Model:UpdateUnitPower(arg1) then
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_POWER_CHANGED", arg1)
|
||||||
|
end
|
||||||
|
if (arg1 == "player") then HealBot_RecalcHeals(); end
|
||||||
|
HealBot_Action_RefreshButtons(arg1);
|
||||||
|
end,
|
||||||
|
["UNIT_AURA"] = function(this, arg1)
|
||||||
|
HealBot_Model:MarkAuraChanged(arg1)
|
||||||
|
HealBot_Model:NotifyObservers("UNIT_AURA_CHANGED", arg1)
|
||||||
|
HealBot_OnEvent_UnitAura(this, arg1)
|
||||||
|
end,
|
||||||
|
["PLAYER_TARGET_CHANGED"] = function(this)
|
||||||
|
if HealBot_Model:UpdateUnitIdentity("target") then
|
||||||
|
HealBot_Model:NotifyObservers("ROSTER_CHANGED", "target")
|
||||||
|
end
|
||||||
|
HealBot_Model:UpdateUnitStatus("target")
|
||||||
|
HealBot_Model:UpdateUnitHealth("target")
|
||||||
|
HealBot_Model:UpdateUnitPower("target")
|
||||||
|
HealBot_OnEvent_PlayerTargetChanged(this)
|
||||||
|
end,
|
||||||
|
["PARTY_MEMBERS_CHANGED"] = function(this)
|
||||||
|
for _, unit in ipairs(HealBot_Model.partyMembers) do
|
||||||
|
HealBot_Model:RefreshUnit(unit)
|
||||||
|
end
|
||||||
|
for _, unit in ipairs(HealBot_Model.raidMembers) do
|
||||||
|
HealBot_Model:RefreshUnit(unit)
|
||||||
|
end
|
||||||
|
HealBot_Model:NotifyObservers("ROSTER_CHANGED")
|
||||||
|
HealBot_OnEvent_PartyMembersChanged(this)
|
||||||
|
end,
|
||||||
|
["PLAYER_ENTERING_WORLD"] = function(this)
|
||||||
|
HealBot_Model:RefreshUnit("player")
|
||||||
|
HealBot_Model:RefreshUnit("pet")
|
||||||
|
HealBot_OnEvent_PlayerEnteringWorld(this)
|
||||||
|
end,
|
||||||
|
["VARIABLES_LOADED"] = function(this)
|
||||||
|
HealBot_OnEvent_VariablesLoaded(this)
|
||||||
|
end,
|
||||||
|
-- Legacy pass-throughs
|
||||||
|
["CHAT_MSG_ADDON"] = function(this, arg1, arg2, arg3, arg4) HealBot_OnEvent_AddonMsg(this, arg1, arg2, arg3, arg4) end,
|
||||||
|
["SPELLCAST_START"] = function(this, arg1, arg2) HealBot_OnEvent_SpellcastStart(this, arg1, arg2) end,
|
||||||
|
["SPELLCAST_STOP"] = function(this) HealBot_OnEvent_SpellcastStop(this) end,
|
||||||
|
["SPELLCAST_INTERRUPTED"] = function(this) HealBot_OnEvent_SpellcastStop(this) end,
|
||||||
|
["SPELLCAST_FAILED"] = function(this) HealBot_OnEvent_SpellcastStop(this) end,
|
||||||
|
["PLAYER_REGEN_DISABLED"] = function(this) HealBot_OnEvent_PlayerRegenDisabled(this) end,
|
||||||
|
["PLAYER_REGEN_ENABLED"] = function(this) HealBot_OnEvent_PlayerRegenEnabled(this) end,
|
||||||
|
["BAG_UPDATE_COOLDOWN"] = function(this, arg1) HealBot_OnEvent_BagUpdateCooldown(this, arg1) end,
|
||||||
|
["BAG_UPDATE"] = function(this, arg1) HealBot_OnEvent_BagUpdate(this, arg1) end,
|
||||||
|
["PARTY_MEMBER_DISABLE"] = function(this, arg1) HealBot_OnEvent_PartyMemberDisable(this, arg1) end,
|
||||||
|
["PARTY_MEMBER_ENABLE"] = function(this, arg1) HealBot_OnEvent_PartyMemberEnable(this, arg1) end,
|
||||||
|
["CHAT_MSG_SYSTEM"] = function(this, arg1) HealBot_OnEvent_SystemMsg(this, arg1) end,
|
||||||
|
["ZONE_CHANGED_NEW_AREA"] = function(this) HealBot_OnEvent_ZoneChanged(this) end,
|
||||||
|
["UPDATE_INVENTORY_ALERTS"] = function(this) HealBot_OnEvent_PlayerEquipmentChanged(this) end,
|
||||||
|
["UNIT_INVENTORY_CHANGED"] = function(this, arg1) HealBot_OnEvent_PlayerEquipmentChanged2(this, arg1) end,
|
||||||
|
["PET_BAR_SHOWGRID"] = function(this) HealBot_OnEvent_PartyMembersChanged(this) end,
|
||||||
|
["PET_BAR_HIDEGRID"] = function(this) HealBot_OnEvent_PartyMembersChanged(this) end,
|
||||||
|
["SPELLS_CHANGED"] = function(this, arg1) HealBot_OnEvent_SpellsChanged(this, arg1) end
|
||||||
|
}
|
||||||
|
|
||||||
|
function HealBot_OnEvent(this, event, arg1, arg2, arg3, arg4)
|
||||||
|
local handler = HealBot_EventHandlers[event]
|
||||||
|
if handler then
|
||||||
|
handler(this, arg1, arg2, arg3, arg4)
|
||||||
|
else
|
||||||
|
HealBot_AddDebug("OnEvent (" .. event .. ")")
|
||||||
|
end
|
||||||
|
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
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end);
|
||||||
|
|
||||||
|
local foundModern = false
|
||||||
|
if HealBot_Config.Skins then
|
||||||
|
for _, skin in ipairs(HealBot_Config.Skins) do
|
||||||
|
if skin == "Modern Flat" then foundModern = true break end
|
||||||
|
end
|
||||||
|
if not foundModern then
|
||||||
|
table.insert(HealBot_Config.Skins, "Modern Flat")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_InitData();
|
||||||
|
|
||||||
|
if not HealBot_PartyFrameHooked then
|
||||||
|
local origShowPartyFrame = ShowPartyFrame;
|
||||||
|
ShowPartyFrame = function()
|
||||||
|
if HealBot_Config.HideParty == 1 then
|
||||||
|
if HidePartyFrame then HidePartyFrame(); end
|
||||||
|
elseif origShowPartyFrame then
|
||||||
|
origShowPartyFrame();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_PartyFrameHooked = true;
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_Config.HideParty == 1 and HidePartyFrame then
|
||||||
|
HidePartyFrame();
|
||||||
|
end
|
||||||
|
|
||||||
|
if class == "PRIEST" or class == "DRUID" or class == "PALADIN" or class == "SHAMAN" then
|
||||||
|
HealBot_BonusScanner:ScanEquipment();
|
||||||
|
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
|
||||||
|
this:RegisterEvent("ZONE_CHANGED_NEW_AREA");
|
||||||
|
this:RegisterEvent("PLAYER_REGEN_DISABLED");
|
||||||
|
this:RegisterEvent("PLAYER_REGEN_ENABLED");
|
||||||
|
this:RegisterEvent("PLAYER_TARGET_CHANGED");
|
||||||
|
this:RegisterEvent("PARTY_MEMBERS_CHANGED");
|
||||||
|
this:RegisterEvent("PARTY_MEMBER_DISABLE");
|
||||||
|
this:RegisterEvent("PARTY_MEMBER_ENABLE");
|
||||||
|
this:RegisterEvent("PET_BAR_SHOWGRID");
|
||||||
|
this:RegisterEvent("PET_BAR_HIDEGRID");
|
||||||
|
this:RegisterEvent("UNIT_HEALTH");
|
||||||
|
this:RegisterEvent("UNIT_MANA");
|
||||||
|
this:RegisterEvent("UNIT_RAGE");
|
||||||
|
this:RegisterEvent("UNIT_ENERGY");
|
||||||
|
this:RegisterEvent("UNIT_DISPLAYPOWER");
|
||||||
|
this:RegisterEvent("SPELLS_CHANGED");
|
||||||
|
this:RegisterEvent("SPELLCAST_START");
|
||||||
|
this:RegisterEvent("SPELLCAST_STOP");
|
||||||
|
this:RegisterEvent("SPELLCAST_INTERRUPTED");
|
||||||
|
this:RegisterEvent("SPELLCAST_FAILED");
|
||||||
|
this:RegisterEvent("BAG_UPDATE");
|
||||||
|
this:RegisterEvent("BAG_UPDATE_COOLDOWN");
|
||||||
|
this:RegisterEvent("UNIT_AURA");
|
||||||
|
this:RegisterEvent("UPDATE_INVENTORY_ALERTS");
|
||||||
|
this:RegisterEvent("UNIT_INVENTORY_CHANGED");
|
||||||
|
this:RegisterEvent("CHAT_MSG_ADDON");
|
||||||
|
this:RegisterEvent("CHAT_MSG_SYSTEM");
|
||||||
|
this:RegisterEvent("PLAYER_ENTERING_WORLD");
|
||||||
|
InitSpells = 2;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_UnitHealth(this, unit)
|
||||||
|
if (not HealBot_Heals[unit]) then return end
|
||||||
|
HealBot_CheckCasting(unit);
|
||||||
|
HealBot_RecalcHeals(unit);
|
||||||
|
if unit == HealBot_Action_TooltipUnit then
|
||||||
|
HealBot_Action_RefreshTooltip(HealBot_Action_TooltipUnit);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_UnitMana(this, unit)
|
||||||
|
if (unit ~= "player") then return end
|
||||||
|
HealBot_RecalcHeals();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_ZoneChanged(this)
|
||||||
|
HealBot_ResetRangeScale();
|
||||||
|
Delay_RecalcParty = 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerRegenDisabled(this)
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
if (UnitIsDeadOrGhost("player")) or (UnitOnTaxi("player")) then
|
||||||
|
if HealBot_Config.AutoClose==1 and HealBot_Config.ActionVisible~=0 then
|
||||||
|
HealBot_Action.ProgrammaticHide = true;
|
||||||
|
HealBot_Action:Hide();
|
||||||
|
HealBot_Action.ProgrammaticHide = nil;
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
|
||||||
|
-- Reapply user settings to override the engine's white default
|
||||||
|
if HealBot_Config and HealBot_Config.Current_Skin then
|
||||||
|
local skin = HealBot_Config.Current_Skin;
|
||||||
|
if HealBot_Config.backcolr and HealBot_Config.backcolr[skin] then
|
||||||
|
HealBot_Action:SetBackdropColor(
|
||||||
|
HealBot_Config.backcolr[skin],
|
||||||
|
HealBot_Config.backcolg[skin],
|
||||||
|
HealBot_Config.backcolb[skin],
|
||||||
|
HealBot_Config.backcola[skin]
|
||||||
|
);
|
||||||
|
HealBot_Action:SetBackdropBorderColor(
|
||||||
|
HealBot_Config.borcolr[skin],
|
||||||
|
HealBot_Config.borcolg[skin],
|
||||||
|
HealBot_Config.borcolb[skin],
|
||||||
|
HealBot_Config.borcola[skin]
|
||||||
|
);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_IsFighting = true;
|
||||||
|
end
|
||||||
|
-- HealBot_RecalcHeals();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerRegenEnabled(this)
|
||||||
|
HealBot_IsFighting = false;
|
||||||
|
Delay_RecalcParty = 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerTargetChanged(this)
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PartyMembersChanged(this)
|
||||||
|
Delay_RecalcParty = 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PartyMemberDisable(this, unit)
|
||||||
|
HealBot_RecalcHeals();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_SystemMsg(this, msg)
|
||||||
|
if type(msg) == "string" then
|
||||||
|
local tmpTest, tmpTest, deserter = string.find(msg, HB_HASLEFTRAID);
|
||||||
|
if not deserter then
|
||||||
|
local tmpTest, tmpTest, deserter = string.find(msg, HB_HASLEFTPARTY);
|
||||||
|
end
|
||||||
|
if deserter then
|
||||||
|
if (HealBot_Healers[deserter]) then
|
||||||
|
local tmpTest, unitname, heal_val, heal_valn
|
||||||
|
tmpTest, tmpTest, unitname, heal_val = string.find(HealBot_Healers[deserter], ">> (%a+) <<=>> (.%d+) <<" );
|
||||||
|
heal_valn = tonumber(heal_val)
|
||||||
|
HealBot_Healers[deserter] = nil;
|
||||||
|
HealBot_AddDebug("Healer " .. deserter .. " left the group - Last known activity was heal " .. unitname .. " for " .. heal_val .. " << trapped in event SystemMsg");
|
||||||
|
if heal_valn > 0 and HealBot_HealsIn[unitname] then
|
||||||
|
HealBot_HealsIn[unitname] = HealBot_HealsIn[unitname] - heal_valn;
|
||||||
|
if HealBot_HealsIn[unitname] < 0 then
|
||||||
|
HealBot_HealsIn[unitname] = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif msg == HB_YOULEAVETHEGROUP or msg == HB_YOULEAVETHERAID then
|
||||||
|
Delay_RecalcParty = 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PartyMemberEnable(this, unit)
|
||||||
|
HealBot_RecalcHeals();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerEquipmentChanged(this)
|
||||||
|
HealBot_EquipChangeTimer = 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerEquipmentChanged2(this, unit)
|
||||||
|
if unit == "player" then
|
||||||
|
HealBot_EquipChangeTimer = 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_SpellsChanged(this, arg1)
|
||||||
|
if arg1 then return; end
|
||||||
|
HealBot_AddDebug("HB: SpellsChanged");
|
||||||
|
InitSpells = 2;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_TalentsChanged(this, arg1)
|
||||||
|
HealBot_AddDebug("HB: TalentsChanged");
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_BagUpdate(this, bag)
|
||||||
|
if HealBot_EquipChangeTimer == 0 then
|
||||||
|
HealBot_RecalcSpells();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_BagUpdateCooldown(this, bag)
|
||||||
|
if not bag then
|
||||||
|
bag = "undef"
|
||||||
|
elseif HealBot_EquipChangeTimer == 0 then
|
||||||
|
HealBot_RecalcSpells();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_PlayerEnteringWorld(this)
|
||||||
|
HealBot_IsFighting = false;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_SpellcastStart(this, spell, duration)
|
||||||
|
HealBot_IsCasting = true;
|
||||||
|
HealBot_RecalcHeals();
|
||||||
|
HealBot_CheckCasting();
|
||||||
|
if spell == HEALBOT_RESURRECTION or spell == HEALBOT_ANCESTRALSPIRIT or spell == HEALBOT_REBIRTH or spell == HEALBOT_REDEMPTION then
|
||||||
|
if UnitName("Target") then
|
||||||
|
HealBot_SendAddonMessage("CTRA", "RES " .. UnitName("Target"));
|
||||||
|
HealBot_IamRessing = true;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_OnEvent_SpellcastStop(this)
|
||||||
|
HealBot_IsCasting = false;
|
||||||
|
HealBot_StopCasting();
|
||||||
|
HealBot_RecalcHeals();
|
||||||
|
if HealBot_IamRessing then
|
||||||
|
HealBot_SendAddonMessage("CTRA", "RESNO");
|
||||||
|
HealBot_IamRessing = false;
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
-- HealBot_Controller_Range.lua
|
||||||
|
-- Handles periodic range checking for units
|
||||||
|
|
||||||
|
local _scale = 0
|
||||||
|
|
||||||
|
function HealBot_ResetRangeScale()
|
||||||
|
_scale = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Range_Check(unit, range)
|
||||||
|
local return_val = 0;
|
||||||
|
if not range then
|
||||||
|
range = 40;
|
||||||
|
end
|
||||||
|
if ( unit == "player" ) then
|
||||||
|
return_val = 1;
|
||||||
|
elseif ( UnitIsVisible(unit) == 1 ) then
|
||||||
|
local tx, ty = GetPlayerMapPosition(unit)
|
||||||
|
local dist
|
||||||
|
if tx > 0 or ty > 0 then
|
||||||
|
local px, py = GetPlayerMapPosition("player")
|
||||||
|
dist = math.sqrt((px - tx)^2 + (py - ty)^2)
|
||||||
|
if dist > _scale and (px > 0 or py > 0) then
|
||||||
|
if ( CheckInteractDistance(unit, 4) ) then
|
||||||
|
_scale = dist
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if dist <= (_scale * range / 27) then
|
||||||
|
return_val = 1
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if ( HealBot_Config.QualityRange == 1 ) or range <= 27 then
|
||||||
|
if ( CheckInteractDistance(unit, 4) ) then
|
||||||
|
return_val = 1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return_val = 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return return_val;
|
||||||
|
end
|
||||||
@@ -0,0 +1,654 @@
|
|||||||
|
-- HealBot_Controller_Spells.lua
|
||||||
|
-- Centralized Spell management, calculation, and casting logic
|
||||||
|
|
||||||
|
HealBot_CastingSpell = nil;
|
||||||
|
HealBot_CastingTarget = nil;
|
||||||
|
HealBot_TargetRestorePending = nil;
|
||||||
|
HealBot_TargetRestoreTimer = 0;
|
||||||
|
|
||||||
|
local HealBot_Health60 = {
|
||||||
|
["DRUID"] = 3500,
|
||||||
|
["MAGE"] = 2500,
|
||||||
|
["HUNTER"] = 3500,
|
||||||
|
["PALADIN"] = 4000,
|
||||||
|
["PRIEST"] = 2500,
|
||||||
|
["ROGUE"] = 3500,
|
||||||
|
["SHAMAN"] = 3800,
|
||||||
|
["WARLOCK"] = 3500,
|
||||||
|
["WARRIOR"] = 5000,
|
||||||
|
}
|
||||||
|
|
||||||
|
function HealBot_GetSpellName(id)
|
||||||
|
if (not id) then
|
||||||
|
return nil;
|
||||||
|
end
|
||||||
|
local spellName, subSpellName = GetSpellName(id, BOOKTYPE_SPELL);
|
||||||
|
if (not spellName) then
|
||||||
|
return nil;
|
||||||
|
end
|
||||||
|
if (not subSpellName or subSpellName == "") then
|
||||||
|
return spellName;
|
||||||
|
end
|
||||||
|
return spellName .. " (" .. subSpellName .. ")";
|
||||||
|
end
|
||||||
|
|
||||||
|
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
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CastSpellByName(spell)
|
||||||
|
if (HealBot_Spells[spell] and HealBot_Spells[spell].BagSlot) then
|
||||||
|
HealBot_UseItem(spell);
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
local id;
|
||||||
|
if not HealBot_Spells[spell] then
|
||||||
|
id = HealBot_GetSpellId(spell);
|
||||||
|
elseif HealBot_Spells[spell].id then
|
||||||
|
id = HealBot_Spells[spell].id
|
||||||
|
else
|
||||||
|
id = HealBot_GetSpellId(spell);
|
||||||
|
end
|
||||||
|
if (not id) then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
CastSpell(id, BOOKTYPE_SPELL);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_StartCasting(spell, target, ttype)
|
||||||
|
HealBot_CastSpellByName(spell);
|
||||||
|
HealBot_CastingSpell = spell;
|
||||||
|
HealBot_CastingTarget = target;
|
||||||
|
if ( SpellCanTargetUnit(target) ) then
|
||||||
|
SpellTargetUnit(target);
|
||||||
|
ttype = "fired";
|
||||||
|
elseif SpellIsTargeting() then
|
||||||
|
SpellTargetUnit(target);
|
||||||
|
SpellStopTargeting()
|
||||||
|
elseif ttype == "direct" then
|
||||||
|
if ( CheckInteractDistance(target, 4) ) then
|
||||||
|
ttype = "fired";
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
local tName = target
|
||||||
|
if target == "target" then tName = HealBot_TargetName() or "target" else tName = UnitName(target) end
|
||||||
|
if not tName then tName = target end
|
||||||
|
local baseSpell = spell
|
||||||
|
local parenIndex = string.find(spell, "%(")
|
||||||
|
if parenIndex then
|
||||||
|
baseSpell = string.sub(spell, 1, parenIndex - 1)
|
||||||
|
end
|
||||||
|
for i = 1, 5 do
|
||||||
|
local msgConf = HealBot_Config.ChatMessages[i]
|
||||||
|
if msgConf and msgConf.Spell == baseSpell and msgConf.Channel ~= "None" then
|
||||||
|
local msg = msgConf.Message or ""
|
||||||
|
msg = string.gsub(msg, "#Spell#", spell)
|
||||||
|
msg = string.gsub(msg, "#Target#", tName)
|
||||||
|
local chan = msgConf.Channel
|
||||||
|
if chan == "Say" then
|
||||||
|
SendChatMessage(msg, "SAY")
|
||||||
|
elseif chan == "Party" and GetNumPartyMembers() > 0 then
|
||||||
|
SendChatMessage(msg, "PARTY")
|
||||||
|
elseif chan == "Raid" and GetNumRaidMembers() > 0 then
|
||||||
|
SendChatMessage(msg, "RAID")
|
||||||
|
elseif chan == "Whisper" and UnitIsPlayer(target) then
|
||||||
|
SendChatMessage(msg, "WHISPER", nil, tName)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ttype == "fired" and HealBot_Spells[spell] then
|
||||||
|
if HealBot_Spells[spell].CastTime > 1 then
|
||||||
|
HealValue = HealBot_Spells[spell].HealsDur;
|
||||||
|
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. UnitName(target) .. " <<=>> " .. HealValue .. " << ");
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_StopCasting()
|
||||||
|
if HealBot_CastingTarget then
|
||||||
|
if HealBot_HealsIn[UnitName(HealBot_CastingTarget)] then
|
||||||
|
if HealValue > 0 then
|
||||||
|
HealBot_SendAddonMessage(HEALBOT_ADDON_ID, ">> " .. UnitName(HealBot_CastingTarget) .. " <<=>> " .. 0 - HealValue .. " << ");
|
||||||
|
HealValue = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_CastingSpell = nil;
|
||||||
|
HealBot_CastingTarget = nil;
|
||||||
|
local bar = HealBot_Action_HealthBar(HealBot_Action_AbortButton);
|
||||||
|
local ar = HealBot_Config.babortcolr[HealBot_Config.Current_Skin] or 0.1;
|
||||||
|
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");
|
||||||
|
bar:SetStatusBarColor(ar, ag, ab, 0);
|
||||||
|
local sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin];
|
||||||
|
local sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin];
|
||||||
|
local sb = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin];
|
||||||
|
local sa = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin];
|
||||||
|
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_UnitHealth(unit)
|
||||||
|
local Current, Desired = UnitHealth(unit), UnitHealthMax(unit);
|
||||||
|
if unit == 'target' and Desired == 100 then
|
||||||
|
local class, level = HealBot_UnitClass(unit), UnitLevel(unit);
|
||||||
|
if HealBot_Health60[class] and level > 0 then
|
||||||
|
Desired = math.floor(HealBot_Health60[class] / 60 * level + 0.5)
|
||||||
|
else
|
||||||
|
Desired = UnitHealthMax('player');
|
||||||
|
end
|
||||||
|
Current = Desired / 100 * Current;
|
||||||
|
end
|
||||||
|
return Current, Desired;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CheckCasting(unit)
|
||||||
|
if not HealBot_CastingSpell or HealBot_AlwaysHeal() then return nil end
|
||||||
|
if not HealBot_Spells[HealBot_CastingSpell] then return nil end
|
||||||
|
if not unit then unit = HealBot_CastingTarget end
|
||||||
|
if unit ~= HealBot_CastingTarget then return nil end
|
||||||
|
|
||||||
|
local bar = HealBot_Action_HealthBar(HealBot_Action_AbortButton);
|
||||||
|
local ar = HealBot_Config.babortcolr[HealBot_Config.Current_Skin] or 0.1;
|
||||||
|
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 HealBot_IsCasting == false and HealBot_AbortButton == 0 then
|
||||||
|
bar:SetStatusBarColor(ar, ag, ab, 0);
|
||||||
|
local sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin];
|
||||||
|
local sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin];
|
||||||
|
local sb = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin];
|
||||||
|
local sa = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin];
|
||||||
|
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local Current, Desired = HealBot_UnitHealth(unit)
|
||||||
|
local Needed = Desired - Current;
|
||||||
|
Needed = Needed * (1 + (HealBot_Config.OverHeal * 4));
|
||||||
|
if Needed < 0 then Needed = 0 end
|
||||||
|
if (Needed > HealBot_Spells[HealBot_CastingSpell].HealsDur) then
|
||||||
|
local sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin];
|
||||||
|
local sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin];
|
||||||
|
local sb = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin];
|
||||||
|
local sa = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin];
|
||||||
|
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||||
|
bar:SetStatusBarColor(ar, ag, ab, 0);
|
||||||
|
return nil
|
||||||
|
elseif HealBot_AbortButton == 1 and HealBot_IsCasting == true then
|
||||||
|
bar:SetStatusBarColor(ar, ag, ab, aa);
|
||||||
|
local sr = HealBot_Config.btextenabledcolr[HealBot_Config.Current_Skin];
|
||||||
|
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");
|
||||||
|
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CastSpellOnFriend(spell, target)
|
||||||
|
if (not spell or not target or not UnitName(target)) then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
local targetEnemy = UnitCanAttack("player", "target");
|
||||||
|
local oldTarget = UnitName("target");
|
||||||
|
|
||||||
|
if oldTarget ~= UnitName(target) then
|
||||||
|
TargetUnit(target);
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_StartCasting(spell, target, "direct");
|
||||||
|
|
||||||
|
if targetEnemy then
|
||||||
|
HealBot_TargetRestorePending = { type = "enemy" };
|
||||||
|
elseif oldTarget and oldTarget ~= UnitName(target) then
|
||||||
|
HealBot_TargetRestorePending = { type = "friend" };
|
||||||
|
elseif not oldTarget then
|
||||||
|
HealBot_TargetRestorePending = { type = "clear" };
|
||||||
|
end
|
||||||
|
HealBot_TargetRestoreTimer = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_SetItemDefaults(spell)
|
||||||
|
if not HealBot_Spells[spell].Target then
|
||||||
|
HealBot_Spells[spell].Target = {"player", "party", "pet"};
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Price then
|
||||||
|
HealBot_Spells[spell].Price = 0;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].CastTime then
|
||||||
|
HealBot_Spells[spell].CastTime = 0;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Mana then
|
||||||
|
HealBot_Spells[spell].Mana = 0;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Channel then
|
||||||
|
HealBot_Spells[spell].Channel = HealBot_Spells[spell].CastTime;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Duration then
|
||||||
|
HealBot_Spells[spell].Duration = HealBot_Spells[spell].Channel;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].HealsMin then
|
||||||
|
HealBot_Spells[spell].HealsMin = 0;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].HealsMax then
|
||||||
|
HealBot_Spells[spell].HealsMax = 0;
|
||||||
|
end
|
||||||
|
HealBot_Spells[spell].RealHealing = 0;
|
||||||
|
HealBot_Spells[spell].HealsCast = (HealBot_Spells[spell].HealsMin + HealBot_Spells[spell].HealsMax) / 2;
|
||||||
|
if not HealBot_Spells[spell].HealsExt then
|
||||||
|
HealBot_Spells[spell].HealsExt = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_SetSpellDefaults(spell)
|
||||||
|
HealBot_Spells[spell].HealsDur = math.floor((HealBot_Spells[spell].HealsCast + HealBot_Spells[spell].HealsExt) + HealBot_Spells[spell].RealHealing);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_AddHeal(spell)
|
||||||
|
HealBot_SetSpellDefaults(spell);
|
||||||
|
table.foreachi(HealBot_Spells[spell].Target, function (i, val)
|
||||||
|
table.insert(HealBot_Heals[val], spell);
|
||||||
|
end);
|
||||||
|
HealBot_Spells[spell].BagSlot = HealBot_GetBagSlot(spell);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_FindHealSpells()
|
||||||
|
local id = 1;
|
||||||
|
if InitSpells > 0 then NeedEquipUpdate = 1; return; end
|
||||||
|
|
||||||
|
HealBot_Heals = { player = {}, pet = {}, party = {} };
|
||||||
|
|
||||||
|
table.foreach(HealBot_CurrentSpells, function (index, spell)
|
||||||
|
if (HealBot_Spells[spell]) then
|
||||||
|
if CalcEquipBonus then
|
||||||
|
local healingbonus_penalty = 1;
|
||||||
|
if HealBot_Spells[spell].Level < 20 then
|
||||||
|
healingbonus_penalty = (1 - ((20 - HealBot_Spells[spell].Level) * 0.0375));
|
||||||
|
end
|
||||||
|
local temp_Spell_cast = 3.5;
|
||||||
|
if HealBot_Spells[spell].CastTime == 0 then
|
||||||
|
temp_Spell_cast = 3.5;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].CastTime then
|
||||||
|
HealBot_Spells[spell].CastTime = 1.5;
|
||||||
|
end
|
||||||
|
if HealBot_Spells[spell].CastTime >= 1.5 and HealBot_Spells[spell].CastTime < 3.5 then
|
||||||
|
temp_Spell_cast = HealBot_Spells[spell].CastTime;
|
||||||
|
end
|
||||||
|
RealHealing = ((HealBot_GetBonus() * healingbonus_penalty) * (temp_Spell_cast / 3.5));
|
||||||
|
local playerClass, englishClass = UnitClass("player");
|
||||||
|
local SpiBonus = 0;
|
||||||
|
if (englishClass == "PRIEST") then
|
||||||
|
SpiBonus = ((HealBot_SpiBonus(spell) * healingbonus_penalty) * (temp_Spell_cast / 3.5))
|
||||||
|
RealHealing = RealHealing + SpiBonus;
|
||||||
|
end
|
||||||
|
RealHealing = math.floor(RealHealing);
|
||||||
|
HealBot_Spells[spell].RealHealing = RealHealing;
|
||||||
|
end
|
||||||
|
HealBot_AddHeal(spell);
|
||||||
|
end
|
||||||
|
end);
|
||||||
|
|
||||||
|
local items = {};
|
||||||
|
for bag = 0, NUM_BAG_FRAMES do
|
||||||
|
for slot = 1, GetContainerNumSlots(bag) do
|
||||||
|
local item = HealBot_GetItemName(bag, slot);
|
||||||
|
if HealBot_Spells[item] and not items[item] then
|
||||||
|
HealBot_SetItemDefaults(item);
|
||||||
|
HealBot_AddHeal(item);
|
||||||
|
items[item] = 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
table.foreach(HealBot_Heals, function (key, val)
|
||||||
|
if (table.getn(val) == 0) then
|
||||||
|
HealBot_Heals[key] = nil;
|
||||||
|
end
|
||||||
|
end);
|
||||||
|
HealBot_Heals.target = HealBot_Heals.party;
|
||||||
|
for i = 1, 4 do
|
||||||
|
HealBot_Heals["party" .. i] = HealBot_Heals.party;
|
||||||
|
HealBot_Heals["partypet" .. i] = HealBot_Heals.party;
|
||||||
|
end
|
||||||
|
for i = 1, 40 do
|
||||||
|
HealBot_Heals["raid" .. i] = HealBot_Heals.party;
|
||||||
|
HealBot_Heals["raidpet" .. i] = HealBot_Heals.party;
|
||||||
|
end
|
||||||
|
|
||||||
|
if CalcEquipBonus then
|
||||||
|
HealBot_AddDebug("...Done Equip Bonus:" .. RealHealing);
|
||||||
|
end
|
||||||
|
CalcEquipBonus = false;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_CanCastSpell(spell, unit)
|
||||||
|
local this = HealBot_Spells[spell];
|
||||||
|
if this.Mana > UnitMana("player") then return false end;
|
||||||
|
if this.BagSlot then
|
||||||
|
local bag, slot = HealBot_UnpackBagSlot(this.BagSlot);
|
||||||
|
local start, duration, enable = GetContainerItemCooldown(bag, slot);
|
||||||
|
if (start > 0 and duration > 0 and enable > 0) then
|
||||||
|
return false;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_GetHealSpell(unit, pattern)
|
||||||
|
if (not UnitName(unit)) 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 HealBot_UnitClass("player") == "DRUID" then
|
||||||
|
if HealBot_GetShapeshiftForm() then return nil end;
|
||||||
|
end
|
||||||
|
local spell = HealBot_GetSpellName(HealBot_GetSpellId(pattern))
|
||||||
|
local range = 40;
|
||||||
|
if HealBot_Spells[spell] then
|
||||||
|
if not HealBot_CanCastSpell(spell, unit) then return nil end;
|
||||||
|
range = HealBot_Spells[spell].range;
|
||||||
|
end
|
||||||
|
if HealBot_Range_Check(unit, range) == 0 then return nil end;
|
||||||
|
return spell;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_HealUnit(unit, pattern)
|
||||||
|
HealBot_CastSpellOnFriend(HealBot_GetHealSpell(unit, pattern), unit);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_RecalcHeals(unit)
|
||||||
|
HealBot_Action_Refresh(unit);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_RecalcParty()
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
if HealBot_Action_HealButtons then
|
||||||
|
for _, button in ipairs(HealBot_Action_HealButtons) do
|
||||||
|
if button and button.unit then
|
||||||
|
HealBot_OnEvent_UnitAura(nil, button.unit);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_Action_RefreshButtons();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_RecalcSpells()
|
||||||
|
HealBot_FindHealSpells();
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_SpiBonus(spell)
|
||||||
|
local heals_modifer = 0;
|
||||||
|
local base, stat, posBuff, negBuff = UnitStat("player", 5);
|
||||||
|
nameTalent, icon, tier, column, currRank, maxRank = GetTalentInfo(2, 14); -- Spiritual guidance
|
||||||
|
spiGuideBonus = stat * 0.05;
|
||||||
|
heals_modifer = heals_modifer + (currRank * spiGuideBonus);
|
||||||
|
return heals_modifer;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_GetBonus()
|
||||||
|
local HealBonus = HealBot_BonusScanner:GetBonus();
|
||||||
|
return HealBonus;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_InitSpells()
|
||||||
|
local id = 1
|
||||||
|
local cnt = 0;
|
||||||
|
local class = HealBot_UnitClass("player")
|
||||||
|
HealBot_CurrentSpells = {};
|
||||||
|
while true do
|
||||||
|
local spell = HealBot_GetSpellName(id);
|
||||||
|
if not spell then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
if (HealBot_Spells[spell]) then
|
||||||
|
HealBot_Spells[spell].id = id;
|
||||||
|
HealBot_InitGetSpellData(spell, id, class);
|
||||||
|
table.insert(HealBot_CurrentSpells, spell);
|
||||||
|
cnt = cnt + 1;
|
||||||
|
end
|
||||||
|
id = id + 1;
|
||||||
|
end
|
||||||
|
if class == "PRIEST" or class == "DRUID" or class == "PALADIN" or class == "SHAMAN" then
|
||||||
|
HealBot_AddChat("Initiated HealBot_CurrentSpells with " .. cnt .. " Spells");
|
||||||
|
end
|
||||||
|
return cnt;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_InitGetSpellData(spell, id, class)
|
||||||
|
local i, _mana, _cast, _HealsMin, _HealsMax, _HealsExt, _duration, _range, _shield, _channel;
|
||||||
|
local tooltip = getglobal("HealBot_ScanTooltip");
|
||||||
|
local tmpText, line, tmpTest
|
||||||
|
|
||||||
|
if (not spell) then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_ScanTooltip:SetOwner(HealBot_ScanTooltip, "ANCHOR_NONE")
|
||||||
|
HealBot_ScanTooltip:SetSpell(id, BOOKTYPE_SPELL);
|
||||||
|
tmpText = getglobal("HealBot_ScanTooltipTextLeft2");
|
||||||
|
if (tmpText:GetText()) then
|
||||||
|
line = tmpText:GetText();
|
||||||
|
tmpTest, tmpTest, _mana = string.find(line, HB_TOOLTIP_MANA);
|
||||||
|
else
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||||
|
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||||
|
end
|
||||||
|
|
||||||
|
tmpText = getglobal("HealBot_ScanTooltipTextRight2");
|
||||||
|
if (tmpText:GetText()) then
|
||||||
|
line = tmpText:GetText();
|
||||||
|
tmpTest, tmpTest, _range = string.find(line, HB_TOOLTIP_RANGE);
|
||||||
|
else
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||||
|
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||||
|
end
|
||||||
|
|
||||||
|
tmpText = getglobal("HealBot_ScanTooltipTextLeft3");
|
||||||
|
_cast = nil;
|
||||||
|
if (tmpText:GetText()) then
|
||||||
|
line = tmpText:GetText();
|
||||||
|
if (line == HB_TOOLTIP_INSTANT_CAST) then
|
||||||
|
_cast = 0;
|
||||||
|
elseif line == HB_TOOLTIP_CHANNELED then
|
||||||
|
_cast = 0;
|
||||||
|
elseif (tmpText) then
|
||||||
|
tmpTest, tmpTest, _cast = string.find(line, HB_TOOLTIP_CAST_TIME);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||||
|
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||||
|
end
|
||||||
|
|
||||||
|
tmpText = getglobal("HealBot_ScanTooltipTextLeft4");
|
||||||
|
tmpTest = nil;
|
||||||
|
if (tmpText:GetText()) then
|
||||||
|
line = tmpText:GetText();
|
||||||
|
if class == "PRIEST" then
|
||||||
|
if string.sub(spell, 1, 14) == string.sub(HEALBOT_POWER_WORD_SHIELD, 1, 14) then
|
||||||
|
tmpTest, tmpTest, _HealsMin, _shield = string.find(line, HB_SPELL_PATTERN_SHIELD);
|
||||||
|
_HealsExt = 0;
|
||||||
|
_HealsMax = _HealsMin;
|
||||||
|
elseif string.sub(spell, 1, 4) == string.sub(HEALBOT_RENEW, 1, 4) then
|
||||||
|
tmpTest, tmpTest, _HealsExt, tmpTest, _duration = string.find(line, HB_SPELL_PATTERN_RENEW);
|
||||||
|
_HealsMin = 0;
|
||||||
|
_HealsMax = 0;
|
||||||
|
if (_HealsExt == nil) then
|
||||||
|
tmpTest, tmpTest, _HealsExt, _duration = string.find(line, HB_SPELL_PATTERN_RENEW1);
|
||||||
|
end
|
||||||
|
if (_HealsExt == nil) then
|
||||||
|
tmpTest, tmpTest, _duration, _HealsExt = string.find(line, HB_SPELL_PATTERN_RENEW2);
|
||||||
|
end
|
||||||
|
if (_HealsExt == nil) then
|
||||||
|
tmpTest, tmpTest, _duration, _HealsExt = string.find(line, HB_SPELL_PATTERN_RENEW3);
|
||||||
|
end
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_LESSER_HEAL, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_LESSER_HEAL);
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_GREATER_HEAL, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_GREATER_HEAL);
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_FLASH_HEAL, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_FLASH_HEAL);
|
||||||
|
elseif string.sub(spell, 1, 4) == string.sub(HEALBOT_HEAL, 1, 4) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_HEAL);
|
||||||
|
end
|
||||||
|
elseif class == "DRUID" then
|
||||||
|
if string.sub(spell, 1, 6) == string.sub(HEALBOT_REGROWTH, 1, 6) then
|
||||||
|
tmpTest, tmpTest, _HealsMin, _HealsMax, _HealsExt = string.find(line, HB_SPELL_PATTERN_REGROWTH);
|
||||||
|
if (tmpTest == nil) then
|
||||||
|
tmpTest, tmpTest, _HealsMin, _HealsMax, tmpTest, _HealsExt = string.find(line, HB_SPELL_PATTERN_REGROWTH1);
|
||||||
|
end
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_REJUVENATION, 1, 9) then
|
||||||
|
tmpTest, tmpTest, _HealsExt, _duration = string.find(line, HB_SPELL_PATTERN_REJUVENATION);
|
||||||
|
_HealsMin = 0;
|
||||||
|
_HealsMax = 0;
|
||||||
|
if (_HealsExt == nil) then
|
||||||
|
tmpTest, tmpTest, _HealsExt, tmpTest, _duration = string.find(line, HB_SPELL_PATTERN_REJUVENATION1);
|
||||||
|
end
|
||||||
|
elseif string.sub(spell, 1, 7) == string.sub(HEALBOT_HEALING_TOUCH, 1, 7) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_HEALING_TOUCH);
|
||||||
|
end
|
||||||
|
elseif class == "PALADIN" then
|
||||||
|
if string.sub(spell, 1, 9) == string.sub(HEALBOT_HOLY_LIGHT, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_HOLY_LIGHT);
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_FLASH_OF_LIGHT, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_FLASH_OF_LIGHT);
|
||||||
|
end
|
||||||
|
elseif class == "SHAMAN" then
|
||||||
|
if string.sub(spell, 1, 9) == string.sub(HEALBOT_HEALING_WAVE, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_HEALING_WAVE);
|
||||||
|
elseif string.sub(spell, 1, 9) == string.sub(HEALBOT_LESSER_HEALING_WAVE, 1, 9) then
|
||||||
|
tmpTest, _HealsMin, _HealsMax = HealBot_Generic_Patten(line, HB_SPELL_PATTERN_LESSER_HEALING_WAVE);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||||
|
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||||
|
end
|
||||||
|
|
||||||
|
if (_mana == nil) then
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: _mana is NIL");
|
||||||
|
HealBot_Report_Error("ERROR: Spell: " .. spell);
|
||||||
|
if HealBot_ScanTooltipTextLeft2:GetText() then
|
||||||
|
HealBot_Report_Error("ERROR: Tooltip = >> " .. HealBot_ScanTooltipTextLeft2:GetText() .. " <<");
|
||||||
|
end
|
||||||
|
HealBot_Report_Error("ERROR: Patten = >> " .. HB_TOOLTIP_MANA .. " <<");
|
||||||
|
end
|
||||||
|
if (_range == nil) then
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: _range is NIL");
|
||||||
|
HealBot_Report_Error("ERROR: Spell: " .. spell);
|
||||||
|
if HealBot_ScanTooltipTextRight2:GetText() then
|
||||||
|
HealBot_Report_Error("ERROR: Tooltip = >> " .. HealBot_ScanTooltipTextRight2:GetText() .. " <<");
|
||||||
|
end
|
||||||
|
HealBot_Report_Error("ERROR: Patten = >> " .. HB_TOOLTIP_RANGE .. " <<");
|
||||||
|
end
|
||||||
|
if (_cast == nil) then
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: _cast is NIL");
|
||||||
|
HealBot_Report_Error("ERROR: Spell: " .. spell);
|
||||||
|
if HealBot_ScanTooltipTextLeft3:GetText() then
|
||||||
|
HealBot_Report_Error("ERROR: Tooltip = >> " .. HealBot_ScanTooltipTextLeft3:GetText() .. " <<");
|
||||||
|
end
|
||||||
|
HealBot_Report_Error("ERROR: Patten = >> " .. HB_TOOLTIP_CAST_TIME .. " <<");
|
||||||
|
end
|
||||||
|
if (tmpTest == nil) then
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: tmpTest == nil");
|
||||||
|
HealBot_Report_Error("ERROR: spell = " .. spell);
|
||||||
|
if line then
|
||||||
|
HealBot_Report_Error("ERROR: Tooltip = >> " .. line .. " <<");
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Spells[spell].CastTime = tonumber(_cast);
|
||||||
|
HealBot_Spells[spell].Mana = tonumber(_mana);
|
||||||
|
HealBot_Spells[spell].Range = tonumber(_range);
|
||||||
|
HealBot_Spells[spell].HealsMin = tonumber(_HealsMin);
|
||||||
|
HealBot_Spells[spell].HealsMax = tonumber(_HealsMax);
|
||||||
|
if _HealsExt then
|
||||||
|
HealBot_Spells[spell].HealsExt = tonumber(_HealsExt);
|
||||||
|
end
|
||||||
|
if _duration then
|
||||||
|
HealBot_Spells[spell].Duration = tonumber(_duration);
|
||||||
|
end
|
||||||
|
if _shield then
|
||||||
|
HealBot_Spells[spell].Shield = tonumber(_shield);
|
||||||
|
end
|
||||||
|
if _channel then
|
||||||
|
HealBot_Spells[spell].Channel = tonumber(_channel);
|
||||||
|
end
|
||||||
|
|
||||||
|
if not HealBot_Spells[spell].Target then
|
||||||
|
HealBot_Spells[spell].Target = {"player", "party", "pet"};
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Price then
|
||||||
|
HealBot_Spells[spell].Price = 0;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Channel then
|
||||||
|
HealBot_Spells[spell].Channel = HealBot_Spells[spell].CastTime;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Duration then
|
||||||
|
HealBot_Spells[spell].Duration = HealBot_Spells[spell].Channel;
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].RealHealing then
|
||||||
|
HealBot_Spells[spell].RealHealing = 0;
|
||||||
|
end
|
||||||
|
HealBot_Spells[spell].HealsCast = (HealBot_Spells[spell].HealsMin + HealBot_Spells[spell].HealsMax) / 2;
|
||||||
|
if not HealBot_Spells[spell].HealsExt then
|
||||||
|
HealBot_Spells[spell].HealsExt = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Generic_Patten(matchStr, matchPattern)
|
||||||
|
local tmpTest, _HealsMin, _HealsMax, _HealsExt, _duration
|
||||||
|
tmpTest, tmpTest, _HealsMin, _HealsMax = string.find(matchStr, matchPattern);
|
||||||
|
if (tmpTest == nil) then
|
||||||
|
HealBot_Report_Error("================================");
|
||||||
|
HealBot_Report_Error("ERROR: tmpTest == nil");
|
||||||
|
HealBot_Report_Error("ERROR: pattern = " .. matchPattern);
|
||||||
|
HealBot_Report_Error("ERROR: Tooltip = >> " .. matchStr .. " <<");
|
||||||
|
end
|
||||||
|
return tmpTest, _HealsMin, _HealsMax;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_GetShapeshiftForm()
|
||||||
|
local forms = GetNumShapeshiftForms();
|
||||||
|
if forms then
|
||||||
|
local i;
|
||||||
|
for i=1,forms do
|
||||||
|
local icon,name,active = GetShapeshiftFormInfo(i);
|
||||||
|
if active and not string.find(icon,"HumanoidForm") then return i; end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil;
|
||||||
|
end
|
||||||
+13
-5
@@ -1,6 +1,6 @@
|
|||||||
HealBot_ConfigDefaults = {
|
HealBot_ConfigDefaults = {
|
||||||
ShowManaBars=0,
|
ShowManaBars=0,
|
||||||
ManaBarsHealersOnly=1,
|
ManaBarsHealersOnly=0,
|
||||||
Version = HEALBOT_VERSION,
|
Version = HEALBOT_VERSION,
|
||||||
AlertLevel = 0.95,
|
AlertLevel = 0.95,
|
||||||
AutoClose = 1,
|
AutoClose = 1,
|
||||||
@@ -10,6 +10,8 @@ HealBot_ConfigDefaults = {
|
|||||||
TargetHeals = 1,
|
TargetHeals = 1,
|
||||||
EmergencyHeals = 1,
|
EmergencyHeals = 1,
|
||||||
ActionLocked = 0,
|
ActionLocked = 0,
|
||||||
|
ActionVisible = 1,
|
||||||
|
HideSolo = 0,
|
||||||
OverHeal = 0.25,
|
OverHeal = 0.25,
|
||||||
CastNotify = 1,
|
CastNotify = 1,
|
||||||
ChatMessages = {
|
ChatMessages = {
|
||||||
@@ -172,15 +174,15 @@ HealBot_ConfigDefaults = {
|
|||||||
ActionVisible = 0,
|
ActionVisible = 0,
|
||||||
CDCLeftText = {[HEALBOT_PRIEST]="None", [HEALBOT_SHAMAN]="None", [HEALBOT_DRUID]="None", [HEALBOT_PALADIN]="None",},
|
CDCLeftText = {[HEALBOT_PRIEST]="None", [HEALBOT_SHAMAN]="None", [HEALBOT_DRUID]="None", [HEALBOT_PALADIN]="None",},
|
||||||
CDCRightText = {[HEALBOT_PRIEST]="None", [HEALBOT_SHAMAN]="None", [HEALBOT_DRUID]="None", [HEALBOT_PALADIN]="None",},
|
CDCRightText = {[HEALBOT_PRIEST]="None", [HEALBOT_SHAMAN]="None", [HEALBOT_DRUID]="None", [HEALBOT_PALADIN]="None",},
|
||||||
Current_Skin = HEALBOT_SKINS_STD,
|
Current_Skin = "Modern Flat",
|
||||||
Skin_ID = 1,
|
Skin_ID = 1,
|
||||||
Skins = {HEALBOT_SKINS_STD, "HealBot Party", "HealBot Raid", "Alteric Valley", "Modern Flat"},
|
Skins = {"Modern Flat", HEALBOT_SKINS_STD, "HealBot Party", "HealBot Raid", "Alteric Valley"},
|
||||||
numcols = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 4, ["Alteric Valley"] = 2, ["Modern Flat"] = 1},
|
numcols = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 4, ["Alteric Valley"] = 2, ["Modern Flat"] = 1},
|
||||||
btexture = {[HEALBOT_SKINS_STD] = 8,["HealBot Party"] = 6, ["HealBot Raid"] = 7, ["Alteric Valley"] = 9, ["Modern Flat"] = 10},
|
btexture = {[HEALBOT_SKINS_STD] = 8,["HealBot Party"] = 6, ["HealBot Raid"] = 7, ["Alteric Valley"] = 9, ["Modern Flat"] = 10},
|
||||||
bcspace = {[HEALBOT_SKINS_STD] = 4, ["HealBot Party"] = 4, ["HealBot Raid"] = 2, ["Alteric Valley"] = 2, ["Modern Flat"] = 4},
|
bcspace = {[HEALBOT_SKINS_STD] = 4, ["HealBot Party"] = 4, ["HealBot Raid"] = 2, ["Alteric Valley"] = 2, ["Modern Flat"] = 4},
|
||||||
brspace = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 2, ["HealBot Raid"] = 2, ["Alteric Valley"] = 1, ["Modern Flat"] = 2},
|
brspace = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 2, ["HealBot Raid"] = 2, ["Alteric Valley"] = 1, ["Modern Flat"] = 2},
|
||||||
bwidth = {[HEALBOT_SKINS_STD] = 122, ["HealBot Party"] = 115, ["HealBot Raid"] = 90, ["Alteric Valley"] = 85, ["Modern Flat"] = 122},
|
bwidth = {[HEALBOT_SKINS_STD] = 122, ["HealBot Party"] = 115, ["HealBot Raid"] = 90, ["Alteric Valley"] = 85, ["Modern Flat"] = 100},
|
||||||
bheight = {[HEALBOT_SKINS_STD] = 19, ["HealBot Party"] = 18, ["HealBot Raid"] = 14, ["Alteric Valley"] = 16, ["Modern Flat"] = 20},
|
bheight = {[HEALBOT_SKINS_STD] = 19, ["HealBot Party"] = 18, ["HealBot Raid"] = 14, ["Alteric Valley"] = 16, ["Modern Flat"] = 40},
|
||||||
btextenabledcolr = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
btextenabledcolr = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
||||||
btextenabledcolg = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
btextenabledcolg = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
||||||
btextenabledcolb = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 1},
|
btextenabledcolb = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 1},
|
||||||
@@ -213,11 +215,17 @@ HealBot_ConfigDefaults = {
|
|||||||
ShowHeader = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
ShowHeader = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 1},
|
||||||
bcolormode = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 2},
|
bcolormode = {[HEALBOT_SKINS_STD] = 1, ["HealBot Party"] = 1, ["HealBot Raid"] = 1, ["Alteric Valley"] = 1, ["Modern Flat"] = 2},
|
||||||
bborder = {[HEALBOT_SKINS_STD] = 2, ["HealBot Party"] = 2, ["HealBot Raid"] = 2, ["Alteric Valley"] = 2, ["Modern Flat"] = 1},
|
bborder = {[HEALBOT_SKINS_STD] = 2, ["HealBot Party"] = 2, ["HealBot Raid"] = 2, ["Alteric Valley"] = 2, ["Modern Flat"] = 1},
|
||||||
|
bpadding = {[HEALBOT_SKINS_STD] = 10, ["HealBot Party"] = 10, ["HealBot Raid"] = 10, ["Alteric Valley"] = 10, ["Modern Flat"] = 10},
|
||||||
|
bboffset = {[HEALBOT_SKINS_STD] = 16, ["HealBot Party"] = 16, ["HealBot Raid"] = 16, ["Alteric Valley"] = 16, ["Modern Flat"] = 3},
|
||||||
bfontoutline = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 1},
|
bfontoutline = {[HEALBOT_SKINS_STD] = 0, ["HealBot Party"] = 0, ["HealBot Raid"] = 0, ["Alteric Valley"] = 0, ["Modern Flat"] = 1},
|
||||||
|
ShowTooltip = 1,
|
||||||
|
ShowManaBars = 0,
|
||||||
|
ManaBarsHealersOnly = 0,
|
||||||
Tooltip_ShowSpellDetail = 0,
|
Tooltip_ShowSpellDetail = 0,
|
||||||
Tooltip_ShowTarget = 1,
|
Tooltip_ShowTarget = 1,
|
||||||
Tooltip_Recommend = 1,
|
Tooltip_Recommend = 1,
|
||||||
TooltipPos = 1,
|
TooltipPos = 1,
|
||||||
|
HideParty = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
HealBot_Config = {};
|
HealBot_Config = {};
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ HEALBOT_OPTIONS_TAB_HEALING = "Heilung";
|
|||||||
HEALBOT_OPTIONS_TAB_CDC = "Debuffs";
|
HEALBOT_OPTIONS_TAB_CDC = "Debuffs";
|
||||||
HEALBOT_OPTIONS_TAB_SKIN = "Skin"
|
HEALBOT_OPTIONS_TAB_SKIN = "Skin"
|
||||||
|
|
||||||
HEALBOT_OPTIONS_PANEL_TEXT = "Heilungspanel Optionen:"
|
HEALBOT_OPTIONS_PANEL_TEXT = "Manabalken Optionen:"
|
||||||
HEALBOT_OPTIONS_BARALPHA = "Leisten Transparenz";
|
HEALBOT_OPTIONS_BARALPHA = "Leisten Transparenz";
|
||||||
HEALBOT_OPTIONS_BARALPHAINHEAL = "Ankomm.Heilung Transparenz";
|
HEALBOT_OPTIONS_BARALPHAINHEAL = "Ankomm.Heilung Transparenz";
|
||||||
HEALBOT_OPTIONS_ACTIONLOCKED = "Fenster fixieren";
|
HEALBOT_OPTIONS_ACTIONLOCKED = "Fenster fixieren";
|
||||||
@@ -218,6 +218,7 @@ HEALBOT_OPTIONS_QUALITYRANGE = "Exakter 25 Meter Check in Instanzen";
|
|||||||
HEALBOT_OPTIONS_INTEGRATECTRA = "Integriere CTRA";
|
HEALBOT_OPTIONS_INTEGRATECTRA = "Integriere CTRA";
|
||||||
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
||||||
HEALBOT_OPTIONS_PROTECTPVP = "Vermeidung des PvP Flags";
|
HEALBOT_OPTIONS_PROTECTPVP = "Vermeidung des PvP Flags";
|
||||||
|
HEALBOT_OPTIONS_HIDEPARTY = "Standard-Gruppenfenster ausblenden";
|
||||||
HEALBOT_OPTIONS_HEAL_CHATOPT = "Chat Optionen";
|
HEALBOT_OPTIONS_HEAL_CHATOPT = "Chat Optionen";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SKINTEXT = "Skin"
|
HEALBOT_OPTIONS_SKINTEXT = "Skin"
|
||||||
@@ -320,6 +321,13 @@ HEALBOT_CLASSES_RANGES = "Fernkampf";
|
|||||||
HEALBOT_CLASSES_HEALERS = "Heiler";
|
HEALBOT_CLASSES_HEALERS = "Heiler";
|
||||||
HEALBOT_CLASSES_CUSTOM = "pers\195\182nlich";
|
HEALBOT_CLASSES_CUSTOM = "pers\195\182nlich";
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_MONITORNO = "Keine";
|
||||||
|
HEALBOT_OPTIONS_MONITORALL = "Alle";
|
||||||
|
HEALBOT_OPTIONS_MONITORMELEE = "Nahkampf";
|
||||||
|
HEALBOT_OPTIONS_MONITORRANGE = "Fernkampf";
|
||||||
|
HEALBOT_OPTIONS_MONITORHEALERS = "Heiler";
|
||||||
|
HEALBOT_OPTIONS_MONITORCUSTOM = "Eigene";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SHOWTOOLTIP = "Zeige Tooltips";
|
HEALBOT_OPTIONS_SHOWTOOLTIP = "Zeige Tooltips";
|
||||||
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "Zeige detaillierte Spruchinfos";
|
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "Zeige detaillierte Spruchinfos";
|
||||||
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "Zeige Zielinfos";
|
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "Zeige Zielinfos";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
HEALBOT_VERSION = "1.2.2";
|
HEALBOT_VERSION = "1.3.2";
|
||||||
|
|
||||||
-------------
|
-------------
|
||||||
-- ENGLISH --
|
-- ENGLISH --
|
||||||
@@ -230,7 +230,7 @@ HEALBOT_OPTIONS_TAB_SKIN = "Skin";
|
|||||||
HEALBOT_OPTIONS_TAB_BUFF = "Buff";
|
HEALBOT_OPTIONS_TAB_BUFF = "Buff";
|
||||||
HEALBOT_OPTIONS_TAB_CHAT = "Chat";
|
HEALBOT_OPTIONS_TAB_CHAT = "Chat";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_PANEL_TEXT = "Healing panel options:"
|
HEALBOT_OPTIONS_PANEL_TEXT = "Mana bar options:"
|
||||||
HEALBOT_OPTIONS_BARALPHA = "Bar opacity";
|
HEALBOT_OPTIONS_BARALPHA = "Bar opacity";
|
||||||
HEALBOT_OPTIONS_BARALPHAINHEAL= "Incoming heals opacity";
|
HEALBOT_OPTIONS_BARALPHAINHEAL= "Incoming heals opacity";
|
||||||
HEALBOT_OPTIONS_ACTIONLOCKED = "Lock position";
|
HEALBOT_OPTIONS_ACTIONLOCKED = "Lock position";
|
||||||
@@ -243,6 +243,7 @@ HEALBOT_OPTIONS_QUALITYRANGE = "Exact 27yard range check in instances";
|
|||||||
--HEALBOT_OPTIONS_INTEGRATECTRA = "Integrate CTRA";
|
--HEALBOT_OPTIONS_INTEGRATECTRA = "Integrate CTRA";
|
||||||
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
||||||
HEALBOT_OPTIONS_PROTECTPVP = "Avoid accidental PvP flagging";
|
HEALBOT_OPTIONS_PROTECTPVP = "Avoid accidental PvP flagging";
|
||||||
|
HEALBOT_OPTIONS_HIDEPARTY = "Hide Default Party Frames";
|
||||||
HEALBOT_OPTIONS_HEAL_CHATOPT = "Chat Options";
|
HEALBOT_OPTIONS_HEAL_CHATOPT = "Chat Options";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SKINTEXT = "Use skin"
|
HEALBOT_OPTIONS_SKINTEXT = "Use skin"
|
||||||
@@ -358,6 +359,13 @@ HEALBOT_CLASSES_RANGES = "Ranged";
|
|||||||
HEALBOT_CLASSES_HEALERS = "Healers";
|
HEALBOT_CLASSES_HEALERS = "Healers";
|
||||||
HEALBOT_CLASSES_CUSTOM = "Custom";
|
HEALBOT_CLASSES_CUSTOM = "Custom";
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_MONITORNO = "None";
|
||||||
|
HEALBOT_OPTIONS_MONITORALL = "All";
|
||||||
|
HEALBOT_OPTIONS_MONITORMELEE = "Melee";
|
||||||
|
HEALBOT_OPTIONS_MONITORRANGE = "Ranged";
|
||||||
|
HEALBOT_OPTIONS_MONITORHEALERS = "Healers";
|
||||||
|
HEALBOT_OPTIONS_MONITORCUSTOM = "Custom";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SHOWTOOLTIP = "Show tooltips";
|
HEALBOT_OPTIONS_SHOWTOOLTIP = "Show tooltips";
|
||||||
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "Show detailed spell information";
|
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "Show detailed spell information";
|
||||||
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "Show target information";
|
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "Show target information";
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ HEALBOT_OPTIONS_TAB_CDC = "Cure";
|
|||||||
HEALBOT_OPTIONS_TAB_SKIN = "Skin"
|
HEALBOT_OPTIONS_TAB_SKIN = "Skin"
|
||||||
|
|
||||||
|
|
||||||
HEALBOT_OPTIONS_PANEL_TEXT = "Panneau d'option de soin:"
|
HEALBOT_OPTIONS_PANEL_TEXT = "Options de barre de mana:"
|
||||||
HEALBOT_OPTIONS_ACTIONLOCKED = "Bloquer la position";
|
HEALBOT_OPTIONS_ACTIONLOCKED = "Bloquer la position";
|
||||||
HEALBOT_OPTIONS_GROWUPWARDS = "Monter";
|
HEALBOT_OPTIONS_GROWUPWARDS = "Monter";
|
||||||
HEALBOT_OPTIONS_AUTOSHOW = "Ouvrir automatiquement";
|
HEALBOT_OPTIONS_AUTOSHOW = "Ouvrir automatiquement";
|
||||||
@@ -200,6 +200,7 @@ HEALBOT_OPTIONS_QUALITYRANGE = "Exact 27yard range check in instances";
|
|||||||
HEALBOT_OPTIONS_INTEGRATECTRA = "Intregrer CTRA";
|
HEALBOT_OPTIONS_INTEGRATECTRA = "Intregrer CTRA";
|
||||||
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
HEALBOT_OPTIONS_TOGGLEALTUSE = "Toggle Alt-key";
|
||||||
HEALBOT_OPTIONS_PROTECTPVP = "Avoid accidental PvP flagging";
|
HEALBOT_OPTIONS_PROTECTPVP = "Avoid accidental PvP flagging";
|
||||||
|
HEALBOT_OPTIONS_HIDEPARTY = "Masquer les cadres de groupe par défaut";
|
||||||
|
|
||||||
|
|
||||||
HEALBOT_OPTIONS_ITEMS = "Objets";
|
HEALBOT_OPTIONS_ITEMS = "Objets";
|
||||||
@@ -259,6 +260,13 @@ HEALBOT_CLASSES_RANGES = "Distances";
|
|||||||
HEALBOT_CLASSES_HEALERS = "Soigneurs";
|
HEALBOT_CLASSES_HEALERS = "Soigneurs";
|
||||||
HEALBOT_CLASSES_CUSTOM = "Divers";
|
HEALBOT_CLASSES_CUSTOM = "Divers";
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_MONITORNO = "Aucun";
|
||||||
|
HEALBOT_OPTIONS_MONITORALL = "Tous";
|
||||||
|
HEALBOT_OPTIONS_MONITORMELEE = "M\195\169l\195\169e";
|
||||||
|
HEALBOT_OPTIONS_MONITORRANGE = "\195\128 distance";
|
||||||
|
HEALBOT_OPTIONS_MONITORHEALERS = "Soigneurs";
|
||||||
|
HEALBOT_OPTIONS_MONITORCUSTOM = "Personnalis\195\169";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_BARALPHAINHEAL= "Incoming heal opacity"; -- *************** needs French translation ***************
|
HEALBOT_OPTIONS_BARALPHAINHEAL= "Incoming heal opacity"; -- *************** needs French translation ***************
|
||||||
|
|
||||||
HEALBOT_OPTIONS_CDCBUTTONS = "Curing buttons"; -- *************** needs French translation ***************
|
HEALBOT_OPTIONS_CDCBUTTONS = "Curing buttons"; -- *************** needs French translation ***************
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
|
|||||||
HEALBOT_OPTIONS_TAB_CDC = "치료";
|
HEALBOT_OPTIONS_TAB_CDC = "치료";
|
||||||
HEALBOT_OPTIONS_TAB_SKIN = "스킨"
|
HEALBOT_OPTIONS_TAB_SKIN = "스킨"
|
||||||
|
|
||||||
HEALBOT_OPTIONS_PANEL_TEXT = "치유 패널 옵션:"
|
HEALBOT_OPTIONS_PANEL_TEXT = "마나 바 옵션:"
|
||||||
HEALBOT_OPTIONS_BARALPHA = "바 불투명도";
|
HEALBOT_OPTIONS_BARALPHA = "바 불투명도";
|
||||||
HEALBOT_OPTIONS_BARALPHAINHEAL = "들어오는 치유 불투명도";
|
HEALBOT_OPTIONS_BARALPHAINHEAL = "들어오는 치유 불투명도";
|
||||||
HEALBOT_OPTIONS_ACTIONLOCKED = "위치 고정";
|
HEALBOT_OPTIONS_ACTIONLOCKED = "위치 고정";
|
||||||
@@ -197,6 +197,7 @@ HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
|
|||||||
--HEALBOT_OPTIONS_INTEGRATECTRA = "CTRA 연동";
|
--HEALBOT_OPTIONS_INTEGRATECTRA = "CTRA 연동";
|
||||||
HEALBOT_OPTIONS_TOGGLEALTUSE = "Alt-key 토글";
|
HEALBOT_OPTIONS_TOGGLEALTUSE = "Alt-key 토글";
|
||||||
HEALBOT_OPTIONS_PROTECTPVP = "우발적 PvP 상태 피함";
|
HEALBOT_OPTIONS_PROTECTPVP = "우발적 PvP 상태 피함";
|
||||||
|
HEALBOT_OPTIONS_HIDEPARTY = "기본 파티 프레임 숨김";
|
||||||
HEALBOT_OPTIONS_HEAL_CHATOPT = "대화창 옵션";
|
HEALBOT_OPTIONS_HEAL_CHATOPT = "대화창 옵션";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SKINTEXT = "스킨 사용"
|
HEALBOT_OPTIONS_SKINTEXT = "스킨 사용"
|
||||||
@@ -302,6 +303,13 @@ HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
|
|||||||
HEALBOT_CLASSES_HEALERS = "힐러들";
|
HEALBOT_CLASSES_HEALERS = "힐러들";
|
||||||
HEALBOT_CLASSES_CUSTOM = "사용자";
|
HEALBOT_CLASSES_CUSTOM = "사용자";
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_MONITORNO = "없음";
|
||||||
|
HEALBOT_OPTIONS_MONITORALL = "모두";
|
||||||
|
HEALBOT_OPTIONS_MONITORMELEE = "근접";
|
||||||
|
HEALBOT_OPTIONS_MONITORRANGE = "원거리";
|
||||||
|
HEALBOT_OPTIONS_MONITORHEALERS = "힐러";
|
||||||
|
HEALBOT_OPTIONS_MONITORCUSTOM = "사용자 정의";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_SHOWTOOLTIP = "툴팁 표시";
|
HEALBOT_OPTIONS_SHOWTOOLTIP = "툴팁 표시";
|
||||||
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "주문 정보 표시";
|
HEALBOT_OPTIONS_SHOWDETTOOLTIP = "주문 정보 표시";
|
||||||
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "대상 정보 표시";
|
HEALBOT_OPTIONS_SHOWUNITTOOLTIP = "대상 정보 표시";
|
||||||
|
|||||||
+106
-2
@@ -1,6 +1,110 @@
|
|||||||
-- HealBot_Model.lua
|
-- HealBot_Model.lua
|
||||||
-- Centralized Data Store and Observer System for HealBotBlue
|
-- Centralized Data Store and Observer System for HealBotBlue
|
||||||
|
|
||||||
|
-- Fix legacy client UIDropDownMenu crash when setting value/id/refreshing while dropdown is not open
|
||||||
|
if UIDropDownMenu_Refresh and not HealBot_UIDropDownMenu_Refresh_Fixed then
|
||||||
|
local orig_UIDropDownMenu_Refresh = UIDropDownMenu_Refresh
|
||||||
|
UIDropDownMenu_Refresh = function(frame, useValue, group)
|
||||||
|
local targetFrame = frame or this
|
||||||
|
if not targetFrame or type(targetFrame) ~= "table" then return end
|
||||||
|
if not UIDROPDOWNMENU_OPEN_MENU or (targetFrame.GetName and targetFrame:GetName() ~= UIDROPDOWNMENU_OPEN_MENU) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
orig_UIDropDownMenu_Refresh(targetFrame, useValue, group)
|
||||||
|
end
|
||||||
|
HealBot_UIDropDownMenu_Refresh_Fixed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if UIDropDownMenu_Initialize and not HealBot_UIDropDownMenu_Initialize_Fixed then
|
||||||
|
local orig_UIDropDownMenu_Initialize = UIDropDownMenu_Initialize
|
||||||
|
UIDropDownMenu_Initialize = function(frame, initFunction, displayMode, level)
|
||||||
|
local targetFrame = frame or this
|
||||||
|
if not targetFrame or type(targetFrame) ~= "table" then return end
|
||||||
|
|
||||||
|
local name = targetFrame.GetName and targetFrame:GetName()
|
||||||
|
if UIDROPDOWNMENU_OPEN_MENU and name and name == UIDROPDOWNMENU_OPEN_MENU then
|
||||||
|
orig_UIDropDownMenu_Initialize(targetFrame, initFunction, displayMode, level)
|
||||||
|
else
|
||||||
|
local orig_AddButton = UIDropDownMenu_AddButton
|
||||||
|
UIDropDownMenu_AddButton = function(info, lvl)
|
||||||
|
-- Do nothing to prevent button accumulation in DropDownList1
|
||||||
|
end
|
||||||
|
orig_UIDropDownMenu_Initialize(targetFrame, initFunction, displayMode, level)
|
||||||
|
UIDropDownMenu_AddButton = orig_AddButton
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_UIDropDownMenu_Initialize_Fixed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if UIDropDownMenu_SetSelectedID and not HealBot_UIDropDownMenu_SetSelectedID_Fixed then
|
||||||
|
local orig_UIDropDownMenu_SetSelectedID = UIDropDownMenu_SetSelectedID
|
||||||
|
UIDropDownMenu_SetSelectedID = function(frame, id, useValue)
|
||||||
|
local targetFrame = frame or this
|
||||||
|
if not targetFrame or type(targetFrame) ~= "table" then return end
|
||||||
|
|
||||||
|
local name = targetFrame.GetName and targetFrame:GetName()
|
||||||
|
if UIDROPDOWNMENU_OPEN_MENU and name and name == UIDROPDOWNMENU_OPEN_MENU then
|
||||||
|
orig_UIDropDownMenu_SetSelectedID(targetFrame, id, useValue)
|
||||||
|
else
|
||||||
|
targetFrame.selectedID = id
|
||||||
|
targetFrame.selectedValue = nil
|
||||||
|
targetFrame.selectedName = nil
|
||||||
|
if targetFrame.initialize then
|
||||||
|
local buttons = {}
|
||||||
|
local orig_AddButton = UIDropDownMenu_AddButton
|
||||||
|
UIDropDownMenu_AddButton = function(info, level)
|
||||||
|
table.insert(buttons, info)
|
||||||
|
end
|
||||||
|
local temp_this = this
|
||||||
|
this = targetFrame
|
||||||
|
targetFrame.initialize(1)
|
||||||
|
this = temp_this
|
||||||
|
UIDropDownMenu_AddButton = orig_AddButton
|
||||||
|
if buttons[id] then
|
||||||
|
UIDropDownMenu_SetText(buttons[id].text, targetFrame)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_UIDropDownMenu_SetSelectedID_Fixed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if UIDropDownMenu_SetSelectedValue and not HealBot_UIDropDownMenu_SetSelectedValue_Fixed then
|
||||||
|
local orig_UIDropDownMenu_SetSelectedValue = UIDropDownMenu_SetSelectedValue
|
||||||
|
UIDropDownMenu_SetSelectedValue = function(frame, value, useValue)
|
||||||
|
local targetFrame = frame or this
|
||||||
|
if not targetFrame or type(targetFrame) ~= "table" then return end
|
||||||
|
|
||||||
|
local name = targetFrame.GetName and targetFrame:GetName()
|
||||||
|
if UIDROPDOWNMENU_OPEN_MENU and name and name == UIDROPDOWNMENU_OPEN_MENU then
|
||||||
|
orig_UIDropDownMenu_SetSelectedValue(targetFrame, value, useValue)
|
||||||
|
else
|
||||||
|
targetFrame.selectedID = nil
|
||||||
|
targetFrame.selectedValue = value
|
||||||
|
targetFrame.selectedName = nil
|
||||||
|
if targetFrame.initialize then
|
||||||
|
local buttons = {}
|
||||||
|
local orig_AddButton = UIDropDownMenu_AddButton
|
||||||
|
UIDropDownMenu_AddButton = function(info, level)
|
||||||
|
table.insert(buttons, info)
|
||||||
|
end
|
||||||
|
local temp_this = this
|
||||||
|
this = targetFrame
|
||||||
|
targetFrame.initialize(1)
|
||||||
|
this = temp_this
|
||||||
|
UIDropDownMenu_AddButton = orig_AddButton
|
||||||
|
for _, btn in ipairs(buttons) do
|
||||||
|
if btn.value == value then
|
||||||
|
UIDropDownMenu_SetText(btn.text, targetFrame)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_UIDropDownMenu_SetSelectedValue_Fixed = true
|
||||||
|
end
|
||||||
|
|
||||||
HealBot_Model = {
|
HealBot_Model = {
|
||||||
observers = {},
|
observers = {},
|
||||||
units = {},
|
units = {},
|
||||||
@@ -32,11 +136,11 @@ function HealBot_Model:RegisterObserver(event, callback)
|
|||||||
table.insert(self.observers[event], callback)
|
table.insert(self.observers[event], callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
function HealBot_Model:NotifyObservers(event, unitID, ...)
|
function HealBot_Model:NotifyObservers(event, unitID, arg1, arg2)
|
||||||
if self.observers[event] then
|
if self.observers[event] then
|
||||||
local len = table.getn(self.observers[event])
|
local len = table.getn(self.observers[event])
|
||||||
for i = 1, len do
|
for i = 1, len do
|
||||||
self.observers[event][i](unitID, unpack(arg))
|
self.observers[event][i](unitID, arg1, arg2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+78
-1500
File diff suppressed because it is too large
Load Diff
+37
-2575
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,116 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_Buffs.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_Options_BuffWatch_OnClick(self)
|
||||||
|
local frame = self or this
|
||||||
|
HealBot_Config.BuffWatch = frame:GetChecked() or 0;
|
||||||
|
if HealBot_Config.BuffWatch == 0 then
|
||||||
|
HealBot_Options_BuffWatchInCombat:Disable()
|
||||||
|
else
|
||||||
|
HealBot_Options_BuffWatchInCombat:Enable()
|
||||||
|
end
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_BuffWatchInCombat_OnClick(self)
|
||||||
|
local frame = self or this
|
||||||
|
HealBot_Config.BuffWatchInCombat = frame:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_BuffSelf_OnLoad(self)
|
||||||
|
local frame = self or this
|
||||||
|
getglobal(this:GetName().."Text"):SetText("Self Only")
|
||||||
|
local id = this:GetID()
|
||||||
|
if HealBot_Config.BuffWatchSelf and HealBot_Config.BuffWatchSelf[id] then
|
||||||
|
this:SetChecked(HealBot_Config.BuffWatchSelf[id])
|
||||||
|
else
|
||||||
|
this:SetChecked(0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_BuffSelf_OnClick(self)
|
||||||
|
local frame = self or this
|
||||||
|
local id = this:GetID()
|
||||||
|
if not HealBot_Config.BuffWatchSelf then
|
||||||
|
HealBot_Config.BuffWatchSelf = {0,0,0,0,0,0,0,0}
|
||||||
|
end
|
||||||
|
if frame:GetChecked() then
|
||||||
|
HealBot_Config.BuffWatchSelf[id] = 1
|
||||||
|
else
|
||||||
|
HealBot_Config.BuffWatchSelf[id] = 0
|
||||||
|
end
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_Buff_OnLoad(self)
|
||||||
|
local frame = self or this
|
||||||
|
UIDropDownMenu_Initialize(frame, HealBot_Options_Buff_Initialize)
|
||||||
|
UIDropDownMenu_SetWidth(110, frame)
|
||||||
|
end
|
||||||
|
function HealBot_Options_Buff_Initialize()
|
||||||
|
local myClass = UnitClass("player")
|
||||||
|
local info
|
||||||
|
|
||||||
|
info = { text = "None", func = HealBot_Options_Buff_OnClick, value = 0 }
|
||||||
|
UIDropDownMenu_AddButton(info)
|
||||||
|
|
||||||
|
if HealBot_Buff_Spells[myClass] then
|
||||||
|
for i, spellName in ipairs(HealBot_Buff_Spells[myClass]) do
|
||||||
|
info = {
|
||||||
|
text = spellName,
|
||||||
|
func = HealBot_Options_Buff_OnClick,
|
||||||
|
value = i
|
||||||
|
}
|
||||||
|
UIDropDownMenu_AddButton(info)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_Buff_OnClick()
|
||||||
|
local frameName = UIDROPDOWNMENU_OPEN_MENU
|
||||||
|
local frame = getglobal(frameName)
|
||||||
|
local myClass = UnitClass("player")
|
||||||
|
local id = frame:GetID()
|
||||||
|
|
||||||
|
if not HealBot_Config.BuffDropDowns then HealBot_Config.BuffDropDowns = {} end
|
||||||
|
if not HealBot_Config.BuffDropDowns[myClass] then HealBot_Config.BuffDropDowns[myClass] = {} end
|
||||||
|
HealBot_Config.BuffDropDowns[myClass][id] = this.value
|
||||||
|
|
||||||
|
local text = "None"
|
||||||
|
if this.value > 0 then
|
||||||
|
text = HealBot_Buff_Spells[myClass][this.value]
|
||||||
|
end
|
||||||
|
|
||||||
|
UIDropDownMenu_SetSelectedID(frame, this.value + 1)
|
||||||
|
UIDropDownMenu_SetText(text, frame)
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_SetBuffs()
|
||||||
|
local myClass = UnitClass("player")
|
||||||
|
if HealBot_Options_BuffWatch then
|
||||||
|
HealBot_Options_BuffWatch:SetChecked(HealBot_Config.BuffWatch)
|
||||||
|
HealBot_Options_BuffWatchInCombat:SetChecked(HealBot_Config.BuffWatchInCombat)
|
||||||
|
if HealBot_Config.BuffWatch == 0 then
|
||||||
|
HealBot_Options_BuffWatchInCombat:Disable()
|
||||||
|
else
|
||||||
|
HealBot_Options_BuffWatchInCombat:Enable()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not HealBot_Config.BuffDropDowns then HealBot_Config.BuffDropDowns = {} end
|
||||||
|
if not HealBot_Config.BuffDropDowns[myClass] then HealBot_Config.BuffDropDowns[myClass] = {} end
|
||||||
|
|
||||||
|
for i = 1, 8 do
|
||||||
|
local dropDown = getglobal("HealBot_Options_Buff" .. i)
|
||||||
|
if dropDown then
|
||||||
|
local val = HealBot_Config.BuffDropDowns[myClass][i] or 0
|
||||||
|
UIDropDownMenu_Initialize(dropDown, HealBot_Options_Buff_Initialize)
|
||||||
|
UIDropDownMenu_SetSelectedID(dropDown, val + 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local selfCheck = getglobal("HealBot_Options_BuffSelf" .. i)
|
||||||
|
if selfCheck then
|
||||||
|
if HealBot_Config.BuffWatchSelf and HealBot_Config.BuffWatchSelf[i] then
|
||||||
|
selfCheck:SetChecked(HealBot_Config.BuffWatchSelf[i])
|
||||||
|
else
|
||||||
|
selfCheck:SetChecked(0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,372 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
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>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Buff1" 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_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="-20" />
|
||||||
|
</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="-20" />
|
||||||
|
</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="-20" />
|
||||||
|
</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="-20" />
|
||||||
|
</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="-20" />
|
||||||
|
</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="-20" />
|
||||||
|
</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>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,289 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_CDC.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_Options_ShowDebuffWarning_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowDebuffWarning_OnClick(this)
|
||||||
|
HealBot_Config.ShowDebuffWarning = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_SoundDebuffWarning_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_SoundDebuffWarning_OnClick(this)
|
||||||
|
HealBot_Config.SoundDebuffWarning = this:GetChecked() or 0;
|
||||||
|
if HealBot_Config.SoundDebuffWarning==0 then
|
||||||
|
HealBot_WarningSound1:Disable();
|
||||||
|
HealBot_WarningSound2:Disable();
|
||||||
|
HealBot_WarningSound3:Disable();
|
||||||
|
else
|
||||||
|
HealBot_WarningSound1:Enable();
|
||||||
|
HealBot_WarningSound2:Enable();
|
||||||
|
HealBot_WarningSound3:Enable();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_WarningSound_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_WarningSound_OnClick(this,id)
|
||||||
|
if HealBot_Config.SoundDebuffPlay>0 then
|
||||||
|
getglobal("HealBot_WarningSound"..HealBot_Config.SoundDebuffPlay):SetChecked(nil);
|
||||||
|
end
|
||||||
|
HealBot_Config.SoundDebuffPlay = id;
|
||||||
|
if HealBot_Config.SoundDebuffPlay>0 then
|
||||||
|
getglobal("HealBot_WarningSound"..HealBot_Config.SoundDebuffPlay):SetChecked(1);
|
||||||
|
if this then
|
||||||
|
HealBot_PlaySound(HealBot_Config.SoundDebuffPlay)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_DropDown()
|
||||||
|
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Options_EmergencyFilter_List[i];
|
||||||
|
info.func = HealBot_Options_CDCMonitor_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_CDCMonitor,HealBot_Options_CDCMonitor_DropDown)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_Refresh(onselect)
|
||||||
|
if not HealBot_Config.CDCMonitor then return end
|
||||||
|
if not onselect then HealBot_Options_CDCMonitor_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_CDCMonitor,HealBot_Config.CDCMonitor)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_CDCMonitor_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(100, this)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_OnSelect()
|
||||||
|
HealBot_Config.CDCMonitor = this:GetID()
|
||||||
|
HealBot_Options_CDCMonitor_Refresh(true)
|
||||||
|
HealBot_Options_CDCMonitor_Reset()
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCMonitor_Reset()
|
||||||
|
|
||||||
|
HealBot_CDCInc[HEALBOT_DRUID] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_HUNTER] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_MAGE] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_SHAMAN] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_WARLOCK] = 0;
|
||||||
|
HealBot_CDCInc[HEALBOT_WARRIOR] = 0;
|
||||||
|
if HealBot_Config.CDCMonitor==2 then
|
||||||
|
HealBot_CDCInc[HEALBOT_DRUID] = 1;
|
||||||
|
HealBot_CDCInc[HEALBOT_HUNTER] = 1;
|
||||||
|
HealBot_CDCInc[HEALBOT_MAGE] = 1;
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = 1;
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = 1;
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = 1;
|
||||||
|
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
|
||||||
|
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];
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncMelee[HEALBOT_PALADIN];
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncMelee[HEALBOT_PRIEST];
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncMelee[HEALBOT_ROGUE];
|
||||||
|
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
|
||||||
|
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];
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncRange[HEALBOT_PALADIN];
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncRange[HEALBOT_PRIEST];
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncRange[HEALBOT_ROGUE];
|
||||||
|
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
|
||||||
|
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];
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncHealers[HEALBOT_PALADIN];
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncHealers[HEALBOT_PRIEST];
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncHealers[HEALBOT_ROGUE];
|
||||||
|
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
|
||||||
|
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];
|
||||||
|
HealBot_CDCInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncCustom[HEALBOT_PALADIN];
|
||||||
|
HealBot_CDCInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncCustom[HEALBOT_PRIEST];
|
||||||
|
HealBot_CDCInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncCustom[HEALBOT_ROGUE];
|
||||||
|
HealBot_CDCInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncCustom[HEALBOT_SHAMAN];
|
||||||
|
HealBot_CDCInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncCustom[HEALBOT_WARLOCK];
|
||||||
|
HealBot_CDCInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncCustom[HEALBOT_WARRIOR];
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Action_PartyChanged()
|
||||||
|
end
|
||||||
|
function HealBot_Options_GetDebuffSpells_List(class)
|
||||||
|
local DebuffSpells = HealBot_Debuff_Spells[class];
|
||||||
|
return DebuffSpells;
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButLeft_DropDown()
|
||||||
|
local classEN=HealBot_UnitClass("player")
|
||||||
|
if classEN=="PRIEST" or classEN=="DRUID" or classEN=="PALADIN" or classEN=="SHAMAN" then
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
local DebuffSpells_List = HealBot_Options_GetDebuffSpells_List(class)
|
||||||
|
local info = {};
|
||||||
|
info.text = "None";
|
||||||
|
info.func = HealBot_Options_CDCButLeft_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
for i=1, getn(DebuffSpells_List), 1 do
|
||||||
|
local spell=HealBot_GetSpellName(HealBot_GetSpellId(DebuffSpells_List[i]));
|
||||||
|
if spell then
|
||||||
|
local info = {};
|
||||||
|
info.text = spell;
|
||||||
|
info.func = HealBot_Options_CDCButLeft_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButRight_DropDown()
|
||||||
|
local classEN=HealBot_UnitClass("player")
|
||||||
|
if classEN=="PRIEST" or classEN=="DRUID" or classEN=="PALADIN" or classEN=="SHAMAN" then
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
local DebuffSpells_List = HealBot_Options_GetDebuffSpells_List(class)
|
||||||
|
local info = {};
|
||||||
|
info.text = "None";
|
||||||
|
info.func = HealBot_Options_CDCButRight_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
for i=1, getn(DebuffSpells_List), 1 do
|
||||||
|
local spell=HealBot_GetSpellName(HealBot_GetSpellId(DebuffSpells_List[i]));
|
||||||
|
if spell then
|
||||||
|
local info = {};
|
||||||
|
info.text = spell;
|
||||||
|
info.func = HealBot_Options_CDCButRight_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButLeft_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_CDCButLeft,HealBot_Options_CDCButLeft_DropDown)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButRight_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_CDCButRight,HealBot_Options_CDCButRight_DropDown)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButLeft_Refresh(onselect)
|
||||||
|
local set_id=1;
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not onselect then HealBot_Options_CDCButLeft_Initialize() end
|
||||||
|
set_id = HealBot_Config.Debuff_Left[class];
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_CDCButLeft,set_id)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButRight_Refresh(onselect)
|
||||||
|
local set_id;
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not onselect then HealBot_Options_CDCButRight_Initialize() end
|
||||||
|
set_id = HealBot_Config.Debuff_Right[class];
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_CDCButRight,set_id)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButLeft_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_CDCButLeft_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(140, this)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButRight_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_CDCButRight_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(140, this)
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButLeft_OnSelect()
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
HealBot_Config.Debuff_Left[class] = this:GetID();
|
||||||
|
HealBot_Options_CDCButLeft_Refresh(true)
|
||||||
|
HealBot_Config.CDCLeftText[class]=HealBot_Options_CDCButLeftText:GetText();
|
||||||
|
if this:GetID()>1 then
|
||||||
|
HealBot_Options_CDC_SetCombo(HealBot_Options_CDCButLeftText:GetText(), "Left", class)
|
||||||
|
end
|
||||||
|
HealBot_DebuffPriority = HealBot_Debuff_Types[HealBot_Options_CDCButLeftText:GetText()];
|
||||||
|
HealBot_Options_Debuff_Reset()
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDCButRight_OnSelect()
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
HealBot_Config.Debuff_Right[class] = this:GetID();
|
||||||
|
HealBot_Options_CDCButRight_Refresh(true)
|
||||||
|
HealBot_Config.CDCRightText[class]=HealBot_Options_CDCButRightText:GetText();
|
||||||
|
if this:GetID()>1 then
|
||||||
|
HealBot_Options_CDC_SetCombo(HealBot_Options_CDCButRightText:GetText(), "Right", class)
|
||||||
|
end
|
||||||
|
HealBot_Options_Debuff_Reset()
|
||||||
|
end
|
||||||
|
function HealBot_Options_CDC_SetCombo(spell, button, class)
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
combo["Alt"..button] = spell
|
||||||
|
HealBot_Options_KeyCombo_Change()
|
||||||
|
end
|
||||||
|
function HealBot_Options_Debuff_Reset()
|
||||||
|
local classEN=HealBot_UnitClass("player")
|
||||||
|
if classEN=="PRIEST" or classEN=="DRUID" or classEN=="PALADIN" or classEN=="SHAMAN" then
|
||||||
|
local spell = HealBot_Config.CDCLeftText[UnitClass("player")];
|
||||||
|
HealBot_DebuffWatch = {[HEALBOT_DISEASE_en]="NO", [HEALBOT_MAGIC_en]="NO", [HEALBOT_POISON_en]="NO", [HEALBOT_CURSE_en]="NO" }
|
||||||
|
if spell ~= "None" then
|
||||||
|
table.foreach(HealBot_Debuff_Types[spell], function (index,debuff)
|
||||||
|
HealBot_DebuffWatch[debuff]="YES";
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
spell = HealBot_Config.CDCRightText[UnitClass("player")];
|
||||||
|
if spell ~= "None" then
|
||||||
|
table.foreach(HealBot_Debuff_Types[spell], function (index,debuff)
|
||||||
|
HealBot_DebuffWatch[debuff]="YES";
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Colorpick_OnClick(CDCType)
|
||||||
|
HealBot_ColourObjWaiting=CDCType;
|
||||||
|
HealBot_UseColourPick(HealBot_Config.CDCBarColour[CDCType].R,HealBot_Config.CDCBarColour[CDCType].G,HealBot_Config.CDCBarColour[CDCType].B, nil)
|
||||||
|
end
|
||||||
|
function HealBot_SetCDCBarColours()
|
||||||
|
HealBot_DiseaseColorpick:SetStatusBarColor(HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].R,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].G,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].B,
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin]);
|
||||||
|
HealBot_MagicColorpick:SetStatusBarColor(HealBot_Config.CDCBarColour[HEALBOT_MAGIC_en].R,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_MAGIC_en].G,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_MAGIC_en].B,
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin]);
|
||||||
|
HealBot_PoisonColorpick:SetStatusBarColor(HealBot_Config.CDCBarColour[HEALBOT_POISON_en].R,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_POISON_en].G,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_POISON_en].B,
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin]);
|
||||||
|
HealBot_CurseColorpick:SetStatusBarColor(HealBot_Config.CDCBarColour[HEALBOT_CURSE_en].R,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_CURSE_en].G,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_CURSE_en].B,
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin]);
|
||||||
|
HealBot_DebTextColorpick:SetStatusBarColor(HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].R,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].G,
|
||||||
|
HealBot_Config.CDCBarColour[HEALBOT_DISEASE_en].B,
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin])
|
||||||
|
end
|
||||||
@@ -0,0 +1,450 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||||
|
<Script file="HealBot_Options_CDC.lua" />
|
||||||
|
<Frame name="HealBot_Options_Panel4" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||||
|
<Frames>
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_CDCMonitor" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="170" y="-30" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCCLASS">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-105" y="-7"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> HealBot_Options_CDCMonitor_OnLoad(this) </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="110"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-75"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="-75"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_CDCBut_Text" text="HEALBOT_OPTIONS_CDCBUTTONS" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="105" y="-12" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
</Frame>
|
||||||
|
<Frame name="HealBot_Options_CDCButLeft" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="100" y="-35" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCLEFT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="40" y="-42"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
HealBot_Options_CDCButLeft_OnLoad(this)
|
||||||
|
</OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
|
<Frame name="HealBot_Options_CDCButRight" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="100" y="-67" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCRIGHT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanse" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="40" y="-74"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
HealBot_Options_CDCButRight_OnLoad(this)
|
||||||
|
</OnLoad>
|
||||||
|
</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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="95"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-185"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="-190"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_CDCCol_Text" text="HEALBOT_OPTIONS_CDCBARS" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="98" y="-12" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
</Frame>
|
||||||
|
<Button name="HealBot_DiseaseColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="BOTTOM" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="81" y="-55"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Colorpick_OnClick(HEALBOT_DISEASE_en)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_DiseaseColorpick" inherits="TextStatusBar">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="BOTTOM" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="81" y="-55"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_DISEASE">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_DiseaseColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<Button name="HealBot_MagicColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_DiseaseColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Colorpick_OnClick(HEALBOT_MAGIC_en)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_MagicColorpick" inherits="TextStatusBar">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_DiseaseColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_MAGIC">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_MagicColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<Button name="HealBot_PoisonColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="BOTTOM" relativeTo="HealBot_DiseaseColorpick" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="65" y="-45"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Colorpick_OnClick(HEALBOT_POISON_en)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_PoisonColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="BOTTOM" relativeTo="HealBot_DiseaseColorpick" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="65" y="-45"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_POISON">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_PoisonColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<Button name="HealBot_CurseColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_PoisonColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Colorpick_OnClick(HEALBOT_CURSE_en)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_CurseColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="130" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_PoisonColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_CURSE">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_CurseColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="120"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-285"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="-290"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_CDCWarn_Text" text="HEALBOT_OPTIONS_CDCWARNINGS" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="98" y="-12" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
</Frame>
|
||||||
|
<CheckButton name="HealBot_Options_ShowDebuffWarning" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_CureDispelCleanseWarn" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="25" y="90" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_ShowDebuffWarning_OnLoad(this,HEALBOT_OPTIONS_SHOWDEBUFFWARNING)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_ShowDebuffWarning_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_SoundDebuffWarning" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowDebuffWarning" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_SoundDebuffWarning_OnLoad(this,HEALBOT_OPTIONS_SOUNDDEBUFFWARNING)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_SoundDebuffWarning_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
|
||||||
|
<CheckButton name="HealBot_WarningSound1" inherits="SendMailRadioButtonTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_SoundDebuffWarning" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="25" y="-30"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_SOUND1)</OnLoad>
|
||||||
|
<OnClick>HealBot_WarningSound_OnClick(this,this:GetID())</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_WarningSound2" inherits="SendMailRadioButtonTemplate" id="2">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_WarningSound1" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="55" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_SOUND2)</OnLoad>
|
||||||
|
<OnClick>HealBot_WarningSound_OnClick(this,this:GetID())</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_WarningSound3" inherits="SendMailRadioButtonTemplate" id="3">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_WarningSound2" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="65" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_SOUND3)</OnLoad>
|
||||||
|
<OnClick>HealBot_WarningSound_OnClick(this,this:GetID())</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_Chat.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
local HealBot_PlayerSpells = nil
|
||||||
|
|
||||||
|
function HealBot_GetPlayerSpells()
|
||||||
|
if HealBot_PlayerSpells then return HealBot_PlayerSpells end
|
||||||
|
local spellSet = {}
|
||||||
|
local i = 1
|
||||||
|
while true do
|
||||||
|
local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL)
|
||||||
|
if not spellName then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
spellSet[spellName] = true
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
local sortedSpells = {}
|
||||||
|
for k, _ in pairs(spellSet) do
|
||||||
|
table.insert(sortedSpells, k)
|
||||||
|
end
|
||||||
|
table.sort(sortedSpells)
|
||||||
|
HealBot_PlayerSpells = sortedSpells
|
||||||
|
return sortedSpells
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ChatMsg_Spell_Initialize()
|
||||||
|
local info
|
||||||
|
|
||||||
|
info = { text = "None", func = HealBot_Options_ChatMsg_Spell_OnClick, value = "None" }
|
||||||
|
UIDropDownMenu_AddButton(info)
|
||||||
|
|
||||||
|
local spells = HealBot_GetPlayerSpells()
|
||||||
|
for _, spellName in ipairs(spells) do
|
||||||
|
info = {
|
||||||
|
text = spellName,
|
||||||
|
func = HealBot_Options_ChatMsg_Spell_OnClick,
|
||||||
|
value = spellName
|
||||||
|
}
|
||||||
|
UIDropDownMenu_AddButton(info)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ChatMsg_Spell_OnClick()
|
||||||
|
local frameName = UIDROPDOWNMENU_OPEN_MENU
|
||||||
|
local frame = getglobal(frameName)
|
||||||
|
local id = frame:GetID()
|
||||||
|
|
||||||
|
if not HealBot_Config.ChatMessages then HealBot_Config.ChatMessages = {} end
|
||||||
|
if not HealBot_Config.ChatMessages[id] then
|
||||||
|
HealBot_Config.ChatMessages[id] = { Spell = "None", Message = "Casting #Spell# on #Target#", Channel = "None" }
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Config.ChatMessages[id].Spell = this.value
|
||||||
|
|
||||||
|
local text = this.value
|
||||||
|
if text == "None" then text = "None" end
|
||||||
|
|
||||||
|
UIDropDownMenu_SetSelectedValue(frame, this.value)
|
||||||
|
UIDropDownMenu_SetText(text, frame)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ChatMsg_Channel_OnClick(id, buttonFrame)
|
||||||
|
if not HealBot_Config.ChatMessages then HealBot_Config.ChatMessages = {} end
|
||||||
|
if not HealBot_Config.ChatMessages[id] then
|
||||||
|
HealBot_Config.ChatMessages[id] = { Spell = "None", Message = "Casting #Spell# on #Target#", Channel = "None" }
|
||||||
|
end
|
||||||
|
|
||||||
|
local current = HealBot_Config.ChatMessages[id].Channel
|
||||||
|
local nextChan = "None"
|
||||||
|
|
||||||
|
if current == "None" then
|
||||||
|
nextChan = "Say"
|
||||||
|
elseif current == "Say" then
|
||||||
|
nextChan = "Party"
|
||||||
|
elseif current == "Party" then
|
||||||
|
nextChan = "Raid"
|
||||||
|
elseif current == "Raid" then
|
||||||
|
nextChan = "Whisper"
|
||||||
|
elseif current == "Whisper" then
|
||||||
|
nextChan = "None"
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Config.ChatMessages[id].Channel = nextChan
|
||||||
|
buttonFrame:SetText(nextChan)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_SetChatMessages()
|
||||||
|
if not HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages = {}
|
||||||
|
end
|
||||||
|
for i = 1, 5 do
|
||||||
|
if not HealBot_Config.ChatMessages[i] then
|
||||||
|
HealBot_Config.ChatMessages[i] = { Spell = "None", Message = "Casting #Spell# on #Target#", Channel = "None" }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for i = 1, 5 do
|
||||||
|
local msgConfig = HealBot_Config.ChatMessages[i]
|
||||||
|
if msgConfig then
|
||||||
|
local dropDown = getglobal("HealBot_Options_ChatMsg"..i)
|
||||||
|
local editBox = getglobal("HealBot_Options_ChatMsg"..i.."_Text")
|
||||||
|
local chanButton = getglobal("HealBot_Options_ChatMsg"..i.."_Channel")
|
||||||
|
|
||||||
|
if dropDown then
|
||||||
|
UIDropDownMenu_Initialize(dropDown, HealBot_Options_ChatMsg_Spell_Initialize)
|
||||||
|
UIDropDownMenu_SetSelectedValue(dropDown, msgConfig.Spell)
|
||||||
|
UIDropDownMenu_SetWidth(110, dropDown)
|
||||||
|
UIDropDownMenu_SetText(msgConfig.Spell, dropDown)
|
||||||
|
end
|
||||||
|
if editBox then
|
||||||
|
editBox:SetText(msgConfig.Message or "")
|
||||||
|
end
|
||||||
|
if chanButton then
|
||||||
|
chanButton:SetText(msgConfig.Channel or "None")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
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 -->
|
||||||
|
<Frame name="HealBot_Options_ChatMsg1" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-30" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Frame>
|
||||||
|
<EditBox name="HealBot_Options_ChatMsg1_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="200" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg1" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages[1].Message = 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="TOPLEFT" relativeTo="HealBot_Options_ChatMsg1_Text" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-5"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
HealBot_Options_ChatMsg_Channel_OnClick(1, this);
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<!-- Chat Message 2 -->
|
||||||
|
<Frame name="HealBot_Options_ChatMsg2" inherits="UIDropDownMenuTemplate" id="2">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-90" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Frame>
|
||||||
|
<EditBox name="HealBot_Options_ChatMsg2_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="200" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg2" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages[2].Message = 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="TOPLEFT" relativeTo="HealBot_Options_ChatMsg2_Text" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-5"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
HealBot_Options_ChatMsg_Channel_OnClick(2, this);
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<!-- Chat Message 3 -->
|
||||||
|
<Frame name="HealBot_Options_ChatMsg3" inherits="UIDropDownMenuTemplate" id="3">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-150" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Frame>
|
||||||
|
<EditBox name="HealBot_Options_ChatMsg3_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="200" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg3" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages[3].Message = 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="TOPLEFT" relativeTo="HealBot_Options_ChatMsg3_Text" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-5"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
HealBot_Options_ChatMsg_Channel_OnClick(3, this);
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<!-- Chat Message 4 -->
|
||||||
|
<Frame name="HealBot_Options_ChatMsg4" inherits="UIDropDownMenuTemplate" id="4">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-210" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Frame>
|
||||||
|
<EditBox name="HealBot_Options_ChatMsg4_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="200" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg4" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages[4].Message = 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="TOPLEFT" relativeTo="HealBot_Options_ChatMsg4_Text" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-5"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
HealBot_Options_ChatMsg_Channel_OnClick(4, this);
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<!-- Chat Message 5 -->
|
||||||
|
<Frame name="HealBot_Options_ChatMsg5" inherits="UIDropDownMenuTemplate" id="5">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-270" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Frame>
|
||||||
|
<EditBox name="HealBot_Options_ChatMsg5_Text" inherits="InputBoxTemplate" autoFocus="false">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="200" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg5" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
if HealBot_Config.ChatMessages then
|
||||||
|
HealBot_Config.ChatMessages[5].Message = 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="TOPLEFT" relativeTo="HealBot_Options_ChatMsg5_Text" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-5"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
HealBot_Options_ChatMsg_Channel_OnClick(5, this);
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,291 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_General.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_Options_ShowHeaders_OnLoad(this)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_SHOWHEADERS);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowHeaders_OnClick(this)
|
||||||
|
HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] = this:GetChecked();
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarTextureS_OnValueChanged(this)
|
||||||
|
HealBot_Config.btexture[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarHeightS_OnValueChanged(this)
|
||||||
|
HealBot_Config.bheight[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarWidthS_OnValueChanged(this)
|
||||||
|
HealBot_Config.bwidth[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarNumColsS_OnValueChanged(this)
|
||||||
|
HealBot_Config.numcols[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarBRSpaceS_OnValueChanged(this)
|
||||||
|
HealBot_Config.brspace[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarBCSpaceS_OnValueChanged(this)
|
||||||
|
HealBot_Config.bcspace[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_FontHeight_OnValueChanged(this)
|
||||||
|
HealBot_Config.btextheight[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_AbortBarSize_OnValueChanged(this)
|
||||||
|
HealBot_Config.abortsize[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_ActionAlpha_OnValueChanged(this)
|
||||||
|
HealBot_Config.backcola[HealBot_Config.Current_Skin] = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarAlpha_OnValueChanged(this)
|
||||||
|
HealBot_Config.Barcola[HealBot_Config.Current_Skin] = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarAlphaInHeal_OnValueChanged(this)
|
||||||
|
HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin] = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BarAlphaDis_OnValueChanged(this)
|
||||||
|
HealBot_Config.bardisa[HealBot_Config.Current_Skin] = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_SkinColorpick_OnClick(SkinType)
|
||||||
|
HealBot_ColourObjWaiting=SkinType;
|
||||||
|
|
||||||
|
if SkinType=="En" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.btextenabledcolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextenabledcolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextenabledcolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextenabledcola[HealBot_Config.Current_Skin]);
|
||||||
|
elseif SkinType=="Dis" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin])
|
||||||
|
elseif SkinType=="Debuff" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.btextcursecolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextcursecolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextcursecolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.btextcursecola[HealBot_Config.Current_Skin])
|
||||||
|
elseif SkinType=="Back" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.backcolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.backcolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.backcolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.backcola[HealBot_Config.Current_Skin])
|
||||||
|
elseif SkinType=="Bor" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.borcolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.borcolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.borcolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.borcola[HealBot_Config.Current_Skin])
|
||||||
|
elseif SkinType=="Abort" then
|
||||||
|
HealBot_UseColourPick(HealBot_Config.babortcolr[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.babortcolg[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.babortcolb[HealBot_Config.Current_Skin],
|
||||||
|
HealBot_Config.babortcola[HealBot_Config.Current_Skin])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_SetSkinColours()
|
||||||
|
-- Cache the current skin configuration for performance and readability
|
||||||
|
local skin = HealBot_Config.Current_Skin
|
||||||
|
local btextheight = HealBot_Config.btextheight[skin] or 10
|
||||||
|
|
||||||
|
-- 1. Set Status Bar Colors (Green with variations based on configuration)
|
||||||
|
local alpha = HealBot_Config.Barcola[skin]
|
||||||
|
local inHealAlpha = alpha * (HealBot_Config.BarcolaInHeal[skin] or 1)
|
||||||
|
local disabledAlpha = HealBot_Config.bardisa[skin]
|
||||||
|
|
||||||
|
HealBot_EnTextColorpick:SetStatusBarColor(0, 1, 0, alpha)
|
||||||
|
HealBot_EnTextColorpickin:SetStatusBarColor(0, 1, 0, inHealAlpha)
|
||||||
|
HealBot_DisTextColorpick:SetStatusBarColor(0, 1, 0, disabledAlpha)
|
||||||
|
|
||||||
|
-- 2. Set Text Colors
|
||||||
|
HealBot_EnTextColorpickt:SetTextColor(
|
||||||
|
HealBot_Config.btextenabledcolr[skin], HealBot_Config.btextenabledcolg[skin],
|
||||||
|
HealBot_Config.btextenabledcolb[skin], HealBot_Config.btextenabledcola[skin]
|
||||||
|
)
|
||||||
|
HealBot_DisTextColorpickt:SetTextColor(
|
||||||
|
HealBot_Config.btextdisbledcolr[skin], HealBot_Config.btextdisbledcolg[skin],
|
||||||
|
HealBot_Config.btextdisbledcolb[skin], HealBot_Config.btextdisbledcola[skin]
|
||||||
|
)
|
||||||
|
HealBot_DebTextColorpickt:SetTextColor(
|
||||||
|
HealBot_Config.btextcursecolr[skin], HealBot_Config.btextcursecolg[skin],
|
||||||
|
HealBot_Config.btextcursecolb[skin], HealBot_Config.btextcursecola[skin]
|
||||||
|
)
|
||||||
|
|
||||||
|
-- 3. Set Preview Component Colors
|
||||||
|
local bgR, bgG, bgB, bgA = HealBot_Config.backcolr[skin], HealBot_Config.backcolg[skin], HealBot_Config.backcolb[skin], HealBot_Config.backcola[skin]
|
||||||
|
local borderR, borderG, borderB, borderA = HealBot_Config.borcolr[skin], HealBot_Config.borcolg[skin], HealBot_Config.borcolb[skin], HealBot_Config.borcola[skin]
|
||||||
|
|
||||||
|
HealBot_BackgroundColorpick:SetStatusBarColor(bgR, bgG, bgB, bgA)
|
||||||
|
HealBot_BorderColorpick:SetStatusBarColor(borderR, borderG, borderB, borderA)
|
||||||
|
HealBot_AbortColorpick:SetStatusBarColor(
|
||||||
|
HealBot_Config.babortcolr[skin], HealBot_Config.babortcolg[skin],
|
||||||
|
HealBot_Config.babortcolb[skin], HealBot_Config.babortcola[skin]
|
||||||
|
)
|
||||||
|
|
||||||
|
-- 4. Setup Main Panel Backdrop (Fixed scoping bugs)
|
||||||
|
local borderStyle = HealBot_Config.bborder[skin] or 2
|
||||||
|
local backdrop = {
|
||||||
|
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
|
||||||
|
tile = true,
|
||||||
|
tileSize = 8,
|
||||||
|
}
|
||||||
|
|
||||||
|
if borderStyle == 0 then
|
||||||
|
-- No border
|
||||||
|
backdrop.edgeFile = "Interface\\Buttons\\WHITE8X8"
|
||||||
|
backdrop.edgeSize = 1
|
||||||
|
backdrop.insets = { left = 1, right = 1, top = 1, bottom = 1 }
|
||||||
|
HealBot_Action:SetBackdrop(backdrop)
|
||||||
|
HealBot_Action:SetBackdropBorderColor(0, 0, 0, 0)
|
||||||
|
HealBot_Action:SetBackdropColor(bgR, bgG, bgB, bgA)
|
||||||
|
|
||||||
|
elseif borderStyle == 1 then
|
||||||
|
-- Custom flat border
|
||||||
|
local bboffset = (HealBot_Config.bboffset and HealBot_Config.bboffset[skin]) or 1
|
||||||
|
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[skin]) or 10
|
||||||
|
|
||||||
|
backdrop.edgeFile = "Interface\\Buttons\\WHITE8X8"
|
||||||
|
backdrop.edgeSize = bboffset
|
||||||
|
backdrop.insets = { left = bpadding, right = bpadding, top = bpadding, bottom = bpadding }
|
||||||
|
|
||||||
|
HealBot_Action:SetBackdrop(backdrop)
|
||||||
|
HealBot_Action:SetBackdropColor(bgR, bgG, bgB, bgA)
|
||||||
|
HealBot_Action:SetBackdropBorderColor(borderR, borderG, borderB, borderA)
|
||||||
|
|
||||||
|
else
|
||||||
|
-- Default Blizzard Tooltip Border
|
||||||
|
backdrop.edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border"
|
||||||
|
backdrop.edgeSize = 16
|
||||||
|
backdrop.insets = { left = 4, right = 4, top = 4, bottom = 4 }
|
||||||
|
|
||||||
|
HealBot_Action:SetBackdrop(backdrop)
|
||||||
|
HealBot_Action:SetBackdropColor(bgR, bgG, bgB, bgA)
|
||||||
|
HealBot_Action:SetBackdropBorderColor(borderR, borderG, borderB, borderA)
|
||||||
|
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)
|
||||||
|
|
||||||
|
-- 6. Force UI redraw (Kept the scale hack since it addresses a specific engine quirk)
|
||||||
|
local barScale = HealBot_EnTextColorpick:GetScale()
|
||||||
|
HealBot_EnTextColorpick:SetScale(barScale + 0.01); HealBot_EnTextColorpick:SetScale(barScale)
|
||||||
|
HealBot_DisTextColorpick:SetScale(barScale + 0.01); HealBot_DisTextColorpick:SetScale(barScale)
|
||||||
|
HealBot_DebTextColorpick:SetScale(barScale + 0.01); HealBot_DebTextColorpick:SetScale(barScale)
|
||||||
|
|
||||||
|
HealBot_Action_PartyChanged()
|
||||||
|
end
|
||||||
|
function HealBot_Options_AlertLevel_OnValueChanged(this)
|
||||||
|
HealBot_Config.AlertLevel = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
HealBot_Action_Refresh();
|
||||||
|
end
|
||||||
|
function HealBot_Options_AutoShow_OnLoad(this)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_AUTOSHOW);
|
||||||
|
end
|
||||||
|
function HealBot_Options_AutoShow_OnClick(this)
|
||||||
|
HealBot_Config.AutoClose = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_Refresh();
|
||||||
|
end
|
||||||
|
function HealBot_Options_PanelSounds_OnLoad(this)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_PANELSOUNDS);
|
||||||
|
end
|
||||||
|
function HealBot_Options_PanelSounds_OnClick(this)
|
||||||
|
HealBot_Config.PanelSounds = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_ActionMouseover_OnLoad(this, text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ActionMouseover_OnClick(this)
|
||||||
|
HealBot_Config.ActionMouseover = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_ActionLocked_OnLoad(this)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_ACTIONLOCKED);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ActionLocked_OnClick(this)
|
||||||
|
HealBot_Config.ActionLocked = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_HideOptions_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_HideOptions_OnClick(this)
|
||||||
|
HealBot_Config.HideOptions = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
function HealBot_Options_HideAbort_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_HideAbort_OnClick(this)
|
||||||
|
HealBot_Config.HideAbort = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
function HealBot_Options_GrowUpwards_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_GrowUpwards_OnClick(this)
|
||||||
|
HealBot_Config.GrowUpwards = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
function HealBot_Options_QualityRange_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_QualityRange_OnClick(this)
|
||||||
|
HealBot_Config.QualityRange = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
function HealBot_Options_ProtectPvP_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ProtectPvP_OnClick(this)
|
||||||
|
HealBot_Config.ProtectPvP = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_Refresh();
|
||||||
|
end
|
||||||
|
function HealBot_Options_FramePaddingS_OnValueChanged(this)
|
||||||
|
if not HealBot_Config.bpadding then HealBot_Config.bpadding = {} end
|
||||||
|
HealBot_Config.bpadding[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
function HealBot_Options_BorderThicknessS_OnValueChanged(this)
|
||||||
|
if not HealBot_Config.bboffset then HealBot_Config.bboffset = {} end
|
||||||
|
HealBot_Config.bboffset[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_HideParty_OnLoad(this, text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_HideParty_OnClick(this)
|
||||||
|
HealBot_Config.HideParty = this:GetChecked() or 0;
|
||||||
|
HealBot_Options_TogglePartyFrames();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_TogglePartyFrames()
|
||||||
|
if HealBot_Config.HideParty == 1 then
|
||||||
|
if HidePartyFrame then HidePartyFrame(); end
|
||||||
|
else
|
||||||
|
if ShowPartyFrame then ShowPartyFrame(); end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||||
|
<Script file="HealBot_Options_General.lua" />
|
||||||
|
<Frame name="HealBot_Options_Panel1" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||||
|
|
||||||
|
<Frames>
|
||||||
|
|
||||||
|
<CheckButton name="HealBot_Options_ActionLocked" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="31" y="-40" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_ActionLocked_OnLoad(this)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_ActionLocked_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_GrowUpwards" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionLocked" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_GrowUpwards_OnLoad(this,HEALBOT_OPTIONS_GROWUPWARDS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_GrowUpwards_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_ActionMouseover" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GrowUpwards" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_ActionMouseover_OnLoad(this,"Hovercasting")</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_ActionMouseover_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_AutoShow" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionLocked" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="200" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_AutoShow_OnLoad(this)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_AutoShow_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_PanelSounds" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GrowUpwards" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="200" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_PanelSounds_OnLoad(this)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_PanelSounds_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_HideSolo" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ActionMouseover" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="200" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
getglobal(this:GetName().."Text"):SetText("Hide when Solo");
|
||||||
|
</OnLoad>
|
||||||
|
<OnClick>
|
||||||
|
if (this:GetChecked()) then
|
||||||
|
HealBot_Config.HideSolo = 1;
|
||||||
|
else
|
||||||
|
HealBot_Config.HideSolo = 0;
|
||||||
|
end
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
</OnClick>
|
||||||
|
</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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="70"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-135"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="-135"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_GeneralPanel_Text" text="HEALBOT_OPTIONS_PANEL_TEXT" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="130" y="-12" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Frames>
|
||||||
|
<CheckButton name="HealBot_Options_ShowManaBars" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="-30" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
getglobal(this:GetName().."Text"):SetText("Show Mana Bars");
|
||||||
|
</OnLoad>
|
||||||
|
<OnClick>
|
||||||
|
if (this:GetChecked()) then
|
||||||
|
HealBot_Config.ShowManaBars = 1;
|
||||||
|
else
|
||||||
|
HealBot_Config.ShowManaBars = 0;
|
||||||
|
end
|
||||||
|
HealBot_Action_Refresh();
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_ManaBarsHealersOnly" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="200" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
getglobal(this:GetName().."Text"):SetText("For Healers Only");
|
||||||
|
</OnLoad>
|
||||||
|
<OnClick>
|
||||||
|
if (this:GetChecked()) then
|
||||||
|
HealBot_Config.ManaBarsHealersOnly = 1;
|
||||||
|
else
|
||||||
|
HealBot_Config.ManaBarsHealersOnly = 0;
|
||||||
|
end
|
||||||
|
HealBot_Action_Refresh();
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
<CheckButton name="HealBot_Options_HideOptions" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GenFrame" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="-10" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_HideOptions_OnLoad(this,HEALBOT_OPTIONS_HIDEOPTIONS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_HideOptions_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_HideAbort" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideOptions" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-2" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_HideAbort_OnLoad(this,HEALBOT_OPTIONS_HIDEABORT)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_HideAbort_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_QualityRange" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideAbort" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-2" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_QualityRange_OnLoad(this,HEALBOT_OPTIONS_QUALITYRANGE)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_QualityRange_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_ProtectPvP" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_QualityRange" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-2" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_ProtectPvP_OnLoad(this,HEALBOT_OPTIONS_PROTECTPVP)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_ProtectPvP_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_HideParty" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ProtectPvP" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-2" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_HideParty_OnLoad(this,HEALBOT_OPTIONS_HIDEPARTY)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_HideParty_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,338 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_Healing.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_Options_GroupHeals_OnLoad(this,text)
|
||||||
|
this.text = text
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_GroupHeals_OnClick(this)
|
||||||
|
HealBot_Config.GroupHeals = this:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_TankHeals_OnLoad(this,text)
|
||||||
|
this.text = text
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_TankHeals_OnClick(this)
|
||||||
|
HealBot_Config.TankHeals = this:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_TargetHeals_OnLoad(this,text)
|
||||||
|
this.text = text
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_TargetHeals_OnClick(this)
|
||||||
|
HealBot_Config.TargetHeals = this:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_EmergencyHeals_OnLoad(this,text)
|
||||||
|
this.text = text
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_EmergencyHeals_OnClick(this)
|
||||||
|
HealBot_Config.EmergencyHeals = this:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
|
function HealBot_Options_OverHeal_OnValueChanged(this)
|
||||||
|
HealBot_Config.OverHeal = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
|
end
|
||||||
|
function HealBot_Options_EFClass_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_EFClass_OnClick(this)
|
||||||
|
if HealBot_Config.EmergencyFClass==1 then
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_DRUID] = HealBot_Options_EFClassDruid:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_HUNTER] = HealBot_Options_EFClassHunter:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_MAGE] = HealBot_Options_EFClassMage:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_PALADIN] = HealBot_Options_EFClassPaladin:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_PRIEST] = HealBot_Options_EFClassPriest:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_ROGUE] = HealBot_Options_EFClassRogue:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN] = HealBot_Options_EFClassShaman:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK] = HealBot_Options_EFClassWarlock:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR] = HealBot_Options_EFClassWarrior:GetChecked() or 0;
|
||||||
|
elseif HealBot_Config.EmergencyFClass==2 then
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_DRUID] = HealBot_Options_EFClassDruid:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_HUNTER] = HealBot_Options_EFClassHunter:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_MAGE] = HealBot_Options_EFClassMage:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_PALADIN] = HealBot_Options_EFClassPaladin:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_PRIEST] = HealBot_Options_EFClassPriest:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_ROGUE] = HealBot_Options_EFClassRogue:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_SHAMAN] = HealBot_Options_EFClassShaman:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_WARLOCK] = HealBot_Options_EFClassWarlock:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncRange[HEALBOT_WARRIOR] = HealBot_Options_EFClassWarrior:GetChecked() or 0;
|
||||||
|
elseif HealBot_Config.EmergencyFClass==3 then
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_DRUID] = HealBot_Options_EFClassDruid:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_HUNTER] = HealBot_Options_EFClassHunter:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_MAGE] = HealBot_Options_EFClassMage:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_PALADIN] = HealBot_Options_EFClassPaladin:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_PRIEST] = HealBot_Options_EFClassPriest:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_ROGUE] = HealBot_Options_EFClassRogue:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN] = HealBot_Options_EFClassShaman:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK] = HealBot_Options_EFClassWarlock:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR] = HealBot_Options_EFClassWarrior:GetChecked() or 0;
|
||||||
|
elseif HealBot_Config.EmergencyFClass==4 then
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_DRUID] = HealBot_Options_EFClassDruid:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_HUNTER] = HealBot_Options_EFClassHunter:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_MAGE] = HealBot_Options_EFClassMage:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_PALADIN] = HealBot_Options_EFClassPaladin:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_PRIEST] = HealBot_Options_EFClassPriest:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_ROGUE] = HealBot_Options_EFClassRogue:GetChecked() or 0;
|
||||||
|
HealBot_Config.EmergIncCustom[HEALBOT_SHAMAN] = HealBot_Options_EFClassShaman:GetChecked() or 0;
|
||||||
|
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
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local HealBot_Options_EmergencyFClass_List = {
|
||||||
|
HEALBOT_CLASSES_MELEE,
|
||||||
|
HEALBOT_CLASSES_RANGES,
|
||||||
|
HEALBOT_CLASSES_HEALERS,
|
||||||
|
HEALBOT_CLASSES_CUSTOM,
|
||||||
|
}
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFClass_DropDown()
|
||||||
|
for i=1, getn(HealBot_Options_EmergencyFClass_List), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Options_EmergencyFClass_List[i];
|
||||||
|
info.func = HealBot_Options_EmergencyFClass_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFClass_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_EmergencyFClass,HealBot_Options_EmergencyFClass_DropDown)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFClass_Refresh(onselect)
|
||||||
|
if not HealBot_Config.EmergencyFClass then return end
|
||||||
|
if not onselect then HealBot_Options_EmergencyFClass_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_EmergencyFClass,HealBot_Config.EmergencyFClass)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFClass_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_EmergencyFClass_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(100, this)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFClass_OnSelect()
|
||||||
|
HealBot_Config.EmergencyFClass = this:GetID()
|
||||||
|
HealBot_Options_EmergencyFClass_Refresh(true)
|
||||||
|
HealBot_Options_EFClass_Reset()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EFClass_Reset()
|
||||||
|
if HealBot_Config.EmergencyFClass==1 then
|
||||||
|
HealBot_Options_EFClassDruid:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_DRUID]);
|
||||||
|
HealBot_Options_EFClassHunter:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_HUNTER]);
|
||||||
|
HealBot_Options_EFClassMage:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_MAGE]);
|
||||||
|
HealBot_Options_EFClassPaladin:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_PALADIN]);
|
||||||
|
HealBot_Options_EFClassPriest:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_PRIEST]);
|
||||||
|
HealBot_Options_EFClassRogue:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_ROGUE]);
|
||||||
|
HealBot_Options_EFClassShaman:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN]);
|
||||||
|
HealBot_Options_EFClassWarlock:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK]);
|
||||||
|
HealBot_Options_EFClassWarrior:SetChecked(HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR]);
|
||||||
|
elseif HealBot_Config.EmergencyFClass==2 then
|
||||||
|
HealBot_Options_EFClassDruid:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_DRUID]);
|
||||||
|
HealBot_Options_EFClassHunter:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_HUNTER]);
|
||||||
|
HealBot_Options_EFClassMage:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_MAGE]);
|
||||||
|
HealBot_Options_EFClassPaladin:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_PALADIN]);
|
||||||
|
HealBot_Options_EFClassPriest:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_PRIEST]);
|
||||||
|
HealBot_Options_EFClassRogue:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_ROGUE]);
|
||||||
|
HealBot_Options_EFClassShaman:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_SHAMAN]);
|
||||||
|
HealBot_Options_EFClassWarlock:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_WARLOCK]);
|
||||||
|
HealBot_Options_EFClassWarrior:SetChecked(HealBot_Config.EmergIncRange[HEALBOT_WARRIOR]);
|
||||||
|
elseif HealBot_Config.EmergencyFClass==3 then
|
||||||
|
HealBot_Options_EFClassDruid:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_DRUID]);
|
||||||
|
HealBot_Options_EFClassHunter:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_HUNTER]);
|
||||||
|
HealBot_Options_EFClassMage:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_MAGE]);
|
||||||
|
HealBot_Options_EFClassPaladin:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_PALADIN]);
|
||||||
|
HealBot_Options_EFClassPriest:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_PRIEST]);
|
||||||
|
HealBot_Options_EFClassRogue:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_ROGUE]);
|
||||||
|
HealBot_Options_EFClassShaman:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN]);
|
||||||
|
HealBot_Options_EFClassWarlock:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK]);
|
||||||
|
HealBot_Options_EFClassWarrior:SetChecked(HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR]);
|
||||||
|
elseif HealBot_Config.EmergencyFClass==4 then
|
||||||
|
HealBot_Options_EFClassDruid:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_DRUID]);
|
||||||
|
HealBot_Options_EFClassHunter:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_HUNTER]);
|
||||||
|
HealBot_Options_EFClassMage:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_MAGE]);
|
||||||
|
HealBot_Options_EFClassPaladin:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_PALADIN]);
|
||||||
|
HealBot_Options_EFClassPriest:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_PRIEST]);
|
||||||
|
HealBot_Options_EFClassRogue:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_ROGUE]);
|
||||||
|
HealBot_Options_EFClassShaman:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_SHAMAN]);
|
||||||
|
HealBot_Options_EFClassWarlock:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_WARLOCK]);
|
||||||
|
HealBot_Options_EFClassWarrior:SetChecked(HealBot_Config.EmergIncCustom[HEALBOT_WARRIOR]);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local HealBot_Options_ExtraSort_List = {
|
||||||
|
HEALBOT_SORTBY_NAME,
|
||||||
|
HEALBOT_SORTBY_CLASS,
|
||||||
|
HEALBOT_SORTBY_GROUP,
|
||||||
|
HEALBOT_SORTBY_MAXHEALTH,
|
||||||
|
}
|
||||||
|
|
||||||
|
function HealBot_Options_ExtraSort_DropDown()
|
||||||
|
for i=1, getn(HealBot_Options_ExtraSort_List), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Options_ExtraSort_List[i];
|
||||||
|
info.func = HealBot_Options_ExtraSort_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ExtraSort_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_ExtraSort,HealBot_Options_ExtraSort_DropDown)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ExtraSort_Refresh(onselect)
|
||||||
|
if not HealBot_Config.ExtraOrder then return end
|
||||||
|
if not onselect then HealBot_Options_ExtraSort_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_ExtraSort,HealBot_Config.ExtraOrder)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ExtraSort_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_ExtraSort_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(100, this)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ExtraSort_OnSelect()
|
||||||
|
HealBot_Config.ExtraOrder = this:GetID()
|
||||||
|
HealBot_Options_ExtraSort_Refresh(true)
|
||||||
|
HealBot_Action_PartyChanged()
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_DropDown()
|
||||||
|
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Options_EmergencyFilter_List[i];
|
||||||
|
info.func = HealBot_Options_EmergencyFilter_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_EmergencyFilter,HealBot_Options_EmergencyFilter_DropDown)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_Refresh(onselect)
|
||||||
|
if not HealBot_Config.EmergIncMonitor then return end
|
||||||
|
if not onselect then HealBot_Options_EmergencyFilter_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_EmergencyFilter,HealBot_Config.EmergIncMonitor)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_EmergencyFilter_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(100, this)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_OnSelect()
|
||||||
|
HealBot_Config.EmergIncMonitor = this:GetID()
|
||||||
|
HealBot_Options_EmergencyFilter_Refresh(true)
|
||||||
|
HealBot_Options_EmergencyFilter_Reset()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EmergencyFilter_Reset()
|
||||||
|
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = 0;
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = 0;
|
||||||
|
if HealBot_Config.EmergIncMonitor==1 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==2 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==3 then
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==4 then
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==5 then
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==6 then
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==7 then
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==8 then
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==9 then
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==10 then
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==11 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncMelee[HEALBOT_DRUID];
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncMelee[HEALBOT_HUNTER];
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncMelee[HEALBOT_MAGE];
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncMelee[HEALBOT_PALADIN];
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncMelee[HEALBOT_PRIEST];
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncMelee[HEALBOT_ROGUE];
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR];
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==12 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncRange[HEALBOT_DRUID];
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncRange[HEALBOT_HUNTER];
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncRange[HEALBOT_MAGE];
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncRange[HEALBOT_PALADIN];
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncRange[HEALBOT_PRIEST];
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncRange[HEALBOT_ROGUE];
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncRange[HEALBOT_SHAMAN];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncRange[HEALBOT_WARLOCK];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncRange[HEALBOT_WARRIOR];
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==13 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncHealers[HEALBOT_DRUID];
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncHealers[HEALBOT_HUNTER];
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncHealers[HEALBOT_MAGE];
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncHealers[HEALBOT_PALADIN];
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncHealers[HEALBOT_PRIEST];
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncHealers[HEALBOT_ROGUE];
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR];
|
||||||
|
elseif HealBot_Config.EmergIncMonitor==14 then
|
||||||
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncCustom[HEALBOT_DRUID];
|
||||||
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncCustom[HEALBOT_HUNTER];
|
||||||
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncCustom[HEALBOT_MAGE];
|
||||||
|
HealBot_EmergInc[HEALBOT_PALADIN] = HealBot_Config.EmergIncCustom[HEALBOT_PALADIN];
|
||||||
|
HealBot_EmergInc[HEALBOT_PRIEST] = HealBot_Config.EmergIncCustom[HEALBOT_PRIEST];
|
||||||
|
HealBot_EmergInc[HEALBOT_ROGUE] = HealBot_Config.EmergIncCustom[HEALBOT_ROGUE];
|
||||||
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncCustom[HEALBOT_SHAMAN];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncCustom[HEALBOT_WARLOCK];
|
||||||
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncCustom[HEALBOT_WARRIOR];
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Action_PartyChanged()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -0,0 +1,359 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||||
|
<Script file="HealBot_Options_Healing.lua" />
|
||||||
|
<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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="88"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-30"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_HealButtons_Text" text="HEALBOT_OPTIONS_HEAL_BUTTONS" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="100" y="-8" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
|
||||||
|
<Frames>
|
||||||
|
<CheckButton name="HealBot_Options_GroupHeals" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="25" y="-21" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_GroupHeals_OnLoad(this,HEALBOT_OPTIONS_GROUPHEALS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_GroupHeals_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_TankHeals" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_TankHeals_OnLoad(this,HEALBOT_OPTIONS_TANKHEALS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_TankHeals_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_TargetHeals" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="122" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_TargetHeals_OnLoad(this,HEALBOT_OPTIONS_TARGETHEALS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_TargetHeals_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EmergencyHeals" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="122" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EmergencyHeals_OnLoad(this,HEALBOT_OPTIONS_EMERGENCYHEALS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EmergencyHeals_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
<Slider name="HealBot_Options_AlertLevel" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="45" y="-132" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_Pct_OnLoad(this,HEALBOT_OPTIONS_ALERTLEVEL)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_AlertLevel_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_OverHeal" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_AlertLevel" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-27" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_Pct_OnLoad(this,HEALBOT_OPTIONS_OVERHEAL)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_OverHeal_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_EmergencyFilter" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="155" y="-205" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_EMERGFILTER">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-110" y="-7"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
HealBot_Options_EmergencyFilter_OnLoad(this)
|
||||||
|
</OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_ExtraSort" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="155" y="-238" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_EXTRASORT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-110" y="-7"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
HealBot_Options_ExtraSort_OnLoad(this)
|
||||||
|
</OnLoad>
|
||||||
|
</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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="125"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-275"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
|
||||||
|
<Frames>
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_EmergencyFClass" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="128" y="-10" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_EMERGFCLASS">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-105" y="-7"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> HealBot_Options_EmergencyFClass_OnLoad(this) </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
<CheckButton name="HealBot_Options_EFClassDruid" inherits="SendMailRadioButtonTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EmergencyFClass" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-90" y="-8"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_DRUID)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassHunter" inherits="SendMailRadioButtonTemplate" id="2">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassDruid" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_HUNTER)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassMage" inherits="SendMailRadioButtonTemplate" id="3">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassHunter" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_MAGE)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassPaladin" inherits="SendMailRadioButtonTemplate" id="4">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassDruid" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-8"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_PALADIN)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassPriest" inherits="SendMailRadioButtonTemplate" id="5">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassPaladin" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_PRIEST)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassRogue" inherits="SendMailRadioButtonTemplate" id="6">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassPriest" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_ROGUE)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassShaman" inherits="SendMailRadioButtonTemplate" id="7">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassPaladin" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-8"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_SHAMAN)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassWarlock" inherits="SendMailRadioButtonTemplate" id="8">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassShaman" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_WARLOCK)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_EFClassWarrior" inherits="SendMailRadioButtonTemplate" id="9">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_EFClassWarlock" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="62" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_EFClass_OnLoad(this,HEALBOT_WARRIOR)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_EFClass_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_Skins.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_Options_NewSkin_OnTextChanged(this)
|
||||||
|
local text= this:GetText()
|
||||||
|
if string.len(text)>0 then
|
||||||
|
HealBot_Options_NewSkinb:Enable();
|
||||||
|
else
|
||||||
|
HealBot_Options_NewSkinb:Disable();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_NewSkinb_OnClick(this)
|
||||||
|
HealBot_Config.numcols[HealBot_Options_NewSkin:GetText()] = HealBot_Config.numcols[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btexture[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btexture[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.bcspace[HealBot_Options_NewSkin:GetText()] = HealBot_Config.bcspace[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.brspace[HealBot_Options_NewSkin:GetText()] = HealBot_Config.brspace[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.bwidth[HealBot_Options_NewSkin:GetText()] = HealBot_Config.bwidth[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.bheight[HealBot_Options_NewSkin:GetText()] = HealBot_Config.bheight[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextenabledcolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextenabledcolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextenabledcolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextenabledcolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextenabledcolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextenabledcolb[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextenabledcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextenabledcola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextdisbledcolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextdisbledcolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextdisbledcolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextdisbledcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextcursecolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextcursecolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextcursecolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextcursecolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextcursecolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextcursecolb[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextcursecola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextcursecola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.backcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.backcola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.Barcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.Barcola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.BarcolaInHeal[HealBot_Options_NewSkin:GetText()] = HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.backcolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.backcolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.backcolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.backcolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.backcolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.backcolb[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.borcolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.borcolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.borcolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.borcolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.borcolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.borcolb[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.borcola[HealBot_Options_NewSkin:GetText()] = HealBot_Config.borcola[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.btextheight[HealBot_Options_NewSkin:GetText()] = HealBot_Config.btextheight[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.bardisa[HealBot_Options_NewSkin:GetText()] = HealBot_Config.bardisa[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.abortsize[HealBot_Options_NewSkin:GetText()] = HealBot_Config.abortsize[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.babortcolr[HealBot_Options_NewSkin:GetText()] = HealBot_Config.babortcolr[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.babortcolg[HealBot_Options_NewSkin:GetText()] = HealBot_Config.babortcolg[HealBot_Config.Current_Skin]
|
||||||
|
HealBot_Config.babortcolb[HealBot_Options_NewSkin:GetText()] = HealBot_Config.babortcolb[HealBot_Config.Current_Skin]
|
||||||
|
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]
|
||||||
|
|
||||||
|
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();
|
||||||
|
HealBot_Options_SetSkins()
|
||||||
|
HealBot_Options_NewSkin:SetText("")
|
||||||
|
end
|
||||||
|
function HealBot_Options_DeleteSkin_OnClick(this)
|
||||||
|
if HealBot_Config.Current_Skin~=HEALBOT_SKINS_STD then
|
||||||
|
HealBot_Config.numcols[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btexture[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.bcspace[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.brspace[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.bwidth[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.bheight[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextenabledcolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextenabledcolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextenabledcolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextenabledcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextdisbledcolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextdisbledcolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextdisbledcolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextdisbledcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextcursecolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextcursecolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextcursecolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextcursecola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.backcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.Barcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.BarcolaInHeal[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.backcolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.backcolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.backcolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.borcolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.borcolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.borcolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.borcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.btextheight[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.bardisa[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.abortsize[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.babortcolr[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.babortcolg[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.babortcolb[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.babortcola[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
HealBot_Config.ShowHeader[HealBot_Options_SkinsText:GetText()] = nil
|
||||||
|
table.remove(HealBot_Skins,HealBot_Config.Skin_ID)
|
||||||
|
HealBot_Config.Skin_ID = 1;
|
||||||
|
HealBot_Config.Skins = HealBot_Skins;
|
||||||
|
HealBot_Config.Current_Skin = HEALBOT_SKINS_STD;
|
||||||
|
HealBot_Options_SetSkins()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_Skins_DropDown()
|
||||||
|
for i=1, getn(HealBot_Skins), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Skins[i];
|
||||||
|
info.func = HealBot_Options_Skins_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function HealBot_Options_Skins_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_Skins,HealBot_Options_Skins_DropDown)
|
||||||
|
end
|
||||||
|
function HealBot_Options_Skins_Refresh(onselect)
|
||||||
|
if not HealBot_Config.Skin_ID then return end
|
||||||
|
if not onselect then HealBot_Options_Skins_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_Skins,HealBot_Config.Skin_ID)
|
||||||
|
end
|
||||||
|
function HealBot_Options_Skins_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_Skins_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(100, this)
|
||||||
|
end
|
||||||
|
function HealBot_Options_Skins_OnSelect()
|
||||||
|
HealBot_Config.Skin_ID = this:GetID()
|
||||||
|
HealBot_Options_Skins_Refresh(true)
|
||||||
|
if this:GetID()>=1 then
|
||||||
|
HealBot_Config.Current_Skin = this:GetText()
|
||||||
|
HealBot_Options_SetSkins()
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,676 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
|
||||||
|
<Script file="HealBot_Options_Skins.lua" />
|
||||||
|
<Frame name="HealBot_Options_Panel5" parent="HealBot_Options" hidden="true" setAllPoints="true">
|
||||||
|
<Frames>
|
||||||
|
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_Skins" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_Options_ScaleFrameText" text="HEALBOT_OPTIONS_SKINTEXT" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-45" y="-5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="70" y="-28" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> HealBot_Options_Skins_OnLoad(this) </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
|
<Button name="HealBot_Options_DeleteSkin" inherits="UIPanelButtonTemplate" text="HEALBOT_OPTIONS_DELSKIN">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="80" y="22"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Skins" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="7" y="-1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Options_DeleteSkin_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<EditBox name="HealBot_Options_NewSkin" inherits="HealBot_Options_EditBoxTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="100" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_Options_ScaleFrameText2" text="HEALBOT_OPTIONS_NEWSKINTEXT" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-70" y="-2" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_Skins" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="25" y="-2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnTextChanged>
|
||||||
|
HealBot_Options_NewSkin_OnTextChanged(this)
|
||||||
|
</OnTextChanged>
|
||||||
|
</Scripts>
|
||||||
|
</EditBox>
|
||||||
|
<Button name="HealBot_Options_NewSkinb" inherits="UIPanelButtonTemplate" text="HEALBOT_OPTIONS_SAVESKIN">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="80" y="22"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_NewSkin" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="32" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_Options_NewSkinb_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<Frame name="HealBot_Options_Scale" inherits="OptionFrameBoxTemplate">
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
this:SetBackdropBorderColor(0.4, 0.4, 0.4);
|
||||||
|
this:SetBackdropColor(0, 0, 0, 0);
|
||||||
|
</OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="325"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="20" y="-88"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-20" y="-180"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="BACKGROUND">
|
||||||
|
<FontString name="HealBot_Options_ScaleFrameText3" text="HEALBOT_OPTIONS_SKINBARS" inherits="GameFontNormalSmall">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="50" y="-12" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Frames>
|
||||||
|
<CheckButton name="HealBot_Options_ShowHeaders" inherits="SendMailRadioButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="155" y="-8" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_ShowHeaders_OnLoad(this,HEALBOT_OPTIONS_SHOWHEADERS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_ShowHeaders_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_BarColorMode" inherits="SendMailRadioButtonTemplate">
|
||||||
|
<Anchors><Anchor point="TOPLEFT"><Offset><AbsDimension x="290" y="-8" /></Offset></Anchor></Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>getglobal(this:GetName().."Text"):SetText("Class Colors")</OnLoad>
|
||||||
|
<OnClick>HealBot_Config.bcolormode[HealBot_Config.Current_Skin] = (this:GetChecked() and 2 or 1); HealBot_Action_ResetSkin()</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_FontOutline" inherits="SendMailRadioButtonTemplate">
|
||||||
|
<Anchors><Anchor point="TOPLEFT"><Offset><AbsDimension x="290" y="-33" /></Offset></Anchor></Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>getglobal(this:GetName().."Text"):SetText("Font Outline")</OnLoad>
|
||||||
|
<OnClick>HealBot_Config.bfontoutline[HealBot_Config.Current_Skin] = (this:GetChecked() and 1 or 0); HealBot_Action_ResetSkin()</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_1pxBorders" inherits="SendMailRadioButtonTemplate">
|
||||||
|
<Anchors><Anchor point="TOPLEFT"><Offset><AbsDimension x="290" y="-58" /></Offset></Anchor></Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>getglobal(this:GetName().."Text"):SetText("1px Borders")</OnLoad>
|
||||||
|
<OnClick>HealBot_Config.bborder[HealBot_Config.Current_Skin] = (this:GetChecked() and 1 or 2); HealBot_Action_ResetSkin()</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
|
||||||
|
<Slider name="HealBot_Options_BarTextureS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="20" y="-40" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINTEXTURE,1,14)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarTextureS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarNumColsS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="18" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarTextureS" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINNUMCOLS,1,8)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarNumColsS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarHeightS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="18" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarTextureS" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-32" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINHEIGHT,10,100)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarHeightS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarWidthS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarHeightS" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINWIDTH,50,225)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarWidthS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
|
||||||
|
<Slider name="HealBot_Options_BarBRSpaceS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarHeightS" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-32" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINBRSPACE,0,10)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarBRSpaceS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarBCSpaceS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarBRSpaceS" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINBCSPACE,0,25)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarBCSpaceS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_FramePaddingS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarBRSpaceS" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-35" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,"Frame Padding",0,50)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_FramePaddingS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BorderThicknessS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FramePaddingS" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,"Solid Border",1,10)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BorderThicknessS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarAlpha" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FramePaddingS" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-35" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_Pct_OnLoad_MinMax(this,HEALBOT_OPTIONS_BARALPHA,0.25,1)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarAlpha_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
|
||||||
|
<Slider name="HealBot_Options_BarAlphaInHeal" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarAlpha" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_Pct_OnLoad_MinMax(this,HEALBOT_OPTIONS_BARALPHAINHEAL,0.05,0.75)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarAlphaInHeal_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_BarAlphaDis" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarAlpha" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-35" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_Pct_OnLoad(this,HEALBOT_OPTIONS_BARALPHADIS)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_BarAlphaDis_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_AbortBarSize" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarAlphaDis" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,"Abort size",0,15)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_AbortBarSize_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_FontHeight" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarAlphaDis" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-35" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,HEALBOT_OPTIONS_SKINFHEIGHT,7,18)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_FontHeight_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
|
||||||
|
<Button name="HealBot_EnTextColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-15"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("En")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_EnTextColorpick" inherits="TextStatusBar">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-15"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString name="HealBot_EnTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_ENTEXT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_EnTextColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(70); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
<StatusBar name="HealBot_EnTextColorpickin" inherits="TextStatusBar">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-15"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<Button name="HealBot_DisTextColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("Dis")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_DisTextColorpick" inherits="TextStatusBar">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString name="HealBot_DisTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_DISTEXT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_DisTextColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
<Button name="HealBot_DebTextColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_DisTextColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("Debuff")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_DebTextColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_DisTextColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString name="HealBot_DebTextColorpickt" inherits="GameFontNormalSmall" text="HEALBOT_SKIN_DEBTEXT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_DebTextColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
|
||||||
|
<Button name="HealBot_BackgroundColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-25"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("Back")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_BackgroundColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_EnTextColorpick" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="-25"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_SKIN_BACKTEXT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_BackgroundColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
<Button name="HealBot_BorderColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("Bor")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_BorderColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_BackgroundColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_SKIN_BORDERTEXT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_BorderColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
<Button name="HealBot_AbortColorpickb">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>HealBot_SkinColorpick_OnClick("Abort")</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
<StatusBar name="HealBot_AbortColorpick" inherits="HealBot_ColourButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="87" y="20"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_BorderColorpick" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="5" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_ACTION_ABORT">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="CENTER" relativeTo="HealBot_AbortColorpick" relativePoint="CENTER">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="1"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad> this:SetMinMaxValues(0,100); this:SetValue(100); </OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
<BarTexture file="Interface\TargetingFrame\UI-StatusBar"/>
|
||||||
|
<BarColor r="0" g="1" b="0"/>
|
||||||
|
</StatusBar>
|
||||||
|
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,199 @@
|
|||||||
|
-- HealBot Options panel file: HealBot_Options_Spells.lua
|
||||||
|
-- Split from original HealBot_Options.lua
|
||||||
|
|
||||||
|
function HealBot_ComboButtons_Button_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_ComboButtons_Button_OnClick(this,id)
|
||||||
|
if HealBot_Options_ComboButtons_Button>0 then
|
||||||
|
getglobal("HealBot_ComboButtons_Button"..HealBot_Options_ComboButtons_Button):SetChecked(nil);
|
||||||
|
end
|
||||||
|
HealBot_Options_ComboButtons_Button = id;
|
||||||
|
if HealBot_Options_ComboButtons_Button>0 then
|
||||||
|
getglobal("HealBot_ComboButtons_Button"..HealBot_Options_ComboButtons_Button):SetChecked(1);
|
||||||
|
end
|
||||||
|
HealBot_Options_ComboClass_Text()
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltip_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltip_OnClick(this)
|
||||||
|
HealBot_Config.ShowTooltip = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipTarget_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipTarget_OnClick(this)
|
||||||
|
HealBot_Config.Tooltip_ShowTarget = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipSpellDetail_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipSpellDetail_OnClick(this)
|
||||||
|
HealBot_Config.Tooltip_ShowSpellDetail = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipInstant_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_ShowTooltipInstant_OnClick(this)
|
||||||
|
HealBot_Config.Tooltip_Recommend = this:GetChecked() or 0;
|
||||||
|
end
|
||||||
|
local HealBot_Options_TooltipPos_List = {
|
||||||
|
HEALBOT_TOOLTIP_POSDEFAULT,
|
||||||
|
HEALBOT_TOOLTIP_POSLEFT,
|
||||||
|
HEALBOT_TOOLTIP_POSRIGHT,
|
||||||
|
HEALBOT_TOOLTIP_POSABOVE,
|
||||||
|
HEALBOT_TOOLTIP_POSBELOW,
|
||||||
|
}
|
||||||
|
|
||||||
|
function HealBot_Options_TooltipPos_DropDown()
|
||||||
|
for i=1, getn(HealBot_Options_TooltipPos_List), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = HealBot_Options_TooltipPos_List[i];
|
||||||
|
info.func = HealBot_Options_TooltipPos_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_TooltipPos_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_TooltipPos,HealBot_Options_TooltipPos_DropDown)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_TooltipPos_Refresh(onselect)
|
||||||
|
if not HealBot_Config.TooltipPos then return end
|
||||||
|
if not onselect then HealBot_Options_TooltipPos_Initialize() end -- or wrong menu may be used !
|
||||||
|
UIDropDownMenu_SetSelectedID(HealBot_Options_TooltipPos,HealBot_Config.TooltipPos)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_TooltipPos_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_TooltipPos_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(128, this)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_TooltipPos_OnSelect()
|
||||||
|
HealBot_Config.TooltipPos = this:GetID()
|
||||||
|
HealBot_Options_TooltipPos_Refresh(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local HealBot_Options_ComboClass_List = {
|
||||||
|
HEALBOT_DRUID,
|
||||||
|
HEALBOT_PALADIN,
|
||||||
|
HEALBOT_PRIEST,
|
||||||
|
HEALBOT_SHAMAN,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_ComboClass_Text()
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
local button = HealBot_Options_ComboClass_Button()
|
||||||
|
if combo then
|
||||||
|
HealBot_Options_Click:SetText(combo[button] or "")
|
||||||
|
HealBot_Options_Shift:SetText(combo["Shift"..button] or "")
|
||||||
|
HealBot_Options_Ctrl:SetText(combo["Ctrl"..button] or "")
|
||||||
|
HealBot_Options_ShiftCtrl:SetText(combo["ShiftCtrl"..button] or "")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function HealBot_Options_ComboClass_Button()
|
||||||
|
local button = "Left"
|
||||||
|
if HealBot_Options_ComboButtons_Button==2 then button = "Middle"; end
|
||||||
|
if HealBot_Options_ComboButtons_Button==3 then button = "Right"; end
|
||||||
|
if HealBot_Options_ComboButtons_Button==4 then button = "Button4"; end
|
||||||
|
if HealBot_Options_ComboButtons_Button==5 then button = "Button5"; end
|
||||||
|
return button;
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ColorPickerFrame.func = HealBot_Returned_Colours
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function HealBot_Options_EditBox_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_Click_OnTextChanged(this)
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not HealBot_Config.KeyCombo[class] then HealBot_Config.KeyCombo[class] = {} end
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
local button = HealBot_Options_ComboClass_Button()
|
||||||
|
combo[button] = this:GetText()
|
||||||
|
HealBot_Options_KeyCombo_Change()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_Shift_OnTextChanged(this)
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not HealBot_Config.KeyCombo[class] then HealBot_Config.KeyCombo[class] = {} end
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
local button = HealBot_Options_ComboClass_Button()
|
||||||
|
combo["Shift"..button] = this:GetText()
|
||||||
|
HealBot_Options_KeyCombo_Change()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_Ctrl_OnTextChanged(this)
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not HealBot_Config.KeyCombo[class] then HealBot_Config.KeyCombo[class] = {} end
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
local button = HealBot_Options_ComboClass_Button()
|
||||||
|
combo["Ctrl"..button] = this:GetText()
|
||||||
|
HealBot_Options_KeyCombo_Change()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_ShiftCtrl_OnTextChanged(this)
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
if not HealBot_Config.KeyCombo[class] then HealBot_Config.KeyCombo[class] = {} end
|
||||||
|
local combo = HealBot_Config.KeyCombo[class]
|
||||||
|
local button = HealBot_Options_ComboClass_Button()
|
||||||
|
combo["ShiftCtrl"..button] = this:GetText()
|
||||||
|
HealBot_Options_KeyCombo_Change()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_KeyCombo_Change()
|
||||||
|
local class=UnitClass("Player");
|
||||||
|
HealBot_Config.KeyCombo[class]=HealBot_Config.KeyCombo[class];
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EnableHealthy_OnLoad(this,text)
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Options_EnableHealthy_OnClick(this)
|
||||||
|
HealBot_Config.EnableHealthy = this:GetChecked() or 0;
|
||||||
|
HealBot_Action_EnableButtons();
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- Chat Custom Messages UI Logic
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -0,0 +1,308 @@
|
|||||||
|
<Ui xmlns="http://www.blizzard.com/wow/ui/"
|
||||||
|
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">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="268"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="21" y="-30"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-21" y="0"/>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
<Size>
|
||||||
|
<AbsDimension y="118"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="20" y="-300"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-20" y="-180"/>
|
||||||
|
</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>
|
||||||
|
</Frame>
|
||||||
|
</Frames>
|
||||||
|
</Frame>
|
||||||
|
|
||||||
|
</Ui>
|
||||||
@@ -0,0 +1,792 @@
|
|||||||
|
-- HealBot_View_Layout.lua
|
||||||
|
-- Manages skins, status bar layouts, anchoring, and grid rendering for the HealBot panel
|
||||||
|
|
||||||
|
local headerno = 0
|
||||||
|
|
||||||
|
HealBot_Action_HealGroup = {
|
||||||
|
"player",
|
||||||
|
"pet",
|
||||||
|
"party1",
|
||||||
|
"party2",
|
||||||
|
"party3",
|
||||||
|
"party4",
|
||||||
|
};
|
||||||
|
|
||||||
|
HealBot_Action_HealTarget = {};
|
||||||
|
HealBot_Action_HealButtons = {};
|
||||||
|
HealBot_Action_UnitButtons = {};
|
||||||
|
|
||||||
|
function HealBot_Action_SetTexture(bar, btexture)
|
||||||
|
if not bar then return end
|
||||||
|
if btexture == 10 then
|
||||||
|
bar:SetStatusBarTexture("Interface\\Buttons\\WHITE8X8");
|
||||||
|
else
|
||||||
|
bar:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\Images\\bar" .. tostring(btexture) .. ".tga");
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_HealthColor(unit, hlth, maxhlth)
|
||||||
|
if HealBot_UnitDebuff[unit] then
|
||||||
|
local debuff, tmp, debuff_type = UnitDebuff(unit, 1, 1)
|
||||||
|
if not debuff then
|
||||||
|
HealBot_UnitDebuff[unit] = nil;
|
||||||
|
HealBot_UnitDebuff[unit .. "_debuff_texture"] = nil
|
||||||
|
else
|
||||||
|
local dr = HealBot_Config.CDCBarColour[debuff_type].R
|
||||||
|
local dg = HealBot_Config.CDCBarColour[debuff_type].G
|
||||||
|
local db = HealBot_Config.CDCBarColour[debuff_type].B
|
||||||
|
if HealBot_Config.btexture[HealBot_Config.Current_Skin] == 10 then
|
||||||
|
dr = dr * 4
|
||||||
|
dg = dg * 4
|
||||||
|
db = db * 4
|
||||||
|
if dr > 1 then dr = 1 end
|
||||||
|
if dg > 1 then dg = 1 end
|
||||||
|
if db > 1 then db = 1 end
|
||||||
|
end
|
||||||
|
return dr, dg, db, HealBot_Config.Barcola[HealBot_Config.Current_Skin];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local text = UnitName(unit);
|
||||||
|
if not HealBot_HealsIn[text] then
|
||||||
|
HealBot_HealsIn[text] = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
local pct = hlth + HealBot_HealsIn[text];
|
||||||
|
if maxhlth and maxhlth > 0 then
|
||||||
|
if pct < maxhlth then
|
||||||
|
pct = pct / maxhlth;
|
||||||
|
else
|
||||||
|
pct = 1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
pct = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
local r, g, b = 1.0, 1.0, 0.0;
|
||||||
|
local a = HealBot_Config.Barcola[HealBot_Config.Current_Skin];
|
||||||
|
if pct > HealBot_Config.AlertLevel then
|
||||||
|
a = HealBot_Config.bardisa[HealBot_Config.Current_Skin];
|
||||||
|
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 then
|
||||||
|
local engClass = HealBot_Model.units[unit].englishClass
|
||||||
|
if RAID_CLASS_COLORS and RAID_CLASS_COLORS[engClass] then
|
||||||
|
r = RAID_CLASS_COLORS[engClass].r
|
||||||
|
g = RAID_CLASS_COLORS[engClass].g
|
||||||
|
b = RAID_CLASS_COLORS[engClass].b
|
||||||
|
end
|
||||||
|
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
|
||||||
|
end
|
||||||
|
return r, g, b, a;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_HealthBar(button)
|
||||||
|
local name = button:GetName();
|
||||||
|
return getglobal(name .. "Bar");
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_HealthBar2(button)
|
||||||
|
local name = button:GetName();
|
||||||
|
return getglobal(name .. "Bar2");
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_EnableButton(button)
|
||||||
|
local unit = button.unit;
|
||||||
|
local state = HealBot_Model.units[unit]
|
||||||
|
if not state then return end
|
||||||
|
|
||||||
|
local hlth = state.health
|
||||||
|
local maxhlth = state.maxHealth
|
||||||
|
local name = state.name
|
||||||
|
if not name then name = UnitName(unit) end -- fallback
|
||||||
|
|
||||||
|
local bar = HealBot_Action_HealthBar(button);
|
||||||
|
local bar2 = HealBot_Action_HealthBar2(button);
|
||||||
|
local bar3 = getglobal(button:GetName() .. "Bar3");
|
||||||
|
local btexture = HealBot_Config.btexture[HealBot_Config.Current_Skin];
|
||||||
|
local bheight = HealBot_Config.bheight[HealBot_Config.Current_Skin];
|
||||||
|
local sr = HealBot_Config.btextenabledcolr[HealBot_Config.Current_Skin];
|
||||||
|
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];
|
||||||
|
local r, g, b, a = HealBot_HealthColor(button.unit, hlth, maxhlth)
|
||||||
|
local btextheight = HealBot_Config.btextheight[HealBot_Config.Current_Skin] or 10;
|
||||||
|
if btextheight == 0 then btextheight = 10 end
|
||||||
|
local bwidth = HealBot_Config.bwidth[HealBot_Config.Current_Skin]
|
||||||
|
local textlen = math.floor(5 + (((bwidth * 1.8) / btextheight) - (btextheight / 2)))
|
||||||
|
|
||||||
|
bar:SetMinMaxValues(0, maxhlth);
|
||||||
|
bar:SetValue(hlth);
|
||||||
|
|
||||||
|
local englishClass = state.englishClass
|
||||||
|
local isHealer = false
|
||||||
|
if englishClass == "PALADIN" or englishClass == "DRUID" or englishClass == "SHAMAN" or englishClass == "PRIEST" then
|
||||||
|
isHealer = true
|
||||||
|
end
|
||||||
|
local pt = state.powerType
|
||||||
|
|
||||||
|
local showMana = false
|
||||||
|
if HealBot_Config.ShowManaBars == 1 and state.maxMana > 0 and pt == 0 then
|
||||||
|
if HealBot_Config.ManaBarsHealersOnly == 1 then
|
||||||
|
if isHealer then showMana = true end
|
||||||
|
else
|
||||||
|
showMana = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if showMana then
|
||||||
|
local pr, pg, pb = 0, 0, 1
|
||||||
|
if bar3 then
|
||||||
|
bar3:SetMinMaxValues(0, state.maxMana)
|
||||||
|
bar3:SetValue(state.mana)
|
||||||
|
bar3:SetStatusBarColor(pr, pg, pb, HealBot_Config.Barcola[HealBot_Config.Current_Skin])
|
||||||
|
HealBot_Action_SetTexture(bar3, HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||||
|
bar3:Show()
|
||||||
|
bar3:SetHeight(bheight * 0.2)
|
||||||
|
end
|
||||||
|
bar:SetHeight(bheight * 0.8)
|
||||||
|
bar2:SetHeight(bheight * 0.8)
|
||||||
|
else
|
||||||
|
if bar3 then
|
||||||
|
bar3:Hide()
|
||||||
|
end
|
||||||
|
bar:SetHeight(bheight)
|
||||||
|
bar2:SetHeight(bheight)
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_HealsIn[name] then
|
||||||
|
bar2:SetMinMaxValues(0, maxhlth);
|
||||||
|
bar2:SetValue(hlth + HealBot_HealsIn[name]);
|
||||||
|
else
|
||||||
|
bar2:SetValue(0);
|
||||||
|
end
|
||||||
|
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||||
|
if (not HealBot_IsCasting and (HealBot_CanHeal(unit) or HealBot_MissingBuffs[unit])) then
|
||||||
|
button:Enable();
|
||||||
|
if HealBot_UnitDebuff[unit] then
|
||||||
|
sr = HealBot_Config.btextcursecolr[HealBot_Config.Current_Skin];
|
||||||
|
sg = HealBot_Config.btextcursecolg[HealBot_Config.Current_Skin];
|
||||||
|
sb = HealBot_Config.btextcursecolb[HealBot_Config.Current_Skin];
|
||||||
|
sa = HealBot_Config.btextcursecola[HealBot_Config.Current_Skin];
|
||||||
|
elseif HealBot_MissingBuffs[unit] then
|
||||||
|
r = r * 0.5;
|
||||||
|
g = g * 0.5;
|
||||||
|
b = b * 0.5;
|
||||||
|
sr = 1.0;
|
||||||
|
sg = 1.0;
|
||||||
|
sb = 0.0;
|
||||||
|
end
|
||||||
|
bar:SetStatusBarColor(r, g, b, HealBot_Config.Barcola[HealBot_Config.Current_Skin]);
|
||||||
|
bar2:SetStatusBarColor(r, g, b, HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin]);
|
||||||
|
else
|
||||||
|
button:Disable();
|
||||||
|
sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin];
|
||||||
|
sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin];
|
||||||
|
sb = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin];
|
||||||
|
sa = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin];
|
||||||
|
bar:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
||||||
|
bar2:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
||||||
|
end
|
||||||
|
if string.len(name) > textlen then
|
||||||
|
name = string.sub(name, 1, textlen - 3) .. '...';
|
||||||
|
end
|
||||||
|
bar.txt:SetText(name);
|
||||||
|
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, "")
|
||||||
|
end
|
||||||
|
|
||||||
|
for i = 1, 5 do
|
||||||
|
local icon = getglobal(button:GetName() .. "BarIcon" .. i)
|
||||||
|
if icon then
|
||||||
|
if HealBot_UnitIcons and HealBot_UnitIcons[unit] and HealBot_UnitIcons[unit][i] then
|
||||||
|
icon:SetTexture(HealBot_UnitIcons[unit][i])
|
||||||
|
icon:Show()
|
||||||
|
else
|
||||||
|
icon:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_EnableButtons()
|
||||||
|
table.foreach(HealBot_Action_HealButtons, function (index, button)
|
||||||
|
HealBot_Action_EnableButton(button);
|
||||||
|
end);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_RefreshButton(button)
|
||||||
|
if not button then return end
|
||||||
|
local unit = button.unit;
|
||||||
|
if HealBot_MayHeal(unit) then
|
||||||
|
HealBot_Action_EnableButton(button)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_ResetSkin()
|
||||||
|
HealBot_Action_PartyChanged()
|
||||||
|
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_SetSkinColours()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_RefreshButtons(unit)
|
||||||
|
if unit and HealBot_Action_UnitButtons[unit] then
|
||||||
|
table.foreach(HealBot_Action_UnitButtons[unit], function (index, button)
|
||||||
|
HealBot_Action_RefreshButton(button);
|
||||||
|
end);
|
||||||
|
else
|
||||||
|
table.foreach(HealBot_Action_HealButtons, function (index, button)
|
||||||
|
HealBot_Action_RefreshButton(button);
|
||||||
|
end);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_PositionButton(button, OsetX, OsetY, bwidth, bheight, checked, header)
|
||||||
|
local brspace = HealBot_Config.brspace[HealBot_Config.Current_Skin] or 3;
|
||||||
|
if header then
|
||||||
|
headerno = headerno + 1;
|
||||||
|
local headerobj = getglobal("HealBot_Action_Header" .. headerno);
|
||||||
|
headerobj:SetText(header)
|
||||||
|
headerobj:Show();
|
||||||
|
headerobj:ClearAllPoints();
|
||||||
|
headerobj:SetHeight(bheight);
|
||||||
|
headerobj:SetWidth(bwidth);
|
||||||
|
headerobj:SetPoint("TOPLEFT", "HealBot_Action", "TOPLEFT", OsetX, -OsetY);
|
||||||
|
headerobj:Disable();
|
||||||
|
OsetY = OsetY + headerobj:GetHeight() + brspace;
|
||||||
|
else
|
||||||
|
local unit = button.unit;
|
||||||
|
button:SetText(" ");
|
||||||
|
if (HealBot_MayHeal(unit)) then
|
||||||
|
button:Show();
|
||||||
|
button:ClearAllPoints();
|
||||||
|
button:SetHeight(bheight);
|
||||||
|
if checked then
|
||||||
|
button:SetWidth(bwidth - 14);
|
||||||
|
button:SetPoint("TOPLEFT", "HealBot_Action", "TOPLEFT", OsetX + 14, -OsetY);
|
||||||
|
else
|
||||||
|
button:SetWidth(bwidth);
|
||||||
|
button:SetPoint("TOPLEFT", "HealBot_Action", "TOPLEFT", OsetX, -OsetY);
|
||||||
|
end
|
||||||
|
OsetY = OsetY + button:GetHeight() + brspace;
|
||||||
|
else
|
||||||
|
button:Hide();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return OsetY;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_SetHeightWidth(width, height, bwidth)
|
||||||
|
if HealBot_ActionHeight then
|
||||||
|
HealBot_Action:SetHeight(HealBot_ActionHeight);
|
||||||
|
end
|
||||||
|
if HealBot_Config.GrowUpwards == 1 then
|
||||||
|
local left, bottom = HealBot_Action:GetLeft(), HealBot_Action:GetBottom();
|
||||||
|
if left and bottom then
|
||||||
|
if HealBot_Config.PanelAnchorX == -1 then HealBot_Config.PanelAnchorX = left; end
|
||||||
|
if HealBot_Config.PanelAnchorY == -1 then HealBot_Config.PanelAnchorY = bottom; end
|
||||||
|
HealBot_Action:ClearAllPoints();
|
||||||
|
HealBot_Action:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT", HealBot_Config.PanelAnchorX, HealBot_Config.PanelAnchorY);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local left, top = HealBot_Action:GetLeft(), HealBot_Action:GetTop();
|
||||||
|
if left and top then
|
||||||
|
HealBot_Action:ClearAllPoints();
|
||||||
|
HealBot_Action:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT", left, top);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_Action:SetHeight(height);
|
||||||
|
HealBot_ActionHeight = height;
|
||||||
|
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||||
|
HealBot_Action:SetWidth(width + bwidth + bpadding)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_SetHealButton(index, unit)
|
||||||
|
if not index then
|
||||||
|
HealBot_Action_HealButtons = {};
|
||||||
|
HealBot_Action_UnitButtons = {};
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
local button = getglobal("HealBot_Action_HealUnit" .. index);
|
||||||
|
button.unit = unit;
|
||||||
|
if unit then
|
||||||
|
table.insert(HealBot_Action_HealButtons, button);
|
||||||
|
if not HealBot_Action_UnitButtons[unit] then HealBot_Action_UnitButtons[unit] = {} end
|
||||||
|
table.insert(HealBot_Action_UnitButtons[unit], button);
|
||||||
|
else
|
||||||
|
button:Hide();
|
||||||
|
end
|
||||||
|
return button;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_PartyChanged()
|
||||||
|
if not HealBot_IsFighting then
|
||||||
|
local numBars = 0;
|
||||||
|
local numHeaders = 0;
|
||||||
|
local TempMaxH = 0;
|
||||||
|
local HeaderPos = {};
|
||||||
|
|
||||||
|
for j = 1, 15 do
|
||||||
|
local headerobj = getglobal("HealBot_Action_Header" .. j);
|
||||||
|
headerobj:SetText(" ")
|
||||||
|
headerobj:Hide();
|
||||||
|
end
|
||||||
|
|
||||||
|
local bwidth = HealBot_Config.bwidth[HealBot_Config.Current_Skin] or 85;
|
||||||
|
local sr = HealBot_Config.btextdisbledcolr[HealBot_Config.Current_Skin] or 0.4;
|
||||||
|
local sg = HealBot_Config.btextdisbledcolg[HealBot_Config.Current_Skin] or 0.4;
|
||||||
|
local sb = HealBot_Config.btextdisbledcolb[HealBot_Config.Current_Skin] or 0.4;
|
||||||
|
local sa = HealBot_Config.btextdisbledcola[HealBot_Config.Current_Skin] or 0.6;
|
||||||
|
local bheight = HealBot_Config.bheight[HealBot_Config.Current_Skin] or 18;
|
||||||
|
local btexture = HealBot_Config.btexture[HealBot_Config.Current_Skin] or 5;
|
||||||
|
local bcspace = HealBot_Config.bcspace[HealBot_Config.Current_Skin] or 4;
|
||||||
|
local cols = HealBot_Config.numcols[HealBot_Config.Current_Skin] or 2;
|
||||||
|
local btextheight = HealBot_Config.btextheight[HealBot_Config.Current_Skin] or 10;
|
||||||
|
local abortsize = HealBot_Config.abortsize[HealBot_Config.Current_Skin] or 10;
|
||||||
|
local checked_start = 0;
|
||||||
|
local checked_end = 0;
|
||||||
|
headerno = 0;
|
||||||
|
|
||||||
|
for j = 1, 41 do
|
||||||
|
HealBot_Action_SetHealButton(j, nil);
|
||||||
|
end
|
||||||
|
for j = 51, 60 do
|
||||||
|
HealBot_Action_SetHealButton(j, nil);
|
||||||
|
end
|
||||||
|
HealBot_Action_SetHealButton();
|
||||||
|
|
||||||
|
local i = 0;
|
||||||
|
local last = 0;
|
||||||
|
local GroupValid = numBars;
|
||||||
|
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
|
||||||
|
end
|
||||||
|
for _, unit in ipairs(HealBot_Action_HealGroup) 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
|
||||||
|
if numBars > GroupValid and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
last = last + 10
|
||||||
|
local TankValid = numBars;
|
||||||
|
if HealBot_Config.TankHeals == 1 then
|
||||||
|
if GetNumRaidMembers() > 0 and CT_RA_MainTanks then
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
HeaderPos[i + 1] = HEALBOT_OPTIONS_TANKHEALS
|
||||||
|
end
|
||||||
|
for j = 1, 10 do
|
||||||
|
if CT_RA_MainTanks[j] then
|
||||||
|
for k = 1, GetNumRaidMembers() do
|
||||||
|
local unit = "raid" .. k;
|
||||||
|
local PossibleMT = 1;
|
||||||
|
if UnitInParty(unit) and HealBot_Config.GroupHeals == 1 then
|
||||||
|
if not UnitIsUnit(unit, "player") then
|
||||||
|
PossibleMT = 0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if PossibleMT == 1 then
|
||||||
|
if UnitName(unit) == CT_RA_MainTanks[j] then
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
i = i + 1;
|
||||||
|
HealBot_Action_SetHealButton(i, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if i == last then break end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if numBars > TankValid and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
last = last + 10;
|
||||||
|
local h = 50;
|
||||||
|
local TargetValid = numBars;
|
||||||
|
if HealBot_Config.TargetHeals == 1 then
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
HeaderPos[i + 1] = HEALBOT_OPTIONS_TARGETHEALS
|
||||||
|
end
|
||||||
|
for _, unit in ipairs(HealBot_Action_HealTarget) do
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
i = i + 1;
|
||||||
|
h = h + 1;
|
||||||
|
if checked_start == 0 then checked_start = i; end
|
||||||
|
checked_end = i;
|
||||||
|
HealBot_Action_SetHealButton(h, unit);
|
||||||
|
local check = getglobal("HealBot_Action_HealUnit" .. h .. "Check");
|
||||||
|
check.unit = unit;
|
||||||
|
check:SetChecked(1);
|
||||||
|
check:Show();
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
if i == last then break end
|
||||||
|
end
|
||||||
|
|
||||||
|
last = last + 1
|
||||||
|
local unit = HealBot_TargetName()
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal("target") then
|
||||||
|
i = i + 1;
|
||||||
|
h = h + 1;
|
||||||
|
if h < 61 then
|
||||||
|
HealBot_Action_SetHealButton(h, "target");
|
||||||
|
local check = getglobal("HealBot_Action_HealUnit" .. h .. "Check");
|
||||||
|
|
||||||
|
check:SetChecked(0);
|
||||||
|
check.unit = unit;
|
||||||
|
if check.unit then
|
||||||
|
if checked_start == 0 then checked_start = i; end
|
||||||
|
checked_end = i;
|
||||||
|
check:Show();
|
||||||
|
else
|
||||||
|
check:Hide();
|
||||||
|
end
|
||||||
|
else
|
||||||
|
HealBot_Action_SetHealButton(i, "target");
|
||||||
|
end
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if numBars > TargetValid and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
last = last + 40
|
||||||
|
local ExtraValid = numBars;
|
||||||
|
if HealBot_Config.EmergencyHeals == 1 then
|
||||||
|
local order = {};
|
||||||
|
local units = {};
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 1 then
|
||||||
|
HeaderPos[i + 1] = HEALBOT_OPTIONS_EMERGENCYHEALS
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
if HealBot_Config.EmergIncMonitor == 1 then
|
||||||
|
if GetNumRaidMembers() > 0 then
|
||||||
|
for j = 1, 40 do
|
||||||
|
local PossibleEmerg = 1;
|
||||||
|
local unit = "raid" .. j;
|
||||||
|
local name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(j);
|
||||||
|
if not name then name = "not known" end
|
||||||
|
if not class then class = "not known" end
|
||||||
|
if not subgroup then subgroup = "not known" end
|
||||||
|
|
||||||
|
if UnitInParty(unit) and HealBot_Config.GroupHeals == 1 then
|
||||||
|
PossibleEmerg = 0;
|
||||||
|
end
|
||||||
|
if PossibleEmerg == 1 then
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
if HealBot_Config.ExtraOrder == 1 then
|
||||||
|
order[unit] = name;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 2 then
|
||||||
|
order[unit] = class;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 3 then
|
||||||
|
order[unit] = subgroup;
|
||||||
|
else
|
||||||
|
order[unit] = 0 - UnitHealthMax(unit);
|
||||||
|
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||||
|
end
|
||||||
|
table.insert(units, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
for _, unit in ipairs(HealBot_Action_HealGroup) do
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
if HealBot_Config.ExtraOrder == 1 then
|
||||||
|
order[unit] = name;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 2 then
|
||||||
|
order[unit] = class;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 3 then
|
||||||
|
order[unit] = subgroup;
|
||||||
|
else
|
||||||
|
order[unit] = 0 - UnitHealthMax(unit);
|
||||||
|
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||||
|
end
|
||||||
|
table.insert(units, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if GetNumRaidMembers() > 0 then
|
||||||
|
for j = 1, 40 do
|
||||||
|
local unit = "raid" .. j;
|
||||||
|
local Class = UnitClass(unit);
|
||||||
|
local ProcessUnit = 0;
|
||||||
|
local PossibleEmerg = 1;
|
||||||
|
local name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(j);
|
||||||
|
if not name then name = "not known" end
|
||||||
|
if not class then class = "not known" end
|
||||||
|
if not subgroup then subgroup = "not known" end
|
||||||
|
|
||||||
|
if HealBot_EmergInc[Class] == 1 then
|
||||||
|
ProcessUnit = 1;
|
||||||
|
end
|
||||||
|
if UnitInParty(unit) and HealBot_Config.GroupHeals == 1 then
|
||||||
|
PossibleEmerg = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
if ProcessUnit == 1 and PossibleEmerg == 1 then
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
if HealBot_Config.ExtraOrder == 1 then
|
||||||
|
order[unit] = name;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 2 then
|
||||||
|
order[unit] = class;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 3 then
|
||||||
|
order[unit] = subgroup;
|
||||||
|
else
|
||||||
|
order[unit] = 0 - UnitHealthMax(unit);
|
||||||
|
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||||
|
end
|
||||||
|
table.insert(units, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
for _, unit in ipairs(HealBot_Action_HealGroup) do
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
if HealBot_Config.ExtraOrder == 1 then
|
||||||
|
order[unit] = name;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 2 then
|
||||||
|
order[unit] = class;
|
||||||
|
elseif HealBot_Config.ExtraOrder == 3 then
|
||||||
|
order[unit] = subgroup;
|
||||||
|
else
|
||||||
|
order[unit] = 0 - UnitHealthMax(unit);
|
||||||
|
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||||
|
end
|
||||||
|
table.insert(units, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
table.sort(units, function (a, b)
|
||||||
|
if order[a] < order[b] then return true end
|
||||||
|
if order[a] > order[b] then return false end
|
||||||
|
return a < b
|
||||||
|
end)
|
||||||
|
local TempSort = "init"
|
||||||
|
TempMaxH = math.ceil(TempMaxH / 1000) * 1000;
|
||||||
|
|
||||||
|
if GetNumRaidMembers() > 0 then
|
||||||
|
for j = 1, 40 do
|
||||||
|
if not units[j] then break end
|
||||||
|
local name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(string.sub(units[j], 5));
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 2 and TempSort ~= class then
|
||||||
|
TempSort = class
|
||||||
|
HeaderPos[i + 1] = class
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 3 and TempSort ~= subgroup then
|
||||||
|
TempSort = subgroup
|
||||||
|
HeaderPos[i + 1] = HEALBOT_OPTIONS_GROUPHEALS .. subgroup
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 4 and TempMaxH > UnitHealthMax(units[j]) then
|
||||||
|
TempMaxH = TempMaxH - 1000
|
||||||
|
HeaderPos[i + 1] = ">" .. tostring(TempMaxH / 1000) .. "k"
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
i = i + 1;
|
||||||
|
HealBot_Action_SetHealButton(i, units[j]);
|
||||||
|
if i == last then break end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if numBars == ExtraValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
HeaderPos[i + 1] = nil;
|
||||||
|
numBars = numBars - 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||||
|
local OffsetY = bpadding;
|
||||||
|
local OffsetX = bpadding;
|
||||||
|
local MaxOffsetY = 0;
|
||||||
|
|
||||||
|
if cols > (numBars - numHeaders) then
|
||||||
|
cols = numBars - numHeaders;
|
||||||
|
end
|
||||||
|
if cols <= 0 then cols = 1 end
|
||||||
|
|
||||||
|
local h = 1;
|
||||||
|
local i = 0;
|
||||||
|
local z = 1;
|
||||||
|
|
||||||
|
table.foreach(HealBot_Action_HealButtons, function (index, button)
|
||||||
|
i = i + 1;
|
||||||
|
local checked = false;
|
||||||
|
local header;
|
||||||
|
|
||||||
|
if HeaderPos[i] then
|
||||||
|
header = HeaderPos[i];
|
||||||
|
OffsetY = HealBot_Action_PositionButton(nil, OffsetX, OffsetY, bwidth, bheight, checked, header);
|
||||||
|
if h == math.ceil((numBars) / cols) and z < numBars then
|
||||||
|
h = 0;
|
||||||
|
if MaxOffsetY < OffsetY then MaxOffsetY = OffsetY; end
|
||||||
|
OffsetY = bpadding;
|
||||||
|
OffsetX = OffsetX + bwidth + bcspace;
|
||||||
|
end
|
||||||
|
h = h + 1;
|
||||||
|
z = z + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
if checked_start <= i and checked_end >= i then checked = true; end
|
||||||
|
OffsetY = HealBot_Action_PositionButton(button, OffsetX, OffsetY, bwidth, bheight, checked, nil);
|
||||||
|
if h == math.ceil((numBars) / cols) and z < numBars then
|
||||||
|
h = 0;
|
||||||
|
if MaxOffsetY < OffsetY then MaxOffsetY = OffsetY; end
|
||||||
|
OffsetY = bpadding;
|
||||||
|
OffsetX = OffsetX + bwidth + bcspace;
|
||||||
|
end
|
||||||
|
z = z + 1;
|
||||||
|
h = h + 1;
|
||||||
|
local bar = HealBot_Action_HealthBar(button);
|
||||||
|
local bar2 = HealBot_Action_HealthBar2(button);
|
||||||
|
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||||
|
bar:SetHeight(bheight);
|
||||||
|
HealBot_Action_SetTexture(bar, btexture);
|
||||||
|
bar.txt:SetTextHeight(btextheight);
|
||||||
|
local barScale = bar:GetScale();
|
||||||
|
bar:SetScale(barScale + 0.01);
|
||||||
|
bar:SetScale(barScale);
|
||||||
|
bar2:SetHeight(bheight);
|
||||||
|
HealBot_Action_SetTexture(bar2, btexture);
|
||||||
|
end);
|
||||||
|
|
||||||
|
if MaxOffsetY < OffsetY then MaxOffsetY = OffsetY; end
|
||||||
|
|
||||||
|
if HealBot_Config.HideOptions == 1 then
|
||||||
|
HealBot_Action_OptionsButton:Hide();
|
||||||
|
else
|
||||||
|
HealBot_Action_OptionsButton:SetPoint("BOTTOM", "HealBot_Action", "BOTTOM", 0, bpadding);
|
||||||
|
HealBot_Action_OptionsButton:Show();
|
||||||
|
MaxOffsetY = MaxOffsetY + 30;
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_Config.HideAbort == 1 then
|
||||||
|
HealBot_Action_AbortButton:Hide();
|
||||||
|
else
|
||||||
|
local bar = HealBot_Action_HealthBar(HealBot_Action_AbortButton);
|
||||||
|
local denom = 6 - (abortsize / 3)
|
||||||
|
if denom == 0 then denom = 1 end
|
||||||
|
local width = (bwidth - 12) + (OffsetX / denom);
|
||||||
|
|
||||||
|
bar.txt = getglobal(bar:GetName() .. "_text");
|
||||||
|
bar.txt:SetTextColor(sr, sg, sb, sa);
|
||||||
|
bar.txt:SetText(HEALBOT_ACTION_ABORT);
|
||||||
|
HealBot_Action_SetTexture(bar, btexture);
|
||||||
|
bar:SetMinMaxValues(0, 100);
|
||||||
|
bar:SetValue(100);
|
||||||
|
bar:ClearAllPoints();
|
||||||
|
bar:SetHeight(bheight + abortsize);
|
||||||
|
bar:SetWidth(width);
|
||||||
|
bar:SetStatusBarColor(0.1, 0.1, 0.4, 0);
|
||||||
|
MaxOffsetY = MaxOffsetY + 30 + abortsize;
|
||||||
|
HealBot_Action_AbortButton:ClearAllPoints();
|
||||||
|
HealBot_Action_AbortButton:SetWidth(width)
|
||||||
|
HealBot_Action_AbortButton:SetHeight(bheight + abortsize);
|
||||||
|
if HealBot_Config.HideOptions == 1 then
|
||||||
|
HealBot_Action_AbortButton:SetPoint("BOTTOM", "HealBot_Action", "BOTTOM", 0, bpadding);
|
||||||
|
bar:SetPoint("BOTTOM", "HealBot_Action", "BOTTOM", 0, bpadding);
|
||||||
|
else
|
||||||
|
HealBot_Action_AbortButton:SetPoint("BOTTOM", "HealBot_Action_OptionsButton", "TOP", 0, 10);
|
||||||
|
bar:SetPoint("BOTTOM", "HealBot_Action_OptionsButton", "TOP", 0, 10);
|
||||||
|
end
|
||||||
|
HealBot_Action_AbortButton:Show();
|
||||||
|
end
|
||||||
|
|
||||||
|
HealBot_Action_SetHeightWidth(OffsetX, MaxOffsetY + bpadding, bwidth);
|
||||||
|
if HealBot_Config.HideParty == 1 and HidePartyFrame then
|
||||||
|
HidePartyFrame();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_Action_RefreshButtons();
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_ShowFrame()
|
||||||
|
if HealBot_Config.ActionVisible == 1 then
|
||||||
|
if HealBot_Config.HideSolo == 1 and GetNumPartyMembers() == 0 and GetNumRaidMembers() == 0 then
|
||||||
|
HealBot_Action.ProgrammaticHide = true;
|
||||||
|
HealBot_Action:Hide();
|
||||||
|
HealBot_Action.ProgrammaticHide = nil;
|
||||||
|
else
|
||||||
|
HealBot_Action:Show();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Reset()
|
||||||
|
HealBot_Action:ClearAllPoints();
|
||||||
|
HealBot_Action:SetPoint("TOP", "MinimapCluster", "BOTTOM", 7, 10);
|
||||||
|
HealBot_Action_HealTarget = {};
|
||||||
|
HealBot_Action_PartyChanged();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Refresh(unit)
|
||||||
|
if (UnitIsDeadOrGhost("player")) or (UnitOnTaxi("player")) then
|
||||||
|
if HealBot_Config.AutoClose == 1 and HealBot_Config.ActionVisible ~= 0 then
|
||||||
|
HealBot_Action.ProgrammaticHide = true;
|
||||||
|
HealBot_Action:Hide();
|
||||||
|
HealBot_Action.ProgrammaticHide = nil;
|
||||||
|
else
|
||||||
|
HealBot_Action_RefreshButtons(unit);
|
||||||
|
end
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
HealBot_Action_RefreshButtons(unit);
|
||||||
|
if not HealBot_IsFighting then
|
||||||
|
if (HealBot_Action_MustHealSome()) then
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
elseif HealBot_AbortButton == 0 then
|
||||||
|
HealBot_Action_ShowFrame();
|
||||||
|
elseif (not HealBot_Action_ShouldHealSome()) then
|
||||||
|
if HealBot_AbortButton == 1 and HealBot_Config.AutoClose == 1 and HealBot_Config.ActionVisible ~= 0 then
|
||||||
|
HealBot_Action.ProgrammaticHide = true;
|
||||||
|
HealBot_Action:Hide();
|
||||||
|
HealBot_Action.ProgrammaticHide = nil;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
-- HealBot_View_Tooltip.lua
|
||||||
|
-- Handles rendering of unit and spell tooltips in the HealBot UI
|
||||||
|
|
||||||
|
HealBot_Action_TooltipUnit = nil
|
||||||
|
|
||||||
|
function HealBot_Action_RefreshTooltip(unit)
|
||||||
|
if HealBot_Config.ShowTooltip==0 then return end
|
||||||
|
if not unit then unit = HealBot_Action_TooltipUnit end
|
||||||
|
if not unit then return end;
|
||||||
|
|
||||||
|
local hlth=UnitHealth(unit);
|
||||||
|
local maxhlth=UnitHealthMax(unit);
|
||||||
|
|
||||||
|
local spellLeft = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Left"));
|
||||||
|
local spellMiddle = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Middle"));
|
||||||
|
local spellRight = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Right"));
|
||||||
|
local spellButton4 = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Button4"));
|
||||||
|
local spellButton5 = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Button5"));
|
||||||
|
local linenum = 1
|
||||||
|
|
||||||
|
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)
|
||||||
|
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)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if HealBot_Config.Tooltip_ShowSpellDetail==1 then
|
||||||
|
if spellLeft then
|
||||||
|
linenum=linenum+2
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONLEFT.." "..HEALBOT_OPTIONS_COMBOBUTTON..": "..spellLeft,1,1,0,linenum)
|
||||||
|
linenum=HealBot_Action_Tooltip_SpellInfo(spellLeft,linenum);
|
||||||
|
end
|
||||||
|
if spellMiddle then
|
||||||
|
linenum=linenum+2
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONMIDDLE.." "..HEALBOT_OPTIONS_COMBOBUTTON..": "..spellMiddle,1,1,0,linenum)
|
||||||
|
linenum=HealBot_Action_Tooltip_SpellInfo(spellMiddle,linenum);
|
||||||
|
end
|
||||||
|
if spellRight then
|
||||||
|
linenum=linenum+2
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONRIGHT.." "..HEALBOT_OPTIONS_COMBOBUTTON..": "..spellRight,1,1,0,linenum)
|
||||||
|
linenum=HealBot_Action_Tooltip_SpellInfo(spellRight,linenum);
|
||||||
|
end
|
||||||
|
if spellButton4 then
|
||||||
|
linenum=linenum+2
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTON4.." "..HEALBOT_OPTIONS_COMBOBUTTON..": "..spellButton4,1,1,0,linenum)
|
||||||
|
linenum=HealBot_Action_Tooltip_SpellInfo(spellButton4,linenum);
|
||||||
|
end
|
||||||
|
if spellButton5 then
|
||||||
|
linenum=linenum+2
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTON5.." "..HEALBOT_OPTIONS_COMBOBUTTON..": "..spellButton5,1,1,0,linenum)
|
||||||
|
linenum=HealBot_Action_Tooltip_SpellInfo(spellButton5,linenum);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if spellLeft then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONLEFT..":",1,1,0,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight(HealBot_Action_Tooltip_SpellSummary(spellLeft),1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if spellMiddle then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONMIDDLE..":",1,1,0,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight(HealBot_Action_Tooltip_SpellSummary(spellMiddle),1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if spellRight then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTONRIGHT..":",1,1,0,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight(HealBot_Action_Tooltip_SpellSummary(spellRight),1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if spellButton4 then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTON4..":",1,1,0,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight(HealBot_Action_Tooltip_SpellSummary(spellButton4),1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if spellButton5 then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_OPTIONS_BUTTON5..":",1,1,0,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight(HealBot_Action_Tooltip_SpellSummary(spellButton5),1,1,1,linenum)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if HealBot_Config.Tooltip_Recommend==1 then
|
||||||
|
local Instant_check=0;
|
||||||
|
if HealBot_Config.Tooltip_ShowSpellDetail==1 then linenum=linenum+1; end
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_TOOLTIP_RECOMMENDTEXT,0.8,0.8,0,linenum)
|
||||||
|
Instant_check=0;
|
||||||
|
Instant_check,linenum=HealBot_Action_Tooltip_CheckForInstant(unit,spellLeft,"upd",linenum,Instant_check);
|
||||||
|
Instant_check,linenum=HealBot_Action_Tooltip_CheckForInstant(unit,spellMiddle,"upd",linenum,Instant_check);
|
||||||
|
Instant_check,linenum=HealBot_Action_Tooltip_CheckForInstant(unit,spellRight,"upd",linenum,Instant_check);
|
||||||
|
Instant_check,linenum=HealBot_Action_Tooltip_CheckForInstant(unit,spellButton4,"upd",linenum,Instant_check);
|
||||||
|
Instant_check,linenum=HealBot_Action_Tooltip_CheckForInstant(unit,spellButton5,"upd",linenum,Instant_check);
|
||||||
|
if Instant_check==0 then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(" None",0.4,0.4,0.4,linenum)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local height = 20
|
||||||
|
local width = 0
|
||||||
|
for i = 1, linenum do
|
||||||
|
local txtL = getglobal("HealBot_TooltipTextL" .. i)
|
||||||
|
local txtR = getglobal("HealBot_TooltipTextR" .. i)
|
||||||
|
height = height + txtL:GetHeight() + 2
|
||||||
|
if (txtL:GetWidth() + txtR:GetWidth() + 25 > width) then
|
||||||
|
width = txtL:GetWidth() + txtR:GetWidth() + 25
|
||||||
|
end
|
||||||
|
end
|
||||||
|
HealBot_Tooltip:SetWidth(width)
|
||||||
|
HealBot_Tooltip:SetHeight(height)
|
||||||
|
HealBot_Tooltip:ClearAllPoints();
|
||||||
|
if HealBot_Config.TooltipPos>1 then
|
||||||
|
if HealBot_Config.TooltipPos==2 then
|
||||||
|
HealBot_Tooltip:SetPoint("TOPRIGHT","HealBot_Action","TOPLEFT",0,0);
|
||||||
|
elseif HealBot_Config.TooltipPos==3 then
|
||||||
|
HealBot_Tooltip:SetPoint("TOPLEFT","HealBot_Action","RIGHT",0,0);
|
||||||
|
elseif HealBot_Config.TooltipPos==4 then
|
||||||
|
HealBot_Tooltip:SetPoint("BOTTOM","HealBot_Action","TOP",0,0);
|
||||||
|
else
|
||||||
|
HealBot_Tooltip:SetPoint("TOP","HealBot_Action","BOTTOM",0,0);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
HealBot_Tooltip:SetPoint("BOTTOMRIGHT","WorldFrame","BOTTOMRIGHT",-105,105);
|
||||||
|
end
|
||||||
|
HealBot_Tooltip:Show();
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_SpellInfo(spell,linenum)
|
||||||
|
local text
|
||||||
|
if HealBot_Spells[spell] then
|
||||||
|
if HealBot_Spells[spell].HealsDur>0 then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(HEALBOT_WORDS_CAST..": "..HealBot_Spells[spell].CastTime.." "..HEALBOT_WORDS_SEC..".",0.8,0.8,0.8,linenum)
|
||||||
|
HealBot_Action_Tooltip_SetLineRight("Mana: "..HealBot_Spells[spell].Mana,0.5,0.5,1,linenum)
|
||||||
|
if HealBot_Spells[spell].HealsMax>0 then
|
||||||
|
local Heals = HEALBOT_HEAL.." "
|
||||||
|
if HealBot_Spells[spell].Shield then
|
||||||
|
Heals = HEALBOT_TOOLTIP_SHIELD.." "
|
||||||
|
end
|
||||||
|
if HealBot_Spells[spell].HealsMin<HealBot_Spells[spell].HealsMax then
|
||||||
|
text=Heals..format("%d", HealBot_Spells[spell].HealsMin + HealBot_Spells[spell].RealHealing) .." "..HEALBOT_WORDS_TO.." "..format("%d",HealBot_Spells[spell].HealsMax + HealBot_Spells[spell].RealHealing)
|
||||||
|
else
|
||||||
|
text=Heals..format("%d", HealBot_Spells[spell].HealsMax + HealBot_Spells[spell].RealHealing)
|
||||||
|
end
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(text,1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if HealBot_Spells[spell].HealsExt>0 then
|
||||||
|
text=HEALBOT_HEAL.." "..HealBot_Spells[spell].HealsDur.." "..HEALBOT_WORDS_OVER.." "..HealBot_Spells[spell].Duration-HealBot_Spells[spell].CastTime.." sec."
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(text,1,1,1,linenum)
|
||||||
|
end
|
||||||
|
if not HealBot_Spells[spell].Shield then
|
||||||
|
text=HEALBOT_TOOLTIP_ITEMBONUS.." +"..HealBot_GetBonus().." | "..HEALBOT_TOOLTIP_ACTUALBONUS.." +"..HealBot_Spells[spell].RealHealing.." "
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(text,0.8,0.8,0.8,linenum)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return linenum
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_SpellSummary(spell)
|
||||||
|
local ret_val = " ";
|
||||||
|
if HealBot_Spells[spell] then
|
||||||
|
if HealBot_Spells[spell].HealsDur and HealBot_Spells[spell].HealsDur>0 then
|
||||||
|
if HealBot_Spells[spell].HealsMax and HealBot_Spells[spell].HealsMax>0 then
|
||||||
|
local Heals = " "..HEALBOT_HEAL.." ";
|
||||||
|
if HealBot_Spells[spell].Shield then
|
||||||
|
Heals = " "..HEALBOT_TOOLTIP_SHIELD.." ";
|
||||||
|
end
|
||||||
|
if (HealBot_Spells[spell].HealsMin or 0)<(HealBot_Spells[spell].HealsMax or 0) then
|
||||||
|
ret_val=ret_val..Heals..format("%d", (((HealBot_Spells[spell].HealsMin or 0)+(HealBot_Spells[spell].HealsMax or 0))/2) + (HealBot_Spells[spell].RealHealing or 0));
|
||||||
|
else
|
||||||
|
ret_val=ret_val..Heals..format("%d", (HealBot_Spells[spell].HealsMax or 0) + (HealBot_Spells[spell].RealHealing or 0));
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if HealBot_Spells[spell].HealsExt and HealBot_Spells[spell].HealsExt>0 then
|
||||||
|
ret_val=ret_val.." HoT "..HealBot_Spells[spell].HealsDur;
|
||||||
|
end
|
||||||
|
if HealBot_Spells[spell].Mana then
|
||||||
|
ret_val=ret_val.." "..HEALBOT_WORDS_FOR.." "..HealBot_Spells[spell].Mana.." Mana";
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if string.len(ret_val)<5 then ret_val = " - "..spell; end
|
||||||
|
return ret_val
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_CheckForInstant(unit,spell,upd,linenum,check)
|
||||||
|
if HealBot_Spells[spell] then
|
||||||
|
if HealBot_Spells[spell].CastTime == 0 then
|
||||||
|
if HealBot_UnitAffected(unit,HealBot_Spells[spell].Buff) then return check,linenum end;
|
||||||
|
if HealBot_UnitAffected(unit,HealBot_Spells[spell].Debuff) then return check,linenum end;
|
||||||
|
if upd=="upd" then
|
||||||
|
linenum=linenum+1
|
||||||
|
HealBot_Action_Tooltip_SetLineLeft(" "..spell,1,1,1,linenum)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return check,linenum;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return check,linenum
|
||||||
|
end
|
||||||
|
return check+1,linenum;
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_SetLineLeft(Text,R,G,B,linenum)
|
||||||
|
local txtL = getglobal("HealBot_TooltipTextL" .. linenum)
|
||||||
|
txtL:SetTextColor(R,G,B)
|
||||||
|
txtL:SetText(Text)
|
||||||
|
txtL:Show()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_SetLineRight(Text,R,G,B,linenum)
|
||||||
|
local txtR = getglobal("HealBot_TooltipTextR" .. linenum)
|
||||||
|
txtR:SetTextColor(R,G,B)
|
||||||
|
txtR:SetText(Text)
|
||||||
|
txtR:Show()
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_Tooltip_ClearLines()
|
||||||
|
for j=1,30 do
|
||||||
|
local txtL = getglobal("HealBot_TooltipTextL" .. j)
|
||||||
|
local txtR = getglobal("HealBot_TooltipTextR" .. j)
|
||||||
|
txtL:SetText(" ")
|
||||||
|
txtR:SetText(" ")
|
||||||
|
txtL:Hide()
|
||||||
|
txtR:Hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_ShowTooltip(this)
|
||||||
|
if HealBot_Config.ShowTooltip==0 then return end
|
||||||
|
if not this.unit then return end;
|
||||||
|
if not this:IsEnabled() then return end;
|
||||||
|
|
||||||
|
HealBot_Action_TooltipUnit = this.unit;
|
||||||
|
HealBot_Action_RefreshTooltip(this.unit);
|
||||||
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_HideTooltip(this)
|
||||||
|
if HealBot_Config.ShowTooltip==0 then return end
|
||||||
|
HealBot_Tooltip:Hide();
|
||||||
|
HealBot_Action_TooltipUnit = nil;
|
||||||
|
end
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
**HealBotBlue**
|
**HealBotBlue**
|
||||||
By Bluewhale.
|
By Bluewhale.
|
||||||
|
|
||||||
|
Original HealBot, while being a staple healing addon in Wrath and later expansions, was in its infancy during Vanilla WoW. It was a memory and CPU hog that ate up resources, featured a clunky UI, and offered limited functions. To fix all of the above while still using it as a base framework, I refactored the entire codebase. The monolithic code structure was split to follow a more modern approach (MVC design pattern), making it more stable and easily editable. Additionally, the inefficient AURA scanning was replaced with lightweight (Observer Pattern) reactive programming. It now updates only what is necessary when a trigger fires, rather than performing clumsy, continuous scans of a 40-man raid. By doing so, I managed to throttle down CPU and memory usage significantly, placing it on par with modern addons. Additional functionalities are being added over time to provide a holistic, healer-centered raid frame.
|
||||||
|
|
||||||
|
|
||||||
> **NOTE:** For HealBot to work correctly, the **Selfcast** feature in WoW options needs to be disabled.
|
> **NOTE:** For HealBot to work correctly, the **Selfcast** feature in WoW options needs to be disabled.
|
||||||
|
|
||||||
### Reporting Errors
|
### Reporting Errors
|
||||||
@@ -15,9 +18,44 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
* `/hb options` - Toggles the HealBot options 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 reset` - Resets the contents of the main HealBot panel
|
||||||
|
|
||||||
### Option Changes from the original HealBot Continues
|
### Key Features & Current Functionality
|
||||||
|
* **MVC & Observer Architecture:** High-performance, reactive engine that updates frames dynamically on state changes, drastically reducing CPU and memory overhead compared to traditional polling.
|
||||||
|
* **Native Hovercasting (Mouseover):** Cast configured spells on hovered unit frames using keybinds directly from your action bars, without losing your current target. (Toggleable in Options -> General).
|
||||||
|
* **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).
|
||||||
|
* **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.
|
||||||
|
* **Equipment Bonus Integration:** Automatically scans equipped gear (for classes capable of healing) to dynamically scale healing predictions.
|
||||||
|
* **Curse & Debuff Warning (CDC):** Dynamic visual and audio alerts for cleanable debuffs. Customizable colors based on debuff type (Curse, Poison, Disease, Magic).
|
||||||
|
* **Highly Customizable Skins:** Fully configure dimensions (width, height), row spacing, column layouts, custom textures, opacity, class-colored frames, and outline of fonts.
|
||||||
|
|
||||||
### Change Log
|
### Change Log
|
||||||
|
|
||||||
|
**1.3.2**
|
||||||
|
* **UIDropDownMenu Fixes:** Fixed client crash and button accumulation error on unopened dropdown menus in options.
|
||||||
|
|
||||||
|
**1.3.1**
|
||||||
|
* **Hotfix: missing helper function restored** Fixed issue with lua error for druids.
|
||||||
|
|
||||||
|
**v1.3**
|
||||||
|
* **General Options Layout & Renaming:** Relabeled "Healing panel options" to "Mana bar options:", moved the "For Healers Only" checkbox side-by-side with "Show Mana Bars", and renamed "Enable mouse over action bar" to "Hovercasting".
|
||||||
|
* **OnShow Empty Panel Bug Fix:** Solved the rendering issue where the options panel would load empty initially until another tab was clicked.
|
||||||
|
* **Backdrop Alpha Reset Bug Fix:** Resolved a WoW API client quirk where showing the HealBot frame would reset the background color and alpha channel back to default white/transparent by calling `SetBackdropColor` after `SetBackdrop`.
|
||||||
|
* **Default Party Frame Toggle:** Added a "Hide Default Party Frames" toggle option (fully localized in English, German, French, and Korean) to hide Blizzard's default party frames. Integrated immediate toggling on joining/leaving groups.
|
||||||
|
* **Safety Guards & Crash Prevention:** Added safety guards to `HidePartyFrame` and `ShowPartyFrame` calls to prevent nil-value crashes when solo.
|
||||||
|
* **Checkbox State Initialization Fixes:** Fixed options menu bugs where "Hide when Solo", "Show Mana Bars", and "For Healers Only" checkboxes failed to reflect their saved configuration value when opening the menu.
|
||||||
|
* **CurrentPanel Nil Comparison Fix:** Fixed a startup Lua comparison crash by initializing `HealBot_Options_CurrentPanel` at the top of the main options file.
|
||||||
|
* **Monolithic Code Modularization (Options):** Split the massive, single-file options system (`HealBot_Options.xml`/`HealBot_Options.lua`) into 7 dedicated, content-named panel subfiles (`General`, `Spells`, `Healing`, `CDC`, `Skins`, `Buffs`, and `Chat`) to improve codebase modularity and stability.
|
||||||
|
* **Core Code Decoupling (MVC & Observer Pattern):** Modularized `HealBot.lua` and `HealBot_Action.lua` by decoupling them into dedicated service files: `Range`, `Comms`, `Aura`, `Spells`, `Events` controllers, and `Layout`, `Tooltip` views.
|
||||||
|
* **Scope Resolution Fix:** Promoted `HealBot_Options_ComboButtons_Button` to global scope in the base options file to resolve a `nil` comparison error when loading spell settings.
|
||||||
|
* **Global Scoping & Variable Promotion:** Promoted `CalcEquipBonus`, `HealBot_EquipChangeTimer`, `HealValue`, `InitSpells`, and `Delay_RecalcParty` to global scope in `HealBot.lua` to ensure cross-module visibility.
|
||||||
|
* **CTRA Resurrection Cancel Bug Fix:** Fixed a nil table indexing crash in the CTRA `RESNO` message handler in `HealBot_Controller_Comms.lua`.
|
||||||
|
* **Core Options Layout Correction:** Relocated the "Defaults" and "Close" buttons back into the parent options frame's container, ensuring they display consistently at the bottom of all configuration tabs.
|
||||||
|
* **UI Layout & Skins Alignment:** Reorganized all 13 opacity sliders on the Skins panel into a clean, uniform 2-column grid with explicit width/height sizes (`123 x 17`) to resolve layout overlaps. Realigned Chat tab buttons to stay within window bounds and corrected Color Picker anchors.
|
||||||
|
* **Startup Refresh Optimization:** Resolved initial loading lag where action bars would be missing by forcing an immediate UI refresh (`HealBot_RecalcSpells()`) once spell data loads.
|
||||||
|
* **Menu Cleanup:** Fixed Options panel checkboxes overlapping due to incorrect vertical spacing offsets.
|
||||||
|
* **Target Restoration Fix:** Fixed spell interruptions and "You don't have a target" errors when healing by implementing a 0.1-second delayed target restoration using `TargetLastEnemy` and `TargetLastTarget`.
|
||||||
|
* **Buff Watch Initialization & Options Fix:** Fixed a bug where buff watch failed to display missing buffs on login/UI reload when the player had no active buffs. Enabled immediate buff/aura rescanning when modifying options in the Buff watch configuration tab.
|
||||||
|
|
||||||
**v1.2.2**
|
**v1.2.2**
|
||||||
* **White background fix** Fixed issue where white background would persist while alpha channel got changes.
|
* **White background fix** Fixed issue where white background would persist while alpha channel got changes.
|
||||||
* **Alpha slider** Fixed bug where alpha slider wouldn't apply changes instantly.
|
* **Alpha slider** Fixed bug where alpha slider wouldn't apply changes instantly.
|
||||||
@@ -39,11 +77,12 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
* **Bug Fix:** Fixed division-by-zero math errors during UI scaling that caused the addon to crash.
|
* **Bug Fix:** Fixed division-by-zero math errors during UI scaling that caused the addon to crash.
|
||||||
|
|
||||||
**v1.0**
|
**v1.0**
|
||||||
* **Buff tracking** - Added submenu for tracking buffs on element
|
* **Buff tracking:** Added a submenu for tracking buffs on elements.
|
||||||
* ***Hot tracking with icons** - Hots and DoTs display on player bars
|
* **HoT tracking with icons:** HoTs and DoTs display on player bars.
|
||||||
* **Incoming heals use newer protocol**
|
* **Incoming heals:** Now using a newer protocol.
|
||||||
* **Chat functionalities** - modified chat functionalities for spellcast announcements
|
* **Chat functionalities:** Modified chat functionalities for spellcast announcements.
|
||||||
* **Mana Bars** - Mana bars for healers in the grid added togglable from options menu.
|
* **Mana Bars:** Mana bars for healers in the grid added, toggleable from the options menu.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user