mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-09-11 09:50:21 +00:00
Compare commits
20 Commits
178d1184a3
..
v1.6.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 6a6a9e3283 | |||
| d021441b32 | |||
| 99997b711a | |||
| 496013ae9c | |||
| f7443fcdf0 | |||
| a0d435eb70 | |||
| 048970d1b7 | |||
| d5dec0f1f0 | |||
| ad302f299e | |||
| 327cd7a08c | |||
| 2f01ca3f1b | |||
| 45ce2a024f | |||
| 2ab7a93a6e | |||
| 7cf0956a84 | |||
| 6c4297c126 | |||
| 4f7a06ad6f | |||
| caa3a03bc3 | |||
| 5340eb253a | |||
| 5f015c89e5 | |||
| e20c5baf74 |
+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>
|
||||||
|
|||||||
+99
-83
@@ -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
|
|
||||||
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
|
||||||
end
|
|
||||||
|
|
||||||
if string.sub(units[j], 1, 7) == "raidpet" or string.sub(units[j], 1, 8) == "partypet" or units[j] == "pet" then
|
if ownerIndex then
|
||||||
name = UnitName(units[j]) or "Pet";
|
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
||||||
class = HEALBOT_OPTIONS_PETS;
|
else
|
||||||
subgroup = subgroup or 1;
|
name = UnitName(units[j]) or "not known";
|
||||||
end
|
class = UnitClass(units[j]) or "not known";
|
||||||
|
subgroup = 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,13 +779,48 @@ 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;
|
||||||
local OffsetX = bpadding;
|
local OffsetX = 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
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ Original HealBot, while being a staple healing addon in Wrath and later expansio
|
|||||||
|
|
||||||
> **Performance First:** The raidframe is not library reliant - unlike popular raidframe replacement addons it doesn't rely at all on external frameworks. While this makes my work a bit harder this allows complete control over garbage collection and CPU use which makes it multiple times more stable and lightweight.
|
> **Performance First:** The raidframe is not library reliant - unlike popular raidframe replacement addons it doesn't rely at all on external frameworks. While this makes my work a bit harder this allows complete control over garbage collection and CPU use which makes it multiple times more stable and lightweight.
|
||||||
|
|
||||||
|
### Development version
|
||||||
|
There is dev branch available, it might be slightly more unstabl but most of time it does have more features present. It's only merged into main when major feature set is implemented and stabilised.
|
||||||
|
|
||||||
### Reporting Errors
|
### Reporting Errors
|
||||||
Major errors will pop up a frame with error information. Take a screenshot and post comments.
|
Major errors will pop up a frame with error information. Take a screenshot and post comments.
|
||||||
|
|
||||||
@@ -46,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