mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-09-13 10:31:03 +00:00
Compare commits
14 Commits
6c4297c126
...
v1.6.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 6a6a9e3283 | |||
| d021441b32 | |||
| 99997b711a | |||
| 496013ae9c | |||
| f7443fcdf0 | |||
| a0d435eb70 | |||
| 048970d1b7 | |||
| d5dec0f1f0 | |||
| ad302f299e | |||
| 327cd7a08c | |||
| 2f01ca3f1b | |||
| 45ce2a024f | |||
| 2ab7a93a6e | |||
| 7cf0956a84 |
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
## Interface: 11200
|
## Interface: 11200
|
||||||
## Title: HealBotBlue
|
## Title: HealBotBlue
|
||||||
## Version: 1.6.2
|
## Version: 1.6.5
|
||||||
## Author: Bluewhale
|
## Author: Bluewhale
|
||||||
## Notes: Adds panel with skinable bars for healing and decursive
|
## Notes: Adds panel with skinable bars for healing and decursive
|
||||||
## SavedVariablesPerCharacter: HealBot_Config
|
## SavedVariablesPerCharacter: HealBot_Config
|
||||||
|
|||||||
@@ -123,6 +123,9 @@ end
|
|||||||
|
|
||||||
function HealBot_SplitString(str, delimiter)
|
function HealBot_SplitString(str, delimiter)
|
||||||
local result = {}
|
local result = {}
|
||||||
|
if not delimiter or delimiter == "" then
|
||||||
|
return {str}
|
||||||
|
end
|
||||||
local start_pos = 1
|
local start_pos = 1
|
||||||
while true do
|
while true do
|
||||||
local end_pos = string.find(str, delimiter, start_pos, true)
|
local end_pos = string.find(str, delimiter, start_pos, true)
|
||||||
|
|||||||
+54
-14
@@ -18,6 +18,20 @@
|
|||||||
<OnClick>HealBot_Action_HealUnit_OnClick(this,arg1);</OnClick>
|
<OnClick>HealBot_Action_HealUnit_OnClick(this,arg1);</OnClick>
|
||||||
</Scripts>
|
</Scripts>
|
||||||
<Frames>
|
<Frames>
|
||||||
|
<StatusBar name="$parentBar2" inherits="HealBot_StatusBar">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativePoint="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="0" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</StatusBar>
|
||||||
<StatusBar name="$parentBar" inherits="HealBot_StatusBar">
|
<StatusBar name="$parentBar" inherits="HealBot_StatusBar">
|
||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPLEFT" relativePoint="TOPLEFT">
|
<Anchor point="TOPLEFT" relativePoint="TOPLEFT">
|
||||||
@@ -73,23 +87,49 @@
|
|||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
</Texture>
|
</Texture>
|
||||||
|
<Texture name="$parentIcon6" hidden="true">
|
||||||
|
<Size><AbsDimension x="12" y="12"/></Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="$parentIcon5" relativePoint="RIGHT">
|
||||||
|
<Offset><AbsDimension x="1" y="0"/></Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Texture>
|
||||||
|
<Texture name="$parentIcon7" hidden="true">
|
||||||
|
<Size><AbsDimension x="12" y="12"/></Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="$parentIcon6" relativePoint="RIGHT">
|
||||||
|
<Offset><AbsDimension x="1" y="0"/></Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Texture>
|
||||||
|
<Texture name="$parentIcon8" hidden="true">
|
||||||
|
<Size><AbsDimension x="12" y="12"/></Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="$parentIcon7" relativePoint="RIGHT">
|
||||||
|
<Offset><AbsDimension x="1" y="0"/></Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Texture>
|
||||||
|
<Texture name="$parentIcon9" hidden="true">
|
||||||
|
<Size><AbsDimension x="12" y="12"/></Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="$parentIcon8" relativePoint="RIGHT">
|
||||||
|
<Offset><AbsDimension x="1" y="0"/></Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Texture>
|
||||||
|
<Texture name="$parentIcon10" hidden="true">
|
||||||
|
<Size><AbsDimension x="12" y="12"/></Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="$parentIcon9" relativePoint="RIGHT">
|
||||||
|
<Offset><AbsDimension x="1" y="0"/></Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</Texture>
|
||||||
</Layer>
|
</Layer>
|
||||||
</Layers>
|
</Layers>
|
||||||
</StatusBar>
|
</StatusBar>
|
||||||
<StatusBar name="$parentBar2" inherits="HealBot_StatusBar">
|
|
||||||
<Anchors>
|
|
||||||
<Anchor point="TOPLEFT" relativePoint="TOPLEFT">
|
|
||||||
<Offset>
|
|
||||||
<AbsDimension x="0" y="0"/>
|
|
||||||
</Offset>
|
|
||||||
</Anchor>
|
|
||||||
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT">
|
|
||||||
<Offset>
|
|
||||||
<AbsDimension x="0" y="0"/>
|
|
||||||
</Offset>
|
|
||||||
</Anchor>
|
|
||||||
</Anchors>
|
|
||||||
</StatusBar>
|
|
||||||
<StatusBar name="$parentBar3" inherits="HealBot_StatusBar" hidden="true">
|
<StatusBar name="$parentBar3" inherits="HealBot_StatusBar" hidden="true">
|
||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPLEFT" relativeTo="$parentBar" relativePoint="BOTTOMLEFT">
|
<Anchor point="TOPLEFT" relativeTo="$parentBar" relativePoint="BOTTOMLEFT">
|
||||||
|
|||||||
@@ -33,9 +33,32 @@ end
|
|||||||
|
|
||||||
function HealBot_CheckShamanWeaponBuff(spellName)
|
function HealBot_CheckShamanWeaponBuff(spellName)
|
||||||
local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo()
|
local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo()
|
||||||
if hasMainHandEnchant or hasOffHandEnchant then
|
if not (hasMainHandEnchant or hasOffHandEnchant) then return false end
|
||||||
return true
|
|
||||||
|
local firstWord = string.match(spellName, "^(%w+)")
|
||||||
|
if not firstWord then return false end
|
||||||
|
|
||||||
|
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||||
|
local slots = {}
|
||||||
|
if hasMainHandEnchant then table.insert(slots, 16) end
|
||||||
|
if hasOffHandEnchant then table.insert(slots, 17) end
|
||||||
|
|
||||||
|
for _, slot in ipairs(slots) do
|
||||||
|
HealBot_ScanTooltip:ClearLines()
|
||||||
|
HealBot_ScanTooltip:SetInventoryItem("player", slot)
|
||||||
|
for i = 1, HealBot_ScanTooltip:NumLines() do
|
||||||
|
local textObj = getglobal("HealBot_ScanTooltipTextLeft" .. i)
|
||||||
|
if textObj then
|
||||||
|
local text = textObj:GetText()
|
||||||
|
if text and string.find(text, firstWord) then
|
||||||
|
HealBot_ScanTooltip:Hide()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
HealBot_ScanTooltip:Hide()
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -104,7 +127,7 @@ function HealBot_CheckBuffs(unit)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not hasIt then
|
if not hasIt then
|
||||||
if myClass == "SHAMAN" and UnitIsUnit(unit, "player") and string.find(spellName, " Weapon") then
|
if myClass == HEALBOT_SHAMAN and UnitIsUnit(unit, "player") and string.find(spellName, " Weapon") then
|
||||||
hasIt = HealBot_CheckShamanWeaponBuff(spellName)
|
hasIt = HealBot_CheckShamanWeaponBuff(spellName)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -137,19 +160,20 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
|||||||
if not HealBot_UnitIcons[unit] then
|
if not HealBot_UnitIcons[unit] then
|
||||||
HealBot_UnitIcons[unit] = {}
|
HealBot_UnitIcons[unit] = {}
|
||||||
end
|
end
|
||||||
for j = 1, 5 do
|
for j = 1, 10 do
|
||||||
HealBot_UnitIcons[unit][j] = nil
|
HealBot_UnitIcons[unit][j] = nil
|
||||||
end
|
end
|
||||||
local iconCount = 0
|
local iconCount = 0
|
||||||
local i = 1;
|
local i = 1;
|
||||||
|
HealBot_UnitDebuff[unit] = nil;
|
||||||
while true do
|
while true do
|
||||||
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
|
local debuff, tmp, debuff_type = UnitDebuff(unit, i, 1)
|
||||||
if debuff then
|
if debuff then
|
||||||
if iconCount < 5 then
|
if iconCount < 10 then
|
||||||
iconCount = iconCount + 1
|
iconCount = iconCount + 1
|
||||||
HealBot_UnitIcons[unit][iconCount] = debuff
|
HealBot_UnitIcons[unit][iconCount] = debuff
|
||||||
end
|
end
|
||||||
if HealBot_CDCInc[UnitClass(unit)] == 1 and HealBot_DebuffWatch[debuff_type] then
|
if HealBot_CDCInc[UnitClass(unit)] == 1 and debuff_type and HealBot_DebuffWatch[debuff_type] then
|
||||||
HealBot_UnitDebuff[unit] = debuff_type
|
HealBot_UnitDebuff[unit] = debuff_type
|
||||||
DebuffType = debuff_type;
|
DebuffType = debuff_type;
|
||||||
if HealBot_DebuffPriority[debuff_type] then
|
if HealBot_DebuffPriority[debuff_type] then
|
||||||
@@ -158,7 +182,6 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
|||||||
end
|
end
|
||||||
i = i + 1;
|
i = i + 1;
|
||||||
else
|
else
|
||||||
if i == 1 then HealBot_UnitDebuff[unit] = nil; end
|
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -167,7 +190,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
|||||||
while true do
|
while true do
|
||||||
local buff = UnitBuff(unit, b)
|
local buff = UnitBuff(unit, b)
|
||||||
if not buff then break end
|
if not buff then break end
|
||||||
if HealBot_TrackedHoTs[buff] and iconCount < 5 then
|
if HealBot_TrackedHoTs[buff] and iconCount < 10 then
|
||||||
iconCount = iconCount + 1
|
iconCount = iconCount + 1
|
||||||
HealBot_UnitIcons[unit][iconCount] = buff
|
HealBot_UnitIcons[unit][iconCount] = buff
|
||||||
end
|
end
|
||||||
@@ -178,7 +201,7 @@ function HealBot_OnEvent_UnitAura(this, unit)
|
|||||||
while true do
|
while true do
|
||||||
local debuff = UnitDebuff(unit, d)
|
local debuff = UnitDebuff(unit, d)
|
||||||
if not debuff then break end
|
if not debuff then break end
|
||||||
if HealBot_TrackedHoTs[debuff] and iconCount < 5 then
|
if HealBot_TrackedHoTs[debuff] and iconCount < 10 then
|
||||||
iconCount = iconCount + 1
|
iconCount = iconCount + 1
|
||||||
HealBot_UnitIcons[unit][iconCount] = debuff
|
HealBot_UnitIcons[unit][iconCount] = debuff
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
-- Manages WoW Frame events and periodic updates, routing to respective services
|
-- Manages WoW Frame events and periodic updates, routing to respective services
|
||||||
|
|
||||||
HealBot_View_DirtyUnits = {}
|
HealBot_View_DirtyUnits = {}
|
||||||
|
HealBot_View_DirtyPower = {}
|
||||||
local HealBot_Timer1, HealsIn_Timer = 0, 0;
|
local HealBot_Timer1, HealsIn_Timer = 0, 0;
|
||||||
HealBot_LastModState = ""
|
HealBot_LastModState = ""
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ function HealBot_OnLoad(this)
|
|||||||
HealBot_View_DirtyUnits[unitID] = true
|
HealBot_View_DirtyUnits[unitID] = true
|
||||||
end)
|
end)
|
||||||
HealBot_Model:RegisterObserver("UNIT_POWER_CHANGED", function(unitID)
|
HealBot_Model:RegisterObserver("UNIT_POWER_CHANGED", function(unitID)
|
||||||
HealBot_View_DirtyUnits[unitID] = true
|
HealBot_View_DirtyPower[unitID] = true
|
||||||
end)
|
end)
|
||||||
HealBot_Model:RegisterObserver("UNIT_AURA_CHANGED", function(unitID)
|
HealBot_Model:RegisterObserver("UNIT_AURA_CHANGED", function(unitID)
|
||||||
HealBot_View_DirtyUnits[unitID] = true
|
HealBot_View_DirtyUnits[unitID] = true
|
||||||
@@ -78,9 +79,17 @@ function HealBot_OnUpdate(this, arg1)
|
|||||||
while unitID do
|
while unitID do
|
||||||
HealBot_Action_RefreshButtons(unitID)
|
HealBot_Action_RefreshButtons(unitID)
|
||||||
HealBot_View_DirtyUnits[unitID] = nil
|
HealBot_View_DirtyUnits[unitID] = nil
|
||||||
|
HealBot_View_DirtyPower[unitID] = nil -- Skip fast path if doing full refresh
|
||||||
unitID, _ = next(HealBot_View_DirtyUnits)
|
unitID, _ = next(HealBot_View_DirtyUnits)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local powerID, _ = next(HealBot_View_DirtyPower)
|
||||||
|
while powerID do
|
||||||
|
HealBot_Action_RefreshPower(powerID)
|
||||||
|
HealBot_View_DirtyPower[powerID] = nil
|
||||||
|
powerID, _ = next(HealBot_View_DirtyPower)
|
||||||
|
end
|
||||||
|
|
||||||
if HealBot_EquipChangeTimer > 0 then
|
if HealBot_EquipChangeTimer > 0 then
|
||||||
HealBot_EquipChangeTimer = HealBot_EquipChangeTimer - arg1
|
HealBot_EquipChangeTimer = HealBot_EquipChangeTimer - arg1
|
||||||
if HealBot_EquipChangeTimer <= 0 then
|
if HealBot_EquipChangeTimer <= 0 then
|
||||||
|
|||||||
+2
-13
@@ -246,6 +246,7 @@ HealBot_ConfigDefaults = {
|
|||||||
bpadding = {[HEALBOT_SKINS_STD] = 10, ["HealBot Party"] = 10, ["HealBot Raid"] = 10, ["Alteric Valley"] = 10, ["Modern Flat"] = 10},
|
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},
|
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},
|
||||||
|
biconsize = {[HEALBOT_SKINS_STD] = 12, ["HealBot Party"] = 12, ["HealBot Raid"] = 12, ["Alteric Valley"] = 12, ["Modern Flat"] = 12},
|
||||||
ShowTooltip = 1,
|
ShowTooltip = 1,
|
||||||
ShowManaBars = 0,
|
ShowManaBars = 0,
|
||||||
ManaBarsHealersOnly = 0,
|
ManaBarsHealersOnly = 0,
|
||||||
@@ -274,18 +275,6 @@ HEALBOT_ADDON_ID="HealBot_Heals"
|
|||||||
|
|
||||||
HealBot_AbortButton=1;
|
HealBot_AbortButton=1;
|
||||||
|
|
||||||
HealBot_Groups = {
|
|
||||||
["ITEMS"] = {
|
|
||||||
HEALBOT_BANDAGES,
|
|
||||||
HEALBOT_HEALING_POTIONS,
|
|
||||||
HEALBOT_HEALTHSTONES,
|
|
||||||
},
|
|
||||||
["PALADIN"] = {
|
|
||||||
HEALBOT_HOLY_LIGHT,
|
|
||||||
HEALBOT_FLASH_OF_LIGHT,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
HealBot_Spells = {
|
HealBot_Spells = {
|
||||||
-- Cast = secs until effect starts
|
-- Cast = secs until effect starts
|
||||||
-- Channel = secs until caster available
|
-- Channel = secs until caster available
|
||||||
@@ -584,7 +573,7 @@ HealBot_Action_TooltipUnit=nil;
|
|||||||
HealBot_Ressing = {};
|
HealBot_Ressing = {};
|
||||||
HealBot_IamRessing = false;
|
HealBot_IamRessing = false;
|
||||||
|
|
||||||
-- Table Recycling Pool (Puppeteer-inspired)
|
-- Table Recycling Pool
|
||||||
local tablePool = {}
|
local tablePool = {}
|
||||||
function HealBot_GetTable()
|
function HealBot_GetTable()
|
||||||
local t = table.remove(tablePool)
|
local t = table.remove(tablePool)
|
||||||
|
|||||||
@@ -320,13 +320,14 @@ HEALBOT_OPTIONS_SOUND2 = "Sound 2"
|
|||||||
HEALBOT_OPTIONS_SOUND3 = "Sound 3"
|
HEALBOT_OPTIONS_SOUND3 = "Sound 3"
|
||||||
|
|
||||||
HEALBOT_OPTIONS_HEAL_BUTTONS = "Healing bars";
|
HEALBOT_OPTIONS_HEAL_BUTTONS = "Healing bars";
|
||||||
HEALBOT_OPTIONS_EMERGFILTER = "Show extra bars for";
|
HEALBOT_OPTIONS_EMERGFILTER = "Show raid bars for";
|
||||||
|
|
||||||
HEALBOT_OPTIONS_GROUPHEALS = "Group";
|
HEALBOT_OPTIONS_GROUPHEALS = "Group";
|
||||||
HEALBOT_OPTIONS_GROUPHEALS_LABEL = "Group Only";
|
HEALBOT_OPTIONS_GROUPHEALS_LABEL = "Group Only";
|
||||||
HEALBOT_OPTIONS_TANKHEALS = "Main tanks";
|
HEALBOT_OPTIONS_TANKHEALS = "Main tanks";
|
||||||
HEALBOT_OPTIONS_TARGETHEALS = "Targets";
|
HEALBOT_OPTIONS_TARGETHEALS = "Targets";
|
||||||
HEALBOT_OPTIONS_EMERGENCYHEALS= "Raid / Extra";
|
HEALBOT_OPTIONS_EMERGENCYHEALS= "Raid";
|
||||||
|
HEALBOT_OPTIONS_PETHEALS = "Pets";
|
||||||
HEALBOT_OPTIONS_HEALLEVEL = "Healing Level";
|
HEALBOT_OPTIONS_HEALLEVEL = "Healing Level";
|
||||||
HEALBOT_OPTIONS_ALERTLEVEL = "Alert Level";
|
HEALBOT_OPTIONS_ALERTLEVEL = "Alert Level";
|
||||||
HEALBOT_OPTIONS_OVERHEAL = "Show Abort button when overhealing"
|
HEALBOT_OPTIONS_OVERHEAL = "Show Abort button when overhealing"
|
||||||
|
|||||||
+3
-11
@@ -7,18 +7,7 @@ HealBot_Options_CurrentPanel = 0;
|
|||||||
HealBot_ColourObjWaiting = nil
|
HealBot_ColourObjWaiting = nil
|
||||||
|
|
||||||
HealBot_Options_EmergencyFilter_List = {
|
HealBot_Options_EmergencyFilter_List = {
|
||||||
HEALBOT_OPTIONS_MONITORNO,
|
|
||||||
HEALBOT_OPTIONS_MONITORALL,
|
HEALBOT_OPTIONS_MONITORALL,
|
||||||
HEALBOT_DRUID,
|
|
||||||
HEALBOT_HUNTER,
|
|
||||||
HEALBOT_MAGE,
|
|
||||||
HEALBOT_PALADIN,
|
|
||||||
HEALBOT_PRIEST,
|
|
||||||
HEALBOT_ROGUE,
|
|
||||||
HEALBOT_SHAMAN,
|
|
||||||
HEALBOT_WARLOCK,
|
|
||||||
HEALBOT_WARRIOR,
|
|
||||||
HEALBOT_OPTIONS_PETS,
|
|
||||||
HEALBOT_OPTIONS_MONITORMELEE,
|
HEALBOT_OPTIONS_MONITORMELEE,
|
||||||
HEALBOT_OPTIONS_MONITORRANGE,
|
HEALBOT_OPTIONS_MONITORRANGE,
|
||||||
HEALBOT_OPTIONS_MONITORHEALERS,
|
HEALBOT_OPTIONS_MONITORHEALERS,
|
||||||
@@ -312,6 +301,9 @@ function HealBot_Options_SetSkins()
|
|||||||
HealBot_Options_BarAlphaInHeal:SetValue(HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin]);
|
HealBot_Options_BarAlphaInHeal:SetValue(HealBot_Config.BarcolaInHeal[HealBot_Config.Current_Skin]);
|
||||||
HealBot_Options_BarTextureS:SetValue(HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
HealBot_Options_BarTextureS:SetValue(HealBot_Config.btexture[HealBot_Config.Current_Skin])
|
||||||
HealBot_Options_BarHeightS:SetValue(HealBot_Config.bheight[HealBot_Config.Current_Skin])
|
HealBot_Options_BarHeightS:SetValue(HealBot_Config.bheight[HealBot_Config.Current_Skin])
|
||||||
|
HealBot_Options_AbortBarSize:SetValue(HealBot_Config.abortsize[HealBot_Config.Current_Skin])
|
||||||
|
HealBot_Options_FontHeight:SetValue(HealBot_Config.btextheight[HealBot_Config.Current_Skin])
|
||||||
|
HealBot_Options_IconSizeS:SetValue(HealBot_Config.biconsize[HealBot_Config.Current_Skin] or 12)
|
||||||
HealBot_Options_BarWidthS:SetValue(HealBot_Config.bwidth[HealBot_Config.Current_Skin])
|
HealBot_Options_BarWidthS:SetValue(HealBot_Config.bwidth[HealBot_Config.Current_Skin])
|
||||||
HealBot_Options_BarNumColsS:SetValue(HealBot_Config.numcols[HealBot_Config.Current_Skin])
|
HealBot_Options_BarNumColsS:SetValue(HealBot_Config.numcols[HealBot_Config.Current_Skin])
|
||||||
HealBot_Options_BarMaxRowsS:SetValue((HealBot_Config.bmaxrows and HealBot_Config.bmaxrows[HealBot_Config.Current_Skin]) or 0)
|
HealBot_Options_BarMaxRowsS:SetValue((HealBot_Config.bmaxrows and HealBot_Config.bmaxrows[HealBot_Config.Current_Skin]) or 0)
|
||||||
|
|||||||
@@ -44,6 +44,11 @@ function HealBot_Options_FontHeight_OnValueChanged(this)
|
|||||||
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
HealBot_Action_ResetSkin()
|
HealBot_Action_ResetSkin()
|
||||||
end
|
end
|
||||||
|
function HealBot_Options_IconSizeS_OnValueChanged(this)
|
||||||
|
HealBot_Config.biconsize[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
HealBot_Action_ResetSkin()
|
||||||
|
end
|
||||||
function HealBot_Options_AbortBarSize_OnValueChanged(this)
|
function HealBot_Options_AbortBarSize_OnValueChanged(this)
|
||||||
HealBot_Config.abortsize[HealBot_Config.Current_Skin] = this:GetValue();
|
HealBot_Config.abortsize[HealBot_Config.Current_Skin] = this:GetValue();
|
||||||
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
getglobal(this:GetName().."Text"):SetText(this.text .. ": " .. this:GetValue());
|
||||||
|
|||||||
+13
-25
@@ -33,6 +33,14 @@ function HealBot_Options_EmergencyHeals_OnClick(this)
|
|||||||
HealBot_Config.EmergencyHeals = this:GetChecked() or 0;
|
HealBot_Config.EmergencyHeals = this:GetChecked() or 0;
|
||||||
HealBot_RecalcParty();
|
HealBot_RecalcParty();
|
||||||
end
|
end
|
||||||
|
function HealBot_Options_PetHeals_OnLoad(this,text)
|
||||||
|
this.text = text
|
||||||
|
getglobal(this:GetName().."Text"):SetText(text);
|
||||||
|
end
|
||||||
|
function HealBot_Options_PetHeals_OnClick(this)
|
||||||
|
HealBot_Config.PetHeals = this:GetChecked() or 0;
|
||||||
|
HealBot_RecalcParty();
|
||||||
|
end
|
||||||
function HealBot_Options_OverHeal_OnValueChanged(this)
|
function HealBot_Options_OverHeal_OnValueChanged(this)
|
||||||
HealBot_Config.OverHeal = HealBot_Options_Pct_OnValueChanged(this);
|
HealBot_Config.OverHeal = HealBot_Options_Pct_OnValueChanged(this);
|
||||||
end
|
end
|
||||||
@@ -279,7 +287,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
|||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 0;
|
HealBot_EmergInc[HEALBOT_SHAMAN] = 0;
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 0;
|
HealBot_EmergInc[HEALBOT_WARLOCK] = 0;
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 0;
|
HealBot_EmergInc[HEALBOT_WARRIOR] = 0;
|
||||||
if HealBot_Config.EmergIncMonitor==2 then
|
if HealBot_Config.EmergIncMonitor==1 then
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
||||||
@@ -289,27 +297,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
|||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
||||||
elseif HealBot_Config.EmergIncMonitor==3 then
|
elseif HealBot_Config.EmergIncMonitor==2 then
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==4 then
|
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==5 then
|
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==6 then
|
|
||||||
HealBot_EmergInc[HEALBOT_PALADIN] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==7 then
|
|
||||||
HealBot_EmergInc[HEALBOT_PRIEST] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==8 then
|
|
||||||
HealBot_EmergInc[HEALBOT_ROGUE] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==9 then
|
|
||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==10 then
|
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==11 then
|
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==12 then
|
|
||||||
-- Pets: no player classes enabled (handled separately in layout)
|
|
||||||
elseif HealBot_Config.EmergIncMonitor==13 then
|
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncMelee[HEALBOT_DRUID];
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncMelee[HEALBOT_DRUID];
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncMelee[HEALBOT_HUNTER];
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncMelee[HEALBOT_HUNTER];
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncMelee[HEALBOT_MAGE];
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncMelee[HEALBOT_MAGE];
|
||||||
@@ -319,7 +307,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
|||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN];
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN];
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK];
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK];
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR];
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR];
|
||||||
elseif HealBot_Config.EmergIncMonitor==14 then
|
elseif HealBot_Config.EmergIncMonitor==3 then
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncRange[HEALBOT_DRUID];
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncRange[HEALBOT_DRUID];
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncRange[HEALBOT_HUNTER];
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncRange[HEALBOT_HUNTER];
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncRange[HEALBOT_MAGE];
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncRange[HEALBOT_MAGE];
|
||||||
@@ -329,7 +317,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
|||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncRange[HEALBOT_SHAMAN];
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncRange[HEALBOT_SHAMAN];
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncRange[HEALBOT_WARLOCK];
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncRange[HEALBOT_WARLOCK];
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncRange[HEALBOT_WARRIOR];
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncRange[HEALBOT_WARRIOR];
|
||||||
elseif HealBot_Config.EmergIncMonitor==15 then
|
elseif HealBot_Config.EmergIncMonitor==4 then
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncHealers[HEALBOT_DRUID];
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncHealers[HEALBOT_DRUID];
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncHealers[HEALBOT_HUNTER];
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncHealers[HEALBOT_HUNTER];
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncHealers[HEALBOT_MAGE];
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncHealers[HEALBOT_MAGE];
|
||||||
@@ -339,7 +327,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
|||||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN];
|
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN];
|
||||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK];
|
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK];
|
||||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR];
|
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR];
|
||||||
elseif HealBot_Config.EmergIncMonitor==16 then
|
elseif HealBot_Config.EmergIncMonitor==5 then
|
||||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncCustom[HEALBOT_DRUID];
|
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncCustom[HEALBOT_DRUID];
|
||||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncCustom[HEALBOT_HUNTER];
|
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncCustom[HEALBOT_HUNTER];
|
||||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncCustom[HEALBOT_MAGE];
|
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncCustom[HEALBOT_MAGE];
|
||||||
|
|||||||
@@ -95,6 +95,19 @@
|
|||||||
<OnClick>HealBot_Options_EmergencyHeals_OnClick(this)</OnClick>
|
<OnClick>HealBot_Options_EmergencyHeals_OnClick(this)</OnClick>
|
||||||
</Scripts>
|
</Scripts>
|
||||||
</CheckButton>
|
</CheckButton>
|
||||||
|
<CheckButton name="HealBot_Options_PetHeals" inherits="OptionsCheckButtonTemplate">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="244" y="5" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_PetHeals_OnLoad(this,HEALBOT_OPTIONS_PETHEALS)</OnLoad>
|
||||||
|
<OnClick>HealBot_Options_PetHeals_OnClick(this)</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</CheckButton>
|
||||||
|
|
||||||
</Frames>
|
</Frames>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|||||||
@@ -360,6 +360,22 @@
|
|||||||
<OnValueChanged>HealBot_Options_FontHeight_OnValueChanged(this)</OnValueChanged>
|
<OnValueChanged>HealBot_Options_FontHeight_OnValueChanged(this)</OnValueChanged>
|
||||||
</Scripts>
|
</Scripts>
|
||||||
</Slider>
|
</Slider>
|
||||||
|
<Slider name="HealBot_Options_IconSizeS" inherits="HealBot_Options_SliderTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="123" y="17" />
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="TOPRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>HealBot_Options_val_OnLoad(this,"Icon size",5,30)</OnLoad>
|
||||||
|
<OnValueChanged>HealBot_Options_IconSizeS_OnValueChanged(this)</OnValueChanged>
|
||||||
|
</Scripts>
|
||||||
|
</Slider>
|
||||||
|
|
||||||
<Slider name="HealBot_Options_BorderThicknessS" inherits="HealBot_Options_SliderTemplate">
|
<Slider name="HealBot_Options_BorderThicknessS" inherits="HealBot_Options_SliderTemplate">
|
||||||
<Size>
|
<Size>
|
||||||
|
|||||||
+101
-85
@@ -27,24 +27,19 @@ end
|
|||||||
|
|
||||||
function HealBot_HealthColor(unit, hlth, maxhlth)
|
function HealBot_HealthColor(unit, hlth, maxhlth)
|
||||||
if HealBot_UnitDebuff[unit] then
|
if HealBot_UnitDebuff[unit] then
|
||||||
local debuff, tmp, debuff_type = UnitDebuff(unit, 1, 1)
|
local debuff_type = HealBot_UnitDebuff[unit]
|
||||||
if not debuff then
|
local dr = HealBot_Config.CDCBarColour[debuff_type].R
|
||||||
HealBot_UnitDebuff[unit] = nil;
|
local dg = HealBot_Config.CDCBarColour[debuff_type].G
|
||||||
HealBot_UnitDebuff[unit .. "_debuff_texture"] = nil
|
local db = HealBot_Config.CDCBarColour[debuff_type].B
|
||||||
else
|
if HealBot_Config.btexture[HealBot_Config.Current_Skin] == 10 then
|
||||||
local dr = HealBot_Config.CDCBarColour[debuff_type].R
|
dr = dr * 4
|
||||||
local dg = HealBot_Config.CDCBarColour[debuff_type].G
|
dg = dg * 4
|
||||||
local db = HealBot_Config.CDCBarColour[debuff_type].B
|
db = db * 4
|
||||||
if HealBot_Config.btexture[HealBot_Config.Current_Skin] == 10 then
|
if dr > 1 then dr = 1 end
|
||||||
dr = dr * 4
|
if dg > 1 then dg = 1 end
|
||||||
dg = dg * 4
|
if db > 1 then db = 1 end
|
||||||
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
|
||||||
|
return dr, dg, db, HealBot_Config.Barcola[HealBot_Config.Current_Skin];
|
||||||
end
|
end
|
||||||
|
|
||||||
local text = UnitName(unit);
|
local text = UnitName(unit);
|
||||||
@@ -251,11 +246,14 @@ function HealBot_Action_EnableButton(button)
|
|||||||
bar.txt:SetFont(fontName, fontHeight, "")
|
bar.txt:SetFont(fontName, fontHeight, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, 5 do
|
local iconSize = HealBot_Config.biconsize[HealBot_Config.Current_Skin] or 12
|
||||||
|
for i = 1, 10 do
|
||||||
local icon = getglobal(button:GetName() .. "BarIcon" .. i)
|
local icon = getglobal(button:GetName() .. "BarIcon" .. i)
|
||||||
if icon then
|
if icon then
|
||||||
if HealBot_UnitIcons and HealBot_UnitIcons[unit] and HealBot_UnitIcons[unit][i] then
|
if HealBot_UnitIcons and HealBot_UnitIcons[unit] and HealBot_UnitIcons[unit][i] then
|
||||||
icon:SetTexture(HealBot_UnitIcons[unit][i])
|
icon:SetTexture(HealBot_UnitIcons[unit][i])
|
||||||
|
icon:SetWidth(iconSize)
|
||||||
|
icon:SetHeight(iconSize)
|
||||||
icon:Show()
|
icon:Show()
|
||||||
else
|
else
|
||||||
icon:Hide()
|
icon:Hide()
|
||||||
@@ -305,6 +303,21 @@ function HealBot_Action_RefreshButtons(unit)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function HealBot_Action_RefreshPower(unit)
|
||||||
|
if not unit or not HealBot_Action_UnitButtons[unit] then return end
|
||||||
|
local state = HealBot_Model.units[unit]
|
||||||
|
if not state then return end
|
||||||
|
|
||||||
|
for index, button in pairs(HealBot_Action_UnitButtons[unit]) do
|
||||||
|
if not button.bar3 then button.bar3 = getglobal(button:GetName() .. "Bar3") end
|
||||||
|
local bar3 = button.bar3
|
||||||
|
if bar3 and bar3:IsVisible() then
|
||||||
|
bar3:SetMinMaxValues(0, state.maxMana)
|
||||||
|
bar3:SetValue(state.mana)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
function HealBot_Action_PositionButton(button, OsetX, OsetY, bwidth, bheight, checked, header)
|
function HealBot_Action_PositionButton(button, OsetX, OsetY, bwidth, bheight, checked, header)
|
||||||
local brspace = HealBot_Config.brspace[HealBot_Config.Current_Skin] or 3;
|
local brspace = HealBot_Config.brspace[HealBot_Config.Current_Skin] or 3;
|
||||||
if header then
|
if header then
|
||||||
@@ -602,7 +615,7 @@ function HealBot_Action_PartyChanged()
|
|||||||
numBars = numBars + 1;
|
numBars = numBars + 1;
|
||||||
numHeaders = numHeaders + 1;
|
numHeaders = numHeaders + 1;
|
||||||
end
|
end
|
||||||
if HealBot_Config.EmergIncMonitor == 2 then
|
if HealBot_Config.EmergIncMonitor == 1 then
|
||||||
if GetNumRaidMembers() > 0 then
|
if GetNumRaidMembers() > 0 then
|
||||||
for j = 1, 40 do
|
for j = 1, 40 do
|
||||||
local PossibleEmerg = 1;
|
local PossibleEmerg = 1;
|
||||||
@@ -653,50 +666,7 @@ function HealBot_Action_PartyChanged()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif HealBot_Config.EmergIncMonitor == 12 then
|
|
||||||
if GetNumRaidMembers() > 0 then
|
|
||||||
for j = 1, 40 do
|
|
||||||
local unit = "raidpet" .. j;
|
|
||||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
|
||||||
local ownerIndex = j;
|
|
||||||
local name = UnitName(unit) or "Pet";
|
|
||||||
local _, _, subgroup = GetRaidRosterInfo(ownerIndex);
|
|
||||||
subgroup = subgroup or 1;
|
|
||||||
|
|
||||||
if HealBot_Config.ExtraOrder == 1 then
|
|
||||||
order[unit] = name;
|
|
||||||
elseif HealBot_Config.ExtraOrder == 2 then
|
|
||||||
order[unit] = HEALBOT_OPTIONS_PETS;
|
|
||||||
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
|
|
||||||
else
|
|
||||||
local petUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
|
||||||
for _, unit in ipairs(petUnits) do
|
|
||||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
|
||||||
local name = UnitName(unit) or "Pet";
|
|
||||||
if HealBot_Config.ExtraOrder == 1 then
|
|
||||||
order[unit] = name;
|
|
||||||
elseif HealBot_Config.ExtraOrder == 2 then
|
|
||||||
order[unit] = HEALBOT_OPTIONS_PETS;
|
|
||||||
elseif HealBot_Config.ExtraOrder == 3 then
|
|
||||||
order[unit] = 1;
|
|
||||||
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
|
else
|
||||||
if GetNumRaidMembers() > 0 then
|
if GetNumRaidMembers() > 0 then
|
||||||
for j = 1, 40 do
|
for j = 1, 40 do
|
||||||
@@ -763,25 +733,29 @@ function HealBot_Action_PartyChanged()
|
|||||||
local TempSort = "init"
|
local TempSort = "init"
|
||||||
TempMaxH = math.ceil(TempMaxH / 1000) * 1000;
|
TempMaxH = math.ceil(TempMaxH / 1000) * 1000;
|
||||||
|
|
||||||
if GetNumRaidMembers() > 0 or HealBot_Config.EmergIncMonitor == 12 then
|
for j = 1, 40 do
|
||||||
for j = 1, 40 do
|
if not units[j] then break end
|
||||||
if not units[j] then break end
|
local name, rank, subgroup, level, class, fileName, zone, online, isDead;
|
||||||
local name, rank, subgroup, level, class, fileName, zone, online, isDead;
|
local ownerIndex = nil;
|
||||||
local ownerIndex = nil;
|
if string.sub(units[j], 1, 7) == "raidpet" then
|
||||||
if string.sub(units[j], 1, 7) == "raidpet" then
|
ownerIndex = tonumber(string.sub(units[j], 8));
|
||||||
ownerIndex = tonumber(string.sub(units[j], 8));
|
elseif string.sub(units[j], 1, 4) == "raid" then
|
||||||
elseif string.sub(units[j], 1, 4) == "raid" then
|
ownerIndex = tonumber(string.sub(units[j], 5));
|
||||||
ownerIndex = tonumber(string.sub(units[j], 5));
|
end
|
||||||
end
|
|
||||||
if ownerIndex then
|
if ownerIndex then
|
||||||
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
||||||
end
|
else
|
||||||
|
name = UnitName(units[j]) or "not known";
|
||||||
if string.sub(units[j], 1, 7) == "raidpet" or string.sub(units[j], 1, 8) == "partypet" or units[j] == "pet" then
|
class = UnitClass(units[j]) or "not known";
|
||||||
name = UnitName(units[j]) or "Pet";
|
subgroup = 1;
|
||||||
class = HEALBOT_OPTIONS_PETS;
|
end
|
||||||
subgroup = subgroup or 1;
|
|
||||||
end
|
if string.sub(units[j], 1, 7) == "raidpet" or string.sub(units[j], 1, 8) == "partypet" or units[j] == "pet" then
|
||||||
|
name = UnitName(units[j]) or "Pet";
|
||||||
|
class = HEALBOT_OPTIONS_PETS;
|
||||||
|
subgroup = subgroup or 1;
|
||||||
|
end
|
||||||
|
|
||||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 2 and TempSort ~= class then
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 2 and TempSort ~= class then
|
||||||
TempSort = class
|
TempSort = class
|
||||||
@@ -805,12 +779,47 @@ function HealBot_Action_PartyChanged()
|
|||||||
HealBot_Action_SetHealButton(i, units[j]);
|
HealBot_Action_SetHealButton(i, units[j]);
|
||||||
if i == last then break end
|
if i == last then break end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
if numBars == ExtraValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
if numBars == ExtraValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
HeaderPos[i + 1] = nil;
|
HeaderPos[i + 1] = nil;
|
||||||
numBars = numBars - 1;
|
numBars = numBars - 1;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
last = last + 40
|
||||||
|
local PetsValid = numBars;
|
||||||
|
if HealBot_Config.PetHeals == 1 then
|
||||||
|
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
HeaderPos[i + 1] = HEALBOT_OPTIONS_PETHEALS
|
||||||
|
numBars = numBars + 1;
|
||||||
|
numHeaders = numHeaders + 1;
|
||||||
|
end
|
||||||
|
if GetNumRaidMembers() > 0 then
|
||||||
|
for j = 1, 40 do
|
||||||
|
local unit = "raidpet" .. j;
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
i = i + 1;
|
||||||
|
HealBot_Action_SetHealButton(i, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
if i == last then break end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local petUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
||||||
|
for _, unit in ipairs(petUnits) do
|
||||||
|
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||||
|
i = i + 1;
|
||||||
|
HealBot_Action_SetHealButton(i, unit);
|
||||||
|
numBars = numBars + 1;
|
||||||
|
end
|
||||||
|
if i == last then break end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if numBars == PetsValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||||
|
HeaderPos[PetsValid + 1] = nil;
|
||||||
|
numBars = numBars - 1;
|
||||||
|
numHeaders = numHeaders - 1;
|
||||||
|
end
|
||||||
|
|
||||||
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||||
local OffsetY = bpadding;
|
local OffsetY = bpadding;
|
||||||
@@ -1096,7 +1105,11 @@ function HealBot_Action_AppendNewUnits()
|
|||||||
if CT_RA_MainTanks[j] then
|
if CT_RA_MainTanks[j] then
|
||||||
for k = 1, GetNumRaidMembers() do
|
for k = 1, GetNumRaidMembers() do
|
||||||
local unit = "raid" .. k
|
local unit = "raid" .. k
|
||||||
if UnitName(unit) == CT_RA_MainTanks[j] then
|
local skip = false
|
||||||
|
if UnitInParty(unit) and HealBot_Config.GroupHeals == 1 and not UnitIsUnit(unit, "player") then
|
||||||
|
skip = true
|
||||||
|
end
|
||||||
|
if not skip and UnitName(unit) == CT_RA_MainTanks[j] then
|
||||||
table.insert(unitsToCheck, unit)
|
table.insert(unitsToCheck, unit)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1114,7 +1127,10 @@ function HealBot_Action_AppendNewUnits()
|
|||||||
if HealBot_Config.EmergencyHeals == 1 then
|
if HealBot_Config.EmergencyHeals == 1 then
|
||||||
if GetNumRaidMembers() > 0 then
|
if GetNumRaidMembers() > 0 then
|
||||||
for j = 1, 40 do
|
for j = 1, 40 do
|
||||||
table.insert(unitsToCheck, "raid" .. j)
|
local unit = "raid" .. j
|
||||||
|
if not (UnitInParty(unit) and HealBot_Config.GroupHeals == 1) then
|
||||||
|
table.insert(unitsToCheck, unit)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
for j = 1, 4 do
|
for j = 1, 4 do
|
||||||
|
|||||||
@@ -49,6 +49,24 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
|
|
||||||
### Change Log
|
### Change Log
|
||||||
|
|
||||||
|
**v1.6.5**
|
||||||
|
* **Performance Update - Mana Tracking** - Added a fast-path redraw pipeline for unit power changes. This massive optimization prevents full frame redraws when players naturally regenerate or consume mana, resolving severe FPS drops in 40-man raids while tracking mana.
|
||||||
|
|
||||||
|
**v1.6.4**
|
||||||
|
* **Bug Fix - UI Opacity** - Fixed a rendering layering bug where incoming heals drew on top of actual health, causing the semi-transparent incoming heal bar to wash out the solid health bar.
|
||||||
|
* **Bug Fix - CDC Colors** - Fixed health bar debuff coloring (CDC) by stopping `HealBot_HealthColor` from incorrectly querying debuffs directly, relying instead on cached debuff types.
|
||||||
|
|
||||||
|
|
||||||
|
**v1.6.3**
|
||||||
|
* **Hotfix string splitter** - added falback for string splitter if the the string is empty or nil.
|
||||||
|
* **UI Update - Icon Limit** - Increased maximum tracked buffs/debuffs per unit from 5 to 10.
|
||||||
|
* **UI Update - Customizable icon size** - Added an option to change size of HoT icons (default to 12px).
|
||||||
|
* **Cleanup** - Removed dead code `HealBot_Groups` table.
|
||||||
|
|
||||||
|
**v1.6.2**
|
||||||
|
* **Hotfix - raid and party frames** - if getNumRaidMembers() > 0 wrapper around extra bars stopped from displaying all frames blocked from displaying Extras\Raid.
|
||||||
|
* **UI Update - Raid & Pets Split** - Split the "Raid / Extra" toggle into separate "Raid" and "Pets" toggles. Simplified the raid bars filter dropdown to core options (All, Melee, Ranged, Heals, Custom).
|
||||||
|
|
||||||
**v1.6.1**
|
**v1.6.1**
|
||||||
* **Hotfix - pet frames** - With class colours toggled extra frames for player pets were given some classy mint colour.
|
* **Hotfix - pet frames** - With class colours toggled extra frames for player pets were given some classy mint colour.
|
||||||
* **Hotfi - raidframes in combat** - Modfied how frames behave when player leaves during combat.
|
* **Hotfi - raidframes in combat** - Modfied how frames behave when player leaves during combat.
|
||||||
|
|||||||
-40
@@ -1,40 +0,0 @@
|
|||||||
Druid:
|
|
||||||
Name - Rank - Effect
|
|
||||||
Genesis - 1 - increase damage and healing of periodic spells by 5%
|
|
||||||
Genesis - 2 - increase damage and healing of periodic spells by 10%
|
|
||||||
Genesis - 3 -increase damage and healing of periodic spells by 15%
|
|
||||||
|
|
||||||
Gift of Nature - 1- Increases effectivenes of all healing spells by 2%
|
|
||||||
Gift of Nature - 2- Increases effectivenes of all healing spells by 4%
|
|
||||||
Gift of Nature - 3- Increases effectivenes of all healing spells by 6%
|
|
||||||
Gift of Nature - 4- Increases effectivenes of all healing spells by 8%
|
|
||||||
Gift of Nature - 5- Increases effectivenes of all healing spells by 10%
|
|
||||||
|
|
||||||
Preservation - 1 - Increases the periodic healing of Regrowth by 10% if target is affected by Rejuvenation
|
|
||||||
Preservation - 2 - Increases the periodic healing of Regrowth by 20% if target is affected by Rejuvenation
|
|
||||||
Preservation - 3 - Increases the periodic healing of Regrowth by 30% if target is affected by Rejuvenation
|
|
||||||
|
|
||||||
Paladin:
|
|
||||||
|
|
||||||
Healing Light - 1 - Increases the amount of healed by Holy Light, Flash of Light and Holy Shock by 4%
|
|
||||||
Healing Light - 2 - Increases the amount of healed by Holy Light, Flash of Light and Holy Shock by 8%
|
|
||||||
Healing Light - 3 - Increases the amount of healed by Holy Light, Flash of Light and Holy Shock by 12%
|
|
||||||
|
|
||||||
Ironclad - 1 - Improves healing done by 1% of current armour from items
|
|
||||||
Ironclad - 2 - Improves healing done by 2% of current armour from items
|
|
||||||
|
|
||||||
Priest:
|
|
||||||
|
|
||||||
Improved Renew - 1 - Improves amount healed by renew by 5%
|
|
||||||
Improved Renew - 2 - Improves amount healed by renew by 10%
|
|
||||||
Improved Renew - 3 - Improves amount healed by renew by 15%
|
|
||||||
|
|
||||||
Spiritual Healing - 1 - Improves amount healed by all healing spells by 6%
|
|
||||||
Spiritual Healing - 2 - Improves amount healed by all healing spells by 12%
|
|
||||||
Spiritual Healing - 3 - Improves amount healed by all healing spells by 18%
|
|
||||||
Spiritual Healing - 4 - Improves amount healed by all healing spells by 24%
|
|
||||||
Spiritual Healing - 5 - Improves amount healed by all healing spells by 30%
|
|
||||||
|
|
||||||
Shaman:
|
|
||||||
|
|
||||||
none
|
|
||||||
Reference in New Issue
Block a user