mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-11-08 19:19:05 +00:00
feat: add debuff visual indicators, overlays, and improve range checking logic
This commit is contained in:
+22
-19
@@ -66,7 +66,7 @@ function HealBot_CanHeal(unit)
|
|||||||
if string.find(unit, "^Test") then return true end
|
if string.find(unit, "^Test") then return true end
|
||||||
local class = HealBot_UnitClass("player")
|
local class = HealBot_UnitClass("player")
|
||||||
if class ~= "PRIEST" and class ~= "DRUID" and class ~= "PALADIN" and class ~= "SHAMAN" then
|
if class ~= "PRIEST" and class ~= "DRUID" and class ~= "PALADIN" and class ~= "SHAMAN" then
|
||||||
if UnitExists(unit) and not UnitIsDeadOrGhost(unit) then
|
if UnitExists(unit) and not UnitIsDeadOrGhost(unit) and HealBot_Range_Check(unit, 40) == 1 then
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
@@ -82,12 +82,17 @@ function HealBot_CanHeal(unit)
|
|||||||
|
|
||||||
local SHeal = HealBot_ShouldHeal(unit)
|
local SHeal = HealBot_ShouldHeal(unit)
|
||||||
if SHeal then
|
if SHeal then
|
||||||
local spell = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Left"))
|
local spell = HealBot_GetHealSpell(unit, HealBot_Action_SpellPattern("Left", true))
|
||||||
if not spell then spell = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Middle")) end
|
if not spell then spell = HealBot_GetHealSpell(unit, HealBot_Action_SpellPattern("Middle", true)) end
|
||||||
if not spell then spell = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Right")) end
|
if not spell then spell = HealBot_GetHealSpell(unit, HealBot_Action_SpellPattern("Right", true)) end
|
||||||
if not spell then spell = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Button4")) end
|
if not spell then spell = HealBot_GetHealSpell(unit, HealBot_Action_SpellPattern("Button4", true)) end
|
||||||
if not spell then spell = HealBot_GetHealSpell(unit,HealBot_Action_SpellPattern("Button5")) end
|
if not spell then spell = HealBot_GetHealSpell(unit, HealBot_Action_SpellPattern("Button5", true)) end
|
||||||
if not spell then
|
if not spell then
|
||||||
|
-- Fallback: if player has no base click spells bound but has modifier combos, check pure 40yd range
|
||||||
|
local combos = HealBot_Config.KeyCombo[UnitClass("player")]
|
||||||
|
if combos and next(combos) and HealBot_Range_Check(unit, 40) == 1 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
return false
|
return false
|
||||||
else
|
else
|
||||||
return true
|
return true
|
||||||
@@ -101,14 +106,16 @@ end
|
|||||||
-- Refresh and reset functions moved to HealBot_View_Layout.lua
|
-- Refresh and reset functions moved to HealBot_View_Layout.lua
|
||||||
|
|
||||||
-- HealBot_Action_SpellPattern: Resolves spell string based on click modifiers.
|
-- HealBot_Action_SpellPattern: Resolves spell string based on click modifiers.
|
||||||
function HealBot_Action_SpellPattern(button)
|
function HealBot_Action_SpellPattern(button, ignoreModifiers)
|
||||||
local combos = HealBot_Config.KeyCombo[UnitClass("player")]
|
local combos = HealBot_Config.KeyCombo[UnitClass("player")]
|
||||||
if not combos then return nil end
|
if not combos then return nil end
|
||||||
local press = button;
|
local press = button or "Left";
|
||||||
if IsAltKeyDown() then press = "Alt"..press end
|
if not ignoreModifiers then
|
||||||
if IsControlKeyDown() then press = "Ctrl"..press end
|
if IsAltKeyDown() then press = "Alt"..press end
|
||||||
if IsShiftKeyDown() then press = "Shift"..press end
|
if IsControlKeyDown() then press = "Ctrl"..press end
|
||||||
return combos[press]
|
if IsShiftKeyDown() then press = "Shift"..press end
|
||||||
|
end
|
||||||
|
return combos[press];
|
||||||
end
|
end
|
||||||
|
|
||||||
-- HealBot_Decode_Button: Decodes click action to spell pattern.
|
-- HealBot_Decode_Button: Decodes click action to spell pattern.
|
||||||
@@ -134,6 +141,8 @@ end
|
|||||||
-- HealBot_Action_HealUnit_OnLoad: Internal utility: HealBot_Action_HealUnit_OnLoad
|
-- HealBot_Action_HealUnit_OnLoad: Internal utility: HealBot_Action_HealUnit_OnLoad
|
||||||
function HealBot_Action_HealUnit_OnLoad(this)
|
function HealBot_Action_HealUnit_OnLoad(this)
|
||||||
this:RegisterForClicks("LeftButtonUp", "RightButtonUp", "MiddleButtonUp", "Button4Up", "Button5Up");
|
this:RegisterForClicks("LeftButtonUp", "RightButtonUp", "MiddleButtonUp", "Button4Up", "Button5Up");
|
||||||
|
this.debuffOverlay = getglobal(this:GetName() .. "DebuffOverlay");
|
||||||
|
this.debuffGlow = getglobal(this:GetName() .. "DebuffOverlayGlow");
|
||||||
end
|
end
|
||||||
|
|
||||||
-- HealBot_Action_HealUnit_OnEnter: Internal utility: HealBot_Action_HealUnit_OnEnter
|
-- HealBot_Action_HealUnit_OnEnter: Internal utility: HealBot_Action_HealUnit_OnEnter
|
||||||
@@ -447,19 +456,13 @@ function HealBot_Action_OnDragStop(this)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- http://www.flexbarforums.com/viewtopic.php?t=66
|
-- http://www.flexbarforums.com/viewtopic.php?t=66
|
||||||
-- no idea what it was link is dead
|
-- Legacy handler preserved for compatibility
|
||||||
function HealBot_Action_OnKey(this,key,state)
|
function HealBot_Action_OnKey(this,key,state)
|
||||||
local command = GetBindingAction(key);
|
local command = GetBindingAction(key);
|
||||||
if command then
|
if command then
|
||||||
DEFAULT_CHAT_FRAME:AddMessage(key.." "..state.." "..(command or "nil"));
|
|
||||||
keystate = state
|
keystate = state
|
||||||
RunBinding(command,keystate)
|
RunBinding(command,keystate)
|
||||||
end
|
end
|
||||||
DEFAULT_CHAT_FRAME:AddMessage("HealBot_Action_OnKey - "..key);
|
|
||||||
if key=="SHIFT" or key=="CTRL" or key=="ALT" then
|
|
||||||
DEFAULT_CHAT_FRAME:AddMessage((IsShiftKeyDown() or 0).." "..(IsControlKeyDown() or 0).." "..(IsAltKeyDown() or 0));
|
|
||||||
HealBot_Action_Refresh();
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -152,6 +152,30 @@
|
|||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
</StatusBar>
|
</StatusBar>
|
||||||
|
<Frame name="$parentDebuffOverlay" frameStrata="FOREGROUND" enableMouse="false" hidden="true">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOPLEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-2" y="2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
<Anchor point="BOTTOMRIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="2" y="-2"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Backdrop edgeFile="Interface\Tooltips\UI-Tooltip-Border">
|
||||||
|
<EdgeSize>
|
||||||
|
<AbsValue val="10"/>
|
||||||
|
</EdgeSize>
|
||||||
|
</Backdrop>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="ARTWORK">
|
||||||
|
<Texture name="$parentGlow" file="Interface\AddOns\HealBotBlue\Images\glow1.tga" setAllPoints="true" alphaMode="BLEND" hidden="true"/>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
</Frame>
|
||||||
</Frames>
|
</Frames>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
|||||||
@@ -172,6 +172,10 @@ function HealBot_OnUpdate(this, arg1)
|
|||||||
for unitID in pairs(powerToRefresh) do
|
for unitID in pairs(powerToRefresh) do
|
||||||
HealBot_Action_RefreshPower(unitID)
|
HealBot_Action_RefreshPower(unitID)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if HealBot_Action_UpdateDebuffAnimation then
|
||||||
|
HealBot_Action_UpdateDebuffAnimation(arg1)
|
||||||
|
end
|
||||||
-- Periodic resolution of units with missing class identity
|
-- Periodic resolution of units with missing class identity
|
||||||
if HealBot_Model and HealBot_Model.unresolvedUnits and next(HealBot_Model.unresolvedUnits) then
|
if HealBot_Model and HealBot_Model.unresolvedUnits and next(HealBot_Model.unresolvedUnits) then
|
||||||
HealBot_UnresolvedTimer = (HealBot_UnresolvedTimer or 0) + arg1
|
HealBot_UnresolvedTimer = (HealBot_UnresolvedTimer or 0) + arg1
|
||||||
|
|||||||
@@ -35,43 +35,57 @@ function HealBot_Range_Check(unit, range)
|
|||||||
|
|
||||||
if ( unit and (unit == "player" or UnitIsUnit(unit, "player") or string.find(unit, "^Test")) ) then
|
if ( unit and (unit == "player" or UnitIsUnit(unit, "player") or string.find(unit, "^Test")) ) then
|
||||||
return_val = 1;
|
return_val = 1;
|
||||||
elseif HealBot_Integrations_ClassicAPI_Active and UnitDistanceSquared and UnitInLineOfSight then
|
else
|
||||||
local inSight = UnitInLineOfSight("player", unit)
|
local checked = false
|
||||||
if inSight then
|
if HealBot_Integrations_ClassicAPI_Active and UnitDistanceSquared and UnitInLineOfSight then
|
||||||
local distSq = UnitDistanceSquared(unit)
|
local inSight = UnitInLineOfSight(unit)
|
||||||
if distSq and distSq <= (range * range) then
|
if inSight == nil then inSight = UnitInLineOfSight("player", unit) end
|
||||||
return_val = 1;
|
if inSight ~= nil then
|
||||||
end
|
checked = true
|
||||||
end
|
if inSight then
|
||||||
elseif HealBot_Integrations_UnitXP_Active then
|
local distSq = UnitDistanceSquared(unit)
|
||||||
local inSight = UnitXP("inSight", "player", unit)
|
if distSq and distSq <= (range * range) then
|
||||||
if inSight then
|
return_val = 1;
|
||||||
local dist = UnitXP("distanceBetween", "player", unit, "Gaussian")
|
end
|
||||||
if dist and dist <= range then
|
|
||||||
return_val = 1;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif ( UnitIsVisible(unit) == 1 ) then
|
|
||||||
local tx, ty = GetPlayerMapPosition(unit)
|
|
||||||
local dist
|
|
||||||
if tx > 0 or ty > 0 then
|
|
||||||
local px, py = GetPlayerMapPosition("player")
|
|
||||||
dist = math.sqrt((px - tx)^2 + (py - ty)^2)
|
|
||||||
if dist > _scale and (px > 0 or py > 0) then
|
|
||||||
if ( CheckInteractDistance(unit, 4) ) then
|
|
||||||
_scale = dist
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if dist <= (_scale * range / 27) then
|
end
|
||||||
return_val = 1
|
|
||||||
|
if not checked and HealBot_Integrations_UnitXP_Active then
|
||||||
|
local inSight = UnitXP("inSight", "player", unit)
|
||||||
|
if inSight ~= nil then
|
||||||
|
checked = true
|
||||||
|
if inSight then
|
||||||
|
local dist = UnitXP("distanceBetween", "player", unit, "Gaussian")
|
||||||
|
if dist and dist <= range then
|
||||||
|
return_val = 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else
|
end
|
||||||
if ( HealBot_Config.QualityRange == 1 ) or range <= 27 then
|
|
||||||
if ( CheckInteractDistance(unit, 4) ) then
|
if not checked and ( UnitIsVisible(unit) == 1 ) then
|
||||||
return_val = 1;
|
local tx, ty = GetPlayerMapPosition(unit)
|
||||||
end
|
local dist
|
||||||
|
if tx > 0 or ty > 0 then
|
||||||
|
local px, py = GetPlayerMapPosition("player")
|
||||||
|
dist = math.sqrt((px - tx)^2 + (py - ty)^2)
|
||||||
|
if dist > _scale and (px > 0 or py > 0) then
|
||||||
|
if ( CheckInteractDistance(unit, 4) ) then
|
||||||
|
_scale = dist
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if dist <= (_scale * range / 27) then
|
||||||
|
return_val = 1
|
||||||
|
end
|
||||||
else
|
else
|
||||||
return_val = 1;
|
if ( HealBot_Config.QualityRange == 1 ) or range <= 27 or unit == "target" then
|
||||||
|
if ( CheckInteractDistance(unit, 4) ) then
|
||||||
|
return_val = 1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return_val = 1;
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -584,11 +584,13 @@ function HealBot_GetHealSpell(unit, pattern)
|
|||||||
|
|
||||||
-- Handle Inline Scripts
|
-- Handle Inline Scripts
|
||||||
if string.sub(pattern, 1, 1) == "/" then
|
if string.sub(pattern, 1, 1) == "/" then
|
||||||
|
if HealBot_Range_Check(unit, 40) == 0 then return nil end;
|
||||||
return pattern;
|
return pattern;
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Handle Special Targeting Pattern
|
-- Handle Special Targeting Pattern
|
||||||
if string.lower(pattern) == "target" then
|
if string.lower(pattern) == "target" then
|
||||||
|
if HealBot_Range_Check(unit, 40) == 0 then return nil end;
|
||||||
return pattern;
|
return pattern;
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -598,7 +600,17 @@ function HealBot_GetHealSpell(unit, pattern)
|
|||||||
local range = 40;
|
local range = 40;
|
||||||
if HealBot_Spells[spell] then
|
if HealBot_Spells[spell] then
|
||||||
if not HealBot_CanCastSpell(spell, unit) then return nil end;
|
if not HealBot_CanCastSpell(spell, unit) then return nil end;
|
||||||
range = HealBot_Spells[spell].range or 40;
|
range = HealBot_Spells[spell].Range or HealBot_Spells[spell].range or 40;
|
||||||
|
else
|
||||||
|
local parenIdx = string.find(spell, "%s*%(")
|
||||||
|
if parenIdx then
|
||||||
|
local baseSpell = string.sub(spell, 1, parenIdx - 1)
|
||||||
|
baseSpell = string.gsub(baseSpell, "%s+$", "")
|
||||||
|
if HealBot_Spells[baseSpell] then
|
||||||
|
if not HealBot_CanCastSpell(baseSpell, unit) then return nil end;
|
||||||
|
range = HealBot_Spells[baseSpell].Range or HealBot_Spells[baseSpell].range or 40;
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
if HealBot_Range_Check(unit, range) == 0 then return nil end;
|
if HealBot_Range_Check(unit, range) == 0 then return nil end;
|
||||||
return spell;
|
return spell;
|
||||||
@@ -606,13 +618,18 @@ function HealBot_GetHealSpell(unit, pattern)
|
|||||||
|
|
||||||
-- Handle Named Macros
|
-- Handle Named Macros
|
||||||
if GetMacroIndexByName(pattern) ~= 0 then
|
if GetMacroIndexByName(pattern) ~= 0 then
|
||||||
|
if HealBot_Range_Check(unit, 40) == 0 then return nil end;
|
||||||
return pattern;
|
return pattern;
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Handle Items
|
-- Handle Items
|
||||||
local bag, slot = HealBot_FindBagSlot(pattern)
|
local bag, slot = HealBot_FindBagSlot(pattern)
|
||||||
if bag then
|
if bag then
|
||||||
-- optionally check item range, but skipping for now as it's complex in vanilla
|
local range = 40;
|
||||||
|
if HealBot_Spells[pattern] then
|
||||||
|
range = HealBot_Spells[pattern].Range or HealBot_Spells[pattern].range or 40;
|
||||||
|
end
|
||||||
|
if HealBot_Range_Check(unit, range) == 0 then return nil end;
|
||||||
return pattern;
|
return pattern;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+100
-98
@@ -52,6 +52,8 @@ HealBot_ConfigDefaults = {
|
|||||||
SoundDebuffWarning = 0,
|
SoundDebuffWarning = 0,
|
||||||
SoundDebuffPlay = 1,
|
SoundDebuffPlay = 1,
|
||||||
CDCMonitor = 2,
|
CDCMonitor = 2,
|
||||||
|
CDCOverlay = 1,
|
||||||
|
CDCOverlayTexture = "Interface\\AddOns\\HealBotBlue\\Images\\glow1.tga",
|
||||||
PanelAnchorX = -1,
|
PanelAnchorX = -1,
|
||||||
PanelAnchorY = -1,
|
PanelAnchorY = -1,
|
||||||
CDCBarColour = {
|
CDCBarColour = {
|
||||||
@@ -542,104 +544,104 @@ HealBot_Debuff_Spells = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
HealBot_Buff_Spells = {
|
HealBot_Buff_Spells = {
|
||||||
[HEALBOT_PALADIN] = {
|
[HEALBOT_PALADIN] = {
|
||||||
HEALBOT_BLESSING_OF_KINGS,
|
HEALBOT_BLESSING_OF_KINGS,
|
||||||
HEALBOT_BLESSING_OF_MIGHT,
|
HEALBOT_BLESSING_OF_MIGHT,
|
||||||
HEALBOT_BLESSING_OF_WISDOM,
|
HEALBOT_BLESSING_OF_WISDOM,
|
||||||
HEALBOT_BLESSING_OF_SALVATION,
|
HEALBOT_BLESSING_OF_SALVATION,
|
||||||
HEALBOT_BLESSING_OF_LIGHT,
|
HEALBOT_BLESSING_OF_LIGHT,
|
||||||
HEALBOT_BLESSING_OF_SANCTUARY,
|
HEALBOT_BLESSING_OF_SANCTUARY,
|
||||||
HEALBOT_GREATER_BLESSING_OF_KINGS,
|
HEALBOT_GREATER_BLESSING_OF_KINGS,
|
||||||
HEALBOT_GREATER_BLESSING_OF_MIGHT,
|
HEALBOT_GREATER_BLESSING_OF_MIGHT,
|
||||||
HEALBOT_GREATER_BLESSING_OF_WISDOM,
|
HEALBOT_GREATER_BLESSING_OF_WISDOM,
|
||||||
HEALBOT_GREATER_BLESSING_OF_SALVATION,
|
HEALBOT_GREATER_BLESSING_OF_SALVATION,
|
||||||
HEALBOT_GREATER_BLESSING_OF_LIGHT,
|
HEALBOT_GREATER_BLESSING_OF_LIGHT,
|
||||||
HEALBOT_GREATER_BLESSING_OF_SANCTUARY,
|
HEALBOT_GREATER_BLESSING_OF_SANCTUARY,
|
||||||
HEALBOT_RIGHTEOUS_FURY,
|
HEALBOT_RIGHTEOUS_FURY,
|
||||||
},
|
},
|
||||||
[HEALBOT_DRUID] = {
|
[HEALBOT_DRUID] = {
|
||||||
HEALBOT_MARK_OF_THE_WILD,
|
HEALBOT_MARK_OF_THE_WILD,
|
||||||
HEALBOT_GIFT_OF_THE_WILD,
|
HEALBOT_GIFT_OF_THE_WILD,
|
||||||
HEALBOT_THORNS,
|
HEALBOT_THORNS,
|
||||||
HEALBOT_OMEN_OF_CLARITY,
|
HEALBOT_OMEN_OF_CLARITY,
|
||||||
},
|
},
|
||||||
[HEALBOT_PRIEST] = {
|
[HEALBOT_PRIEST] = {
|
||||||
HEALBOT_POWER_WORD_FORTITUDE,
|
HEALBOT_POWER_WORD_FORTITUDE,
|
||||||
HEALBOT_PRAYER_OF_FORTITUDE,
|
HEALBOT_PRAYER_OF_FORTITUDE,
|
||||||
HEALBOT_DIVINE_SPIRIT,
|
HEALBOT_DIVINE_SPIRIT,
|
||||||
HEALBOT_PRAYER_OF_SPIRIT,
|
HEALBOT_PRAYER_OF_SPIRIT,
|
||||||
HEALBOT_SHADOW_PROTECTION,
|
HEALBOT_SHADOW_PROTECTION,
|
||||||
HEALBOT_PRAYER_OF_SHADOW_PROTECTION,
|
HEALBOT_PRAYER_OF_SHADOW_PROTECTION,
|
||||||
HEALBOT_INNER_FIRE,
|
HEALBOT_INNER_FIRE,
|
||||||
HEALBOT_FEAR_WARD,
|
HEALBOT_FEAR_WARD,
|
||||||
HEALBOT_SHADOWFORM,
|
HEALBOT_SHADOWFORM,
|
||||||
HEALBOT_ENLIGHTEN,
|
HEALBOT_ENLIGHTEN,
|
||||||
},
|
},
|
||||||
[HEALBOT_MAGE] = {
|
[HEALBOT_MAGE] = {
|
||||||
HEALBOT_ARCANE_INTELLECT,
|
HEALBOT_ARCANE_INTELLECT,
|
||||||
HEALBOT_ARCANE_BRILLIANCE,
|
HEALBOT_ARCANE_BRILLIANCE,
|
||||||
HEALBOT_DAMPEN_MAGIC,
|
HEALBOT_DAMPEN_MAGIC,
|
||||||
HEALBOT_AMPLIFY_MAGIC,
|
HEALBOT_AMPLIFY_MAGIC,
|
||||||
HEALBOT_FROST_ARMOR,
|
HEALBOT_FROST_ARMOR,
|
||||||
HEALBOT_ICE_ARMOR,
|
HEALBOT_ICE_ARMOR,
|
||||||
HEALBOT_MAGE_ARMOR,
|
HEALBOT_MAGE_ARMOR,
|
||||||
HEALBOT_ICE_BARRIER,
|
HEALBOT_ICE_BARRIER,
|
||||||
},
|
},
|
||||||
[HEALBOT_SHAMAN] = {
|
[HEALBOT_SHAMAN] = {
|
||||||
HEALBOT_ROCKBITER_WEAPON,
|
HEALBOT_ROCKBITER_WEAPON,
|
||||||
HEALBOT_FLAMETONGUE_WEAPON,
|
HEALBOT_FLAMETONGUE_WEAPON,
|
||||||
HEALBOT_FROSTBRAND_WEAPON,
|
HEALBOT_FROSTBRAND_WEAPON,
|
||||||
HEALBOT_WINDFURY_WEAPON,
|
HEALBOT_WINDFURY_WEAPON,
|
||||||
HEALBOT_LIGHTNING_SHIELD,
|
HEALBOT_LIGHTNING_SHIELD,
|
||||||
HEALBOT_WATER_SHIELD,
|
HEALBOT_WATER_SHIELD,
|
||||||
HEALBOT_WATER_WALKING,
|
HEALBOT_WATER_WALKING,
|
||||||
HEALBOT_WATER_BREATHING,
|
HEALBOT_WATER_BREATHING,
|
||||||
},
|
},
|
||||||
[HEALBOT_WARRIOR] = {
|
[HEALBOT_WARRIOR] = {
|
||||||
HEALBOT_BATTLE_SHOUT,
|
HEALBOT_BATTLE_SHOUT,
|
||||||
},
|
},
|
||||||
[HEALBOT_WARLOCK] = {
|
[HEALBOT_WARLOCK] = {
|
||||||
HEALBOT_DEMON_SKIN,
|
HEALBOT_DEMON_SKIN,
|
||||||
HEALBOT_DEMON_ARMOR,
|
HEALBOT_DEMON_ARMOR,
|
||||||
HEALBOT_UNENDING_BREATH,
|
HEALBOT_UNENDING_BREATH,
|
||||||
HEALBOT_DETECT_LESSER_INVISIBILITY,
|
HEALBOT_DETECT_LESSER_INVISIBILITY,
|
||||||
HEALBOT_DETECT_INVISIBILITY,
|
HEALBOT_DETECT_INVISIBILITY,
|
||||||
},
|
},
|
||||||
[HEALBOT_HUNTER] = {
|
[HEALBOT_HUNTER] = {
|
||||||
HEALBOT_TRUESHOT_AURA,
|
HEALBOT_TRUESHOT_AURA,
|
||||||
HEALBOT_ASPECT_OF_THE_HAWK,
|
HEALBOT_ASPECT_OF_THE_HAWK,
|
||||||
HEALBOT_ASPECT_OF_THE_MONKEY,
|
HEALBOT_ASPECT_OF_THE_MONKEY,
|
||||||
HEALBOT_ASPECT_OF_THE_CHEETAH,
|
HEALBOT_ASPECT_OF_THE_CHEETAH,
|
||||||
HEALBOT_ASPECT_OF_THE_PACK,
|
HEALBOT_ASPECT_OF_THE_PACK,
|
||||||
HEALBOT_ASPECT_OF_THE_WILD,
|
HEALBOT_ASPECT_OF_THE_WILD,
|
||||||
HEALBOT_ASPECT_OF_THE_BEAST,
|
HEALBOT_ASPECT_OF_THE_BEAST,
|
||||||
},
|
},
|
||||||
[HEALBOT_ROGUE] = {},
|
[HEALBOT_ROGUE] = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
HealBot_SelfOnly_Buffs = {
|
HealBot_SelfOnly_Buffs = {
|
||||||
[HEALBOT_DEMON_SKIN] = true,
|
[HEALBOT_DEMON_SKIN] = true,
|
||||||
[HEALBOT_DEMON_ARMOR] = true,
|
[HEALBOT_DEMON_ARMOR] = true,
|
||||||
[HEALBOT_ASPECT_OF_THE_HAWK] = true,
|
[HEALBOT_ASPECT_OF_THE_HAWK] = true,
|
||||||
[HEALBOT_ASPECT_OF_THE_MONKEY] = true,
|
[HEALBOT_ASPECT_OF_THE_MONKEY] = true,
|
||||||
[HEALBOT_ASPECT_OF_THE_CHEETAH] = true,
|
[HEALBOT_ASPECT_OF_THE_CHEETAH] = true,
|
||||||
[HEALBOT_ASPECT_OF_THE_BEAST] = true,
|
[HEALBOT_ASPECT_OF_THE_BEAST] = true,
|
||||||
[HEALBOT_FROST_ARMOR] = true,
|
[HEALBOT_FROST_ARMOR] = true,
|
||||||
[HEALBOT_ICE_ARMOR] = true,
|
[HEALBOT_ICE_ARMOR] = true,
|
||||||
[HEALBOT_MAGE_ARMOR] = true,
|
[HEALBOT_MAGE_ARMOR] = true,
|
||||||
[HEALBOT_ICE_BARRIER] = true,
|
[HEALBOT_ICE_BARRIER] = true,
|
||||||
[HEALBOT_RIGHTEOUS_FURY] = true,
|
[HEALBOT_RIGHTEOUS_FURY] = true,
|
||||||
[HEALBOT_INNER_FIRE] = true,
|
[HEALBOT_INNER_FIRE] = true,
|
||||||
[HEALBOT_SHADOWFORM] = true,
|
[HEALBOT_SHADOWFORM] = true,
|
||||||
[HEALBOT_LIGHTNING_SHIELD] = true,
|
[HEALBOT_LIGHTNING_SHIELD] = true,
|
||||||
[HEALBOT_WATER_SHIELD] = true,
|
[HEALBOT_WATER_SHIELD] = true,
|
||||||
[HEALBOT_ROCKBITER_WEAPON] = true,
|
[HEALBOT_ROCKBITER_WEAPON] = true,
|
||||||
[HEALBOT_FLAMETONGUE_WEAPON] = true,
|
[HEALBOT_FLAMETONGUE_WEAPON] = true,
|
||||||
[HEALBOT_FROSTBRAND_WEAPON] = true,
|
[HEALBOT_FROSTBRAND_WEAPON] = true,
|
||||||
[HEALBOT_WINDFURY_WEAPON] = true,
|
[HEALBOT_WINDFURY_WEAPON] = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
HealBot_Debuff_Types = {
|
HealBot_Debuff_Types = {
|
||||||
[HEALBOT_PURIFY] = {HEALBOT_DISEASE_en, HEALBOT_POISON_en},
|
[HEALBOT_PURIFY] = {HEALBOT_DISEASE_en, HEALBOT_POISON_en},
|
||||||
[HEALBOT_CLEANSE] = {HEALBOT_DISEASE_en, HEALBOT_POISON_en, HEALBOT_MAGIC_en},
|
[HEALBOT_CLEANSE] = {HEALBOT_DISEASE_en, HEALBOT_POISON_en, HEALBOT_MAGIC_en},
|
||||||
|
|||||||
+62
-54
@@ -81,59 +81,59 @@ HEALBOT_CHAIN_HEAL = "Kettenheilung";
|
|||||||
|
|
||||||
HEALBOT_POWER_WORD_FORTITUDE = "Machtwort: Seelenst\195\164rke";
|
HEALBOT_POWER_WORD_FORTITUDE = "Machtwort: Seelenst\195\164rke";
|
||||||
HEALBOT_MARK_OF_THE_WILD = "Mal der Wildnis";
|
HEALBOT_MARK_OF_THE_WILD = "Mal der Wildnis";
|
||||||
HEALBOT_BLESSING_OF_SALVATION = "Segen der Rettung";
|
HEALBOT_BLESSING_OF_SALVATION = "Segen der Rettung";
|
||||||
|
|
||||||
HEALBOT_BATTLE_SHOUT = "Schlachtruf";
|
HEALBOT_BATTLE_SHOUT = "Schlachtruf";
|
||||||
HEALBOT_BLOODRAGE = "Blutrausch";
|
HEALBOT_BLOODRAGE = "Blutrausch";
|
||||||
HEALBOT_BERSERKER_RAGE = "Berserkerwut";
|
HEALBOT_BERSERKER_RAGE = "Berserkerwut";
|
||||||
|
|
||||||
HEALBOT_DEMON_SKIN = "D\195\164monenhaut";
|
HEALBOT_DEMON_SKIN = "D\195\164monenhaut";
|
||||||
HEALBOT_DEMON_ARMOR = "D\195\164monenr\195\188stung";
|
HEALBOT_DEMON_ARMOR = "D\195\164monenr\195\188stung";
|
||||||
HEALBOT_UNENDING_BREATH = "Unendlicher Atem";
|
HEALBOT_UNENDING_BREATH = "Unendlicher Atem";
|
||||||
HEALBOT_DETECT_LESSER_INVISIBILITY = "Geringe Unsichtbarkeit entdecken";
|
HEALBOT_DETECT_LESSER_INVISIBILITY = "Geringe Unsichtbarkeit entdecken";
|
||||||
HEALBOT_DETECT_INVISIBILITY = "Unsichtbarkeit entdecken";
|
HEALBOT_DETECT_INVISIBILITY = "Unsichtbarkeit entdecken";
|
||||||
HEALBOT_SHADOW_WARD = "Schattenzauberschutz";
|
HEALBOT_SHADOW_WARD = "Schattenzauberschutz";
|
||||||
HEALBOT_SOULSTONE_RESURRECTION = "Seelenstein-Auferstehung";
|
HEALBOT_SOULSTONE_RESURRECTION = "Seelenstein-Auferstehung";
|
||||||
HEALBOT_FIRE_SHIELD = "Feuerschild";
|
HEALBOT_FIRE_SHIELD = "Feuerschild";
|
||||||
|
|
||||||
HEALBOT_TRUESHOT_AURA = "Aura des Volltreffers";
|
HEALBOT_TRUESHOT_AURA = "Aura des Volltreffers";
|
||||||
HEALBOT_ASPECT_OF_THE_HAWK = "Aspekt des Falken";
|
HEALBOT_ASPECT_OF_THE_HAWK = "Aspekt des Falken";
|
||||||
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspekt des Affen";
|
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspekt des Affen";
|
||||||
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspekt des Geparden";
|
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspekt des Geparden";
|
||||||
HEALBOT_ASPECT_OF_THE_PACK = "Aspekt des Rudels";
|
HEALBOT_ASPECT_OF_THE_PACK = "Aspekt des Rudels";
|
||||||
HEALBOT_ASPECT_OF_THE_WILD = "Aspekt der Wildnis";
|
HEALBOT_ASPECT_OF_THE_WILD = "Aspekt der Wildnis";
|
||||||
HEALBOT_ASPECT_OF_THE_BEAST = "Aspekt des Wildtiers";
|
HEALBOT_ASPECT_OF_THE_BEAST = "Aspekt des Wildtiers";
|
||||||
|
|
||||||
HEALBOT_STEALTH = "Verstohlenheit";
|
HEALBOT_STEALTH = "Verstohlenheit";
|
||||||
HEALBOT_BLADE_FLURRY = "Klingenwirbel";
|
HEALBOT_BLADE_FLURRY = "Klingenwirbel";
|
||||||
HEALBOT_EVASION = "Entrinnen";
|
HEALBOT_EVASION = "Entrinnen";
|
||||||
HEALBOT_SPRINT = "Sprinten";
|
HEALBOT_SPRINT = "Sprinten";
|
||||||
HEALBOT_SLICE_AND_DICE = "Zerh\195\164ckseln";
|
HEALBOT_SLICE_AND_DICE = "Zerh\195\164ckseln";
|
||||||
|
|
||||||
HEALBOT_FROST_ARMOR = "Frostr\195\188stung";
|
HEALBOT_FROST_ARMOR = "Frostr\195\188stung";
|
||||||
HEALBOT_ICE_ARMOR = "Eisr\195\188stung";
|
HEALBOT_ICE_ARMOR = "Eisr\195\188stung";
|
||||||
HEALBOT_MAGE_ARMOR = "Magische R\195\188stung";
|
HEALBOT_MAGE_ARMOR = "Magische R\195\188stung";
|
||||||
HEALBOT_MANA_SHIELD = "Manaschild";
|
HEALBOT_MANA_SHIELD = "Manaschild";
|
||||||
HEALBOT_ICE_BARRIER = "Eisbarriere";
|
HEALBOT_ICE_BARRIER = "Eisbarriere";
|
||||||
HEALBOT_FIRE_WARD = "Feuerzauberschutz";
|
HEALBOT_FIRE_WARD = "Feuerzauberschutz";
|
||||||
HEALBOT_FROST_WARD = "Frostzauberschutz";
|
HEALBOT_FROST_WARD = "Frostzauberschutz";
|
||||||
|
|
||||||
HEALBOT_GREATER_BLESSING_OF_SALVATION = "Gro\195\159er Segen der Rettung";
|
HEALBOT_GREATER_BLESSING_OF_SALVATION = "Gro\195\159er Segen der Rettung";
|
||||||
HEALBOT_GREATER_BLESSING_OF_MIGHT = "Gro\195\159er Segen der Macht";
|
HEALBOT_GREATER_BLESSING_OF_MIGHT = "Gro\195\159er Segen der Macht";
|
||||||
HEALBOT_GREATER_BLESSING_OF_WISDOM = "Gro\195\159er Segen der Weisheit";
|
HEALBOT_GREATER_BLESSING_OF_WISDOM = "Gro\195\159er Segen der Weisheit";
|
||||||
HEALBOT_GREATER_BLESSING_OF_KINGS = "Gro\195\159er Segen der K\195\182nige";
|
HEALBOT_GREATER_BLESSING_OF_KINGS = "Gro\195\159er Segen der K\195\182nige";
|
||||||
HEALBOT_GREATER_BLESSING_OF_LIGHT = "Gro\195\159er Segen des Lichts";
|
HEALBOT_GREATER_BLESSING_OF_LIGHT = "Gro\195\159er Segen des Lichts";
|
||||||
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "Gro\195\159er Segen des Unterschlupfs";
|
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "Gro\195\159er Segen des Unterschlupfs";
|
||||||
HEALBOT_RIGHTEOUS_FURY = "Zorn der Gerechtigkeit";
|
HEALBOT_RIGHTEOUS_FURY = "Zorn der Gerechtigkeit";
|
||||||
|
|
||||||
HEALBOT_SHADOWFORM = "Schattengestalt";
|
HEALBOT_SHADOWFORM = "Schattengestalt";
|
||||||
|
|
||||||
HEALBOT_BARKSKIN = "Baumrinde";
|
HEALBOT_BARKSKIN = "Baumrinde";
|
||||||
HEALBOT_NATURES_GRASP = "Griff der Natur";
|
HEALBOT_NATURES_GRASP = "Griff der Natur";
|
||||||
|
|
||||||
HEALBOT_LIGHTNING_SHIELD = "Blitzschlagschild";
|
HEALBOT_LIGHTNING_SHIELD = "Blitzschlagschild";
|
||||||
HEALBOT_WATER_SHIELD = "Wasserschild";
|
HEALBOT_WATER_SHIELD = "Wasserschild";
|
||||||
HEALBOT_WATER_WALKING = "Wasserwandeln";
|
HEALBOT_WATER_WALKING = "Wasserwandeln";
|
||||||
HEALBOT_WATER_BREATHING = "Wasseratmung";
|
HEALBOT_WATER_BREATHING = "Wasseratmung";
|
||||||
|
|
||||||
HEALBOT_RESURRECTION = "Auferstehung";
|
HEALBOT_RESURRECTION = "Auferstehung";
|
||||||
@@ -148,7 +148,7 @@ HEALBOT_CLEANSE = "Reinigung des Glaubens";
|
|||||||
HEALBOT_DISPEL_MAGIC = "Magiebannung";
|
HEALBOT_DISPEL_MAGIC = "Magiebannung";
|
||||||
HEALBOT_CURE_POISON = "Vergiftung heilen";
|
HEALBOT_CURE_POISON = "Vergiftung heilen";
|
||||||
HEALBOT_ABOLISH_POISON = "Vergiftung aufheben";
|
HEALBOT_ABOLISH_POISON = "Vergiftung aufheben";
|
||||||
HEALBOT_REMOVE_CURSE = "Fluch aufheben";
|
HEALBOT_REMOVE_CURSE = "Fluch aufheben";
|
||||||
HEALBOT_REMOVE_LESSER_CURSE= "Geringeren Fluch aufheben";
|
HEALBOT_REMOVE_LESSER_CURSE= "Geringeren Fluch aufheben";
|
||||||
HEALBOT_DISEASE = "Krankheit";
|
HEALBOT_DISEASE = "Krankheit";
|
||||||
HEALBOT_MAGIC = "Magie";
|
HEALBOT_MAGIC = "Magie";
|
||||||
@@ -419,3 +419,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY = "Debuff visual:";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_BAR = "Whole Bar";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_FRAME = "Frame / Border";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOW = "Glow Effect";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOWFRAME = "Glow + Frame";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_NONE = "Disabled";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_ANIMATED = "Animated";
|
||||||
|
|||||||
+62
-54
@@ -93,59 +93,59 @@ HEALBOT_THORNS = "Thorns";
|
|||||||
HEALBOT_OMEN_OF_CLARITY = "Omen of Clarity";
|
HEALBOT_OMEN_OF_CLARITY = "Omen of Clarity";
|
||||||
HEALBOT_INNER_FIRE = "Inner Fire";
|
HEALBOT_INNER_FIRE = "Inner Fire";
|
||||||
HEALBOT_FEAR_WARD = "Fear Ward";
|
HEALBOT_FEAR_WARD = "Fear Ward";
|
||||||
HEALBOT_ENLIGHTEN = "Enlighten";
|
HEALBOT_ENLIGHTEN = "Enlighten";
|
||||||
|
|
||||||
HEALBOT_BATTLE_SHOUT = "Battle Shout";
|
HEALBOT_BATTLE_SHOUT = "Battle Shout";
|
||||||
HEALBOT_BLOODRAGE = "Bloodrage";
|
HEALBOT_BLOODRAGE = "Bloodrage";
|
||||||
HEALBOT_BERSERKER_RAGE = "Berserker Rage";
|
HEALBOT_BERSERKER_RAGE = "Berserker Rage";
|
||||||
|
|
||||||
HEALBOT_DEMON_SKIN = "Demon Skin";
|
HEALBOT_DEMON_SKIN = "Demon Skin";
|
||||||
HEALBOT_DEMON_ARMOR = "Demon Armor";
|
HEALBOT_DEMON_ARMOR = "Demon Armor";
|
||||||
HEALBOT_UNENDING_BREATH = "Unending Breath";
|
HEALBOT_UNENDING_BREATH = "Unending Breath";
|
||||||
HEALBOT_DETECT_LESSER_INVISIBILITY = "Detect Lesser Invisibility";
|
HEALBOT_DETECT_LESSER_INVISIBILITY = "Detect Lesser Invisibility";
|
||||||
HEALBOT_DETECT_INVISIBILITY = "Detect Invisibility";
|
HEALBOT_DETECT_INVISIBILITY = "Detect Invisibility";
|
||||||
HEALBOT_SHADOW_WARD = "Shadow Ward";
|
HEALBOT_SHADOW_WARD = "Shadow Ward";
|
||||||
HEALBOT_SOULSTONE_RESURRECTION = "Soulstone Resurrection";
|
HEALBOT_SOULSTONE_RESURRECTION = "Soulstone Resurrection";
|
||||||
HEALBOT_FIRE_SHIELD = "Fire Shield";
|
HEALBOT_FIRE_SHIELD = "Fire Shield";
|
||||||
|
|
||||||
HEALBOT_TRUESHOT_AURA = "Trueshot Aura";
|
HEALBOT_TRUESHOT_AURA = "Trueshot Aura";
|
||||||
HEALBOT_ASPECT_OF_THE_HAWK = "Aspect of the Hawk";
|
HEALBOT_ASPECT_OF_THE_HAWK = "Aspect of the Hawk";
|
||||||
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspect of the Monkey";
|
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspect of the Monkey";
|
||||||
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspect of the Cheetah";
|
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspect of the Cheetah";
|
||||||
HEALBOT_ASPECT_OF_THE_PACK = "Aspect of the Pack";
|
HEALBOT_ASPECT_OF_THE_PACK = "Aspect of the Pack";
|
||||||
HEALBOT_ASPECT_OF_THE_WILD = "Aspect of the Wild";
|
HEALBOT_ASPECT_OF_THE_WILD = "Aspect of the Wild";
|
||||||
HEALBOT_ASPECT_OF_THE_BEAST = "Aspect of the Beast";
|
HEALBOT_ASPECT_OF_THE_BEAST = "Aspect of the Beast";
|
||||||
|
|
||||||
HEALBOT_STEALTH = "Stealth";
|
HEALBOT_STEALTH = "Stealth";
|
||||||
HEALBOT_BLADE_FLURRY = "Blade Flurry";
|
HEALBOT_BLADE_FLURRY = "Blade Flurry";
|
||||||
HEALBOT_EVASION = "Evasion";
|
HEALBOT_EVASION = "Evasion";
|
||||||
HEALBOT_SPRINT = "Sprint";
|
HEALBOT_SPRINT = "Sprint";
|
||||||
HEALBOT_SLICE_AND_DICE = "Slice and Dice";
|
HEALBOT_SLICE_AND_DICE = "Slice and Dice";
|
||||||
|
|
||||||
HEALBOT_FROST_ARMOR = "Frost Armor";
|
HEALBOT_FROST_ARMOR = "Frost Armor";
|
||||||
HEALBOT_ICE_ARMOR = "Ice Armor";
|
HEALBOT_ICE_ARMOR = "Ice Armor";
|
||||||
HEALBOT_MAGE_ARMOR = "Mage Armor";
|
HEALBOT_MAGE_ARMOR = "Mage Armor";
|
||||||
HEALBOT_MANA_SHIELD = "Mana Shield";
|
HEALBOT_MANA_SHIELD = "Mana Shield";
|
||||||
HEALBOT_ICE_BARRIER = "Ice Barrier";
|
HEALBOT_ICE_BARRIER = "Ice Barrier";
|
||||||
HEALBOT_FIRE_WARD = "Fire Ward";
|
HEALBOT_FIRE_WARD = "Fire Ward";
|
||||||
HEALBOT_FROST_WARD = "Frost Ward";
|
HEALBOT_FROST_WARD = "Frost Ward";
|
||||||
|
|
||||||
HEALBOT_GREATER_BLESSING_OF_SALVATION = "Greater Blessing of Salvation";
|
HEALBOT_GREATER_BLESSING_OF_SALVATION = "Greater Blessing of Salvation";
|
||||||
HEALBOT_GREATER_BLESSING_OF_MIGHT = "Greater Blessing of Might";
|
HEALBOT_GREATER_BLESSING_OF_MIGHT = "Greater Blessing of Might";
|
||||||
HEALBOT_GREATER_BLESSING_OF_WISDOM = "Greater Blessing of Wisdom";
|
HEALBOT_GREATER_BLESSING_OF_WISDOM = "Greater Blessing of Wisdom";
|
||||||
HEALBOT_GREATER_BLESSING_OF_KINGS = "Greater Blessing of Kings";
|
HEALBOT_GREATER_BLESSING_OF_KINGS = "Greater Blessing of Kings";
|
||||||
HEALBOT_GREATER_BLESSING_OF_LIGHT = "Greater Blessing of Light";
|
HEALBOT_GREATER_BLESSING_OF_LIGHT = "Greater Blessing of Light";
|
||||||
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "Greater Blessing of Sanctuary";
|
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "Greater Blessing of Sanctuary";
|
||||||
HEALBOT_RIGHTEOUS_FURY = "Righteous Fury";
|
HEALBOT_RIGHTEOUS_FURY = "Righteous Fury";
|
||||||
|
|
||||||
HEALBOT_SHADOWFORM = "Shadowform";
|
HEALBOT_SHADOWFORM = "Shadowform";
|
||||||
|
|
||||||
HEALBOT_BARKSKIN = "Barkskin";
|
HEALBOT_BARKSKIN = "Barkskin";
|
||||||
HEALBOT_NATURES_GRASP = "Nature's Grasp";
|
HEALBOT_NATURES_GRASP = "Nature's Grasp";
|
||||||
|
|
||||||
HEALBOT_LIGHTNING_SHIELD = "Lightning Shield";
|
HEALBOT_LIGHTNING_SHIELD = "Lightning Shield";
|
||||||
HEALBOT_WATER_SHIELD = "Water Shield";
|
HEALBOT_WATER_SHIELD = "Water Shield";
|
||||||
HEALBOT_WATER_WALKING = "Water Walking";
|
HEALBOT_WATER_WALKING = "Water Walking";
|
||||||
HEALBOT_WATER_BREATHING = "Water Breathing";
|
HEALBOT_WATER_BREATHING = "Water Breathing";
|
||||||
|
|
||||||
HEALBOT_RESURRECTION = "Resurrection";
|
HEALBOT_RESURRECTION = "Resurrection";
|
||||||
@@ -156,7 +156,7 @@ HEALBOT_ANCESTRALSPIRIT = "Ancestral Spirit";
|
|||||||
HEALBOT_PURIFY = "Purify";
|
HEALBOT_PURIFY = "Purify";
|
||||||
HEALBOT_CLEANSE = "Cleanse";
|
HEALBOT_CLEANSE = "Cleanse";
|
||||||
HEALBOT_CURE_POISON = "Cure Poison";
|
HEALBOT_CURE_POISON = "Cure Poison";
|
||||||
HEALBOT_REMOVE_CURSE = "Remove Curse";
|
HEALBOT_REMOVE_CURSE = "Remove Curse";
|
||||||
HEALBOT_REMOVE_LESSER_CURSE= "Remove Lesser Curse";
|
HEALBOT_REMOVE_LESSER_CURSE= "Remove Lesser Curse";
|
||||||
HEALBOT_ABOLISH_POISON = "Abolish Poison";
|
HEALBOT_ABOLISH_POISON = "Abolish Poison";
|
||||||
HEALBOT_CURE_DISEASE = "Cure Disease";
|
HEALBOT_CURE_DISEASE = "Cure Disease";
|
||||||
@@ -449,3 +449,11 @@ HEALBOT_WORDS_CAST = "Cast"
|
|||||||
HEALBOT_WORDS_FOR = "for";
|
HEALBOT_WORDS_FOR = "for";
|
||||||
HEALBOT_OPTIONS_TESTBARS = "Test Bars";
|
HEALBOT_OPTIONS_TESTBARS = "Test Bars";
|
||||||
HEALBOT_WORD_TEST = "Test";
|
HEALBOT_WORD_TEST = "Test";
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY = "Debuff visual:";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_BAR = "Whole Bar";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_FRAME = "Frame / Border";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOW = "Glow Effect";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOWFRAME = "Glow + Frame";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_NONE = "Disabled";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_ANIMATED = "Animated";
|
||||||
|
|||||||
+62
-54
@@ -81,59 +81,59 @@ HEALBOT_CHAIN_HEAL = "Salve de gu\195\169rison";
|
|||||||
|
|
||||||
HEALBOT_POWER_WORD_FORTITUDE = "Mot de pouvoir : Robustesse";
|
HEALBOT_POWER_WORD_FORTITUDE = "Mot de pouvoir : Robustesse";
|
||||||
HEALBOT_MARK_OF_THE_WILD = "Marque du fauve";
|
HEALBOT_MARK_OF_THE_WILD = "Marque du fauve";
|
||||||
HEALBOT_BLESSING_OF_SALVATION = "B\195\169n\195\169diction de salut";
|
HEALBOT_BLESSING_OF_SALVATION = "B\195\169n\195\169diction de salut";
|
||||||
|
|
||||||
HEALBOT_BATTLE_SHOUT = "Cri de guerre";
|
HEALBOT_BATTLE_SHOUT = "Cri de guerre";
|
||||||
HEALBOT_BLOODRAGE = "Rage sanguinaire";
|
HEALBOT_BLOODRAGE = "Rage sanguinaire";
|
||||||
HEALBOT_BERSERKER_RAGE = "Rage berserker";
|
HEALBOT_BERSERKER_RAGE = "Rage berserker";
|
||||||
|
|
||||||
HEALBOT_DEMON_SKIN = "Peau de d\195\169mon";
|
HEALBOT_DEMON_SKIN = "Peau de d\195\169mon";
|
||||||
HEALBOT_DEMON_ARMOR = "Armure d\195\169moniaque";
|
HEALBOT_DEMON_ARMOR = "Armure d\195\169moniaque";
|
||||||
HEALBOT_UNENDING_BREATH = "Respiration interminable";
|
HEALBOT_UNENDING_BREATH = "Respiration interminable";
|
||||||
HEALBOT_DETECT_LESSER_INVISIBILITY = "D\195\169tection de l'invisibilit\195\169 inf\195\169rieure";
|
HEALBOT_DETECT_LESSER_INVISIBILITY = "D\195\169tection de l'invisibilit\195\169 inf\195\169rieure";
|
||||||
HEALBOT_DETECT_INVISIBILITY = "D\195\169tection de l'invisibilit\195\169";
|
HEALBOT_DETECT_INVISIBILITY = "D\195\169tection de l'invisibilit\195\169";
|
||||||
HEALBOT_SHADOW_WARD = "Gardien de l'ombre";
|
HEALBOT_SHADOW_WARD = "Gardien de l'ombre";
|
||||||
HEALBOT_SOULSTONE_RESURRECTION = "R\195\169surrection de pierre d'\195\162me";
|
HEALBOT_SOULSTONE_RESURRECTION = "R\195\169surrection de pierre d'\195\162me";
|
||||||
HEALBOT_FIRE_SHIELD = "Bouclier de feu";
|
HEALBOT_FIRE_SHIELD = "Bouclier de feu";
|
||||||
|
|
||||||
HEALBOT_TRUESHOT_AURA = "Aura de pr\195\169cision";
|
HEALBOT_TRUESHOT_AURA = "Aura de pr\195\169cision";
|
||||||
HEALBOT_ASPECT_OF_THE_HAWK = "Aspect du faucon";
|
HEALBOT_ASPECT_OF_THE_HAWK = "Aspect du faucon";
|
||||||
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspect du singe";
|
HEALBOT_ASPECT_OF_THE_MONKEY = "Aspect du singe";
|
||||||
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspect du gu\195\169pard";
|
HEALBOT_ASPECT_OF_THE_CHEETAH = "Aspect du gu\195\169pard";
|
||||||
HEALBOT_ASPECT_OF_THE_PACK = "Aspect de la meute";
|
HEALBOT_ASPECT_OF_THE_PACK = "Aspect de la meute";
|
||||||
HEALBOT_ASPECT_OF_THE_WILD = "Aspect de la nature";
|
HEALBOT_ASPECT_OF_THE_WILD = "Aspect de la nature";
|
||||||
HEALBOT_ASPECT_OF_THE_BEAST = "Aspect de la b\195\170te";
|
HEALBOT_ASPECT_OF_THE_BEAST = "Aspect de la b\195\170te";
|
||||||
|
|
||||||
HEALBOT_STEALTH = "Camouflage";
|
HEALBOT_STEALTH = "Camouflage";
|
||||||
HEALBOT_BLADE_FLURRY = "D\195\169luge de lames";
|
HEALBOT_BLADE_FLURRY = "D\195\169luge de lames";
|
||||||
HEALBOT_EVASION = "Evasion";
|
HEALBOT_EVASION = "Evasion";
|
||||||
HEALBOT_SPRINT = "Sprint";
|
HEALBOT_SPRINT = "Sprint";
|
||||||
HEALBOT_SLICE_AND_DICE = "D\195\169biter";
|
HEALBOT_SLICE_AND_DICE = "D\195\169biter";
|
||||||
|
|
||||||
HEALBOT_FROST_ARMOR = "Armure de givre";
|
HEALBOT_FROST_ARMOR = "Armure de givre";
|
||||||
HEALBOT_ICE_ARMOR = "Armure de glace";
|
HEALBOT_ICE_ARMOR = "Armure de glace";
|
||||||
HEALBOT_MAGE_ARMOR = "Armure du mage";
|
HEALBOT_MAGE_ARMOR = "Armure du mage";
|
||||||
HEALBOT_MANA_SHIELD = "Bouclier de mana";
|
HEALBOT_MANA_SHIELD = "Bouclier de mana";
|
||||||
HEALBOT_ICE_BARRIER = "Barri\195\168re de glace";
|
HEALBOT_ICE_BARRIER = "Barri\195\168re de glace";
|
||||||
HEALBOT_FIRE_WARD = "Gardien de feu";
|
HEALBOT_FIRE_WARD = "Gardien de feu";
|
||||||
HEALBOT_FROST_WARD = "Gardien de givre";
|
HEALBOT_FROST_WARD = "Gardien de givre";
|
||||||
|
|
||||||
HEALBOT_GREATER_BLESSING_OF_SALVATION = "B\195\169n\195\169diction de salut sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_SALVATION = "B\195\169n\195\169diction de salut sup\195\169rieure";
|
||||||
HEALBOT_GREATER_BLESSING_OF_MIGHT = "B\195\169n\195\169diction de puissance sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_MIGHT = "B\195\169n\195\169diction de puissance sup\195\169rieure";
|
||||||
HEALBOT_GREATER_BLESSING_OF_WISDOM = "B\195\169n\195\169diction de sagesse sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_WISDOM = "B\195\169n\195\169diction de sagesse sup\195\169rieure";
|
||||||
HEALBOT_GREATER_BLESSING_OF_KINGS = "B\195\169n\195\169diction des rois sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_KINGS = "B\195\169n\195\169diction des rois sup\195\169rieure";
|
||||||
HEALBOT_GREATER_BLESSING_OF_LIGHT = "B\195\169n\195\169diction de lumi\195\168re sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_LIGHT = "B\195\169n\195\169diction de lumi\195\168re sup\195\169rieure";
|
||||||
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "B\195\169n\195\169diction du sanctuaire sup\195\169rieure";
|
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "B\195\169n\195\169diction du sanctuaire sup\195\169rieure";
|
||||||
HEALBOT_RIGHTEOUS_FURY = "Fureur vertueuse";
|
HEALBOT_RIGHTEOUS_FURY = "Fureur vertueuse";
|
||||||
|
|
||||||
HEALBOT_SHADOWFORM = "Forme d'Ombre";
|
HEALBOT_SHADOWFORM = "Forme d'Ombre";
|
||||||
|
|
||||||
HEALBOT_BARKSKIN = "Peau d'\195\169corce";
|
HEALBOT_BARKSKIN = "Peau d'\195\169corce";
|
||||||
HEALBOT_NATURES_GRASP = "Emprise de la nature";
|
HEALBOT_NATURES_GRASP = "Emprise de la nature";
|
||||||
|
|
||||||
HEALBOT_LIGHTNING_SHIELD = "Bouclier de foudre";
|
HEALBOT_LIGHTNING_SHIELD = "Bouclier de foudre";
|
||||||
HEALBOT_WATER_SHIELD = "Bouclier d'eau";
|
HEALBOT_WATER_SHIELD = "Bouclier d'eau";
|
||||||
HEALBOT_WATER_WALKING = "Marche sur l'eau";
|
HEALBOT_WATER_WALKING = "Marche sur l'eau";
|
||||||
HEALBOT_WATER_BREATHING = "Respiration aquatique";
|
HEALBOT_WATER_BREATHING = "Respiration aquatique";
|
||||||
|
|
||||||
HEALBOT_RESURRECTION = "R\195\169surrection";
|
HEALBOT_RESURRECTION = "R\195\169surrection";
|
||||||
@@ -144,7 +144,7 @@ HEALBOT_ANCESTRALSPIRIT = "Esprit Ancestral";
|
|||||||
HEALBOT_PURIFY = "Purification";
|
HEALBOT_PURIFY = "Purification";
|
||||||
HEALBOT_CLEANSE = "Epuration";
|
HEALBOT_CLEANSE = "Epuration";
|
||||||
HEALBOT_CURE_POISON = "Gu\195\169rison du poison";
|
HEALBOT_CURE_POISON = "Gu\195\169rison du poison";
|
||||||
HEALBOT_REMOVE_CURSE = "D\195\169livrance de la mal\195\169diction";
|
HEALBOT_REMOVE_CURSE = "D\195\169livrance de la mal\195\169diction";
|
||||||
HEALBOT_REMOVE_LESSER_CURSE= "D\195\169livrance de la mal\195\169diction mineure";
|
HEALBOT_REMOVE_LESSER_CURSE= "D\195\169livrance de la mal\195\169diction mineure";
|
||||||
HEALBOT_ABOLISH_POISON = "Abolir le poison";
|
HEALBOT_ABOLISH_POISON = "Abolir le poison";
|
||||||
HEALBOT_CURE_DISEASE = "Gu\195\169rison des maladies";
|
HEALBOT_CURE_DISEASE = "Gu\195\169rison des maladies";
|
||||||
@@ -400,3 +400,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY = "Debuff visual:";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_BAR = "Whole Bar";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_FRAME = "Frame / Border";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOW = "Glow Effect";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOWFRAME = "Glow + Frame";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_NONE = "Disabled";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_ANIMATED = "Animated";
|
||||||
|
|||||||
+61
-53
@@ -66,58 +66,58 @@ HEALBOT_INNER_FIRE = "내면의 열정";
|
|||||||
HEALBOT_FEAR_WARD = "공포의 결계";
|
HEALBOT_FEAR_WARD = "공포의 결계";
|
||||||
HEALBOT_ENLIGHTEN = "Enlighten";
|
HEALBOT_ENLIGHTEN = "Enlighten";
|
||||||
HEALBOT_MARK_OF_THE_WILD = "야생의 징표";
|
HEALBOT_MARK_OF_THE_WILD = "야생의 징표";
|
||||||
HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
|
HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
|
||||||
|
|
||||||
HEALBOT_BATTLE_SHOUT = "전투의 외침";
|
HEALBOT_BATTLE_SHOUT = "전투의 외침";
|
||||||
HEALBOT_BLOODRAGE = "피의 분노";
|
HEALBOT_BLOODRAGE = "피의 분노";
|
||||||
HEALBOT_BERSERKER_RAGE = "광전사의 격노";
|
HEALBOT_BERSERKER_RAGE = "광전사의 격노";
|
||||||
|
|
||||||
HEALBOT_DEMON_SKIN = "악마의 피부";
|
HEALBOT_DEMON_SKIN = "악마의 피부";
|
||||||
HEALBOT_DEMON_ARMOR = "악마의 갑옷";
|
HEALBOT_DEMON_ARMOR = "악마의 갑옷";
|
||||||
HEALBOT_UNENDING_BREATH = "영원의 숨결";
|
HEALBOT_UNENDING_BREATH = "영원의 숨결";
|
||||||
HEALBOT_DETECT_LESSER_INVISIBILITY = "하급 투명체 감지";
|
HEALBOT_DETECT_LESSER_INVISIBILITY = "하급 투명체 감지";
|
||||||
HEALBOT_DETECT_INVISIBILITY = "투명체 감지";
|
HEALBOT_DETECT_INVISIBILITY = "투명체 감지";
|
||||||
HEALBOT_SHADOW_WARD = "암흑계 수호";
|
HEALBOT_SHADOW_WARD = "암흑계 수호";
|
||||||
HEALBOT_SOULSTONE_RESURRECTION = "영혼석 부활";
|
HEALBOT_SOULSTONE_RESURRECTION = "영혼석 부활";
|
||||||
HEALBOT_FIRE_SHIELD = "불의 방패";
|
HEALBOT_FIRE_SHIELD = "불의 방패";
|
||||||
|
|
||||||
HEALBOT_TRUESHOT_AURA = "정밀함의 오라";
|
HEALBOT_TRUESHOT_AURA = "정밀함의 오라";
|
||||||
HEALBOT_ASPECT_OF_THE_HAWK = "매의 상";
|
HEALBOT_ASPECT_OF_THE_HAWK = "매의 상";
|
||||||
HEALBOT_ASPECT_OF_THE_MONKEY = "원숭이의 상";
|
HEALBOT_ASPECT_OF_THE_MONKEY = "원숭이의 상";
|
||||||
HEALBOT_ASPECT_OF_THE_CHEETAH = "치타의 상";
|
HEALBOT_ASPECT_OF_THE_CHEETAH = "치타의 상";
|
||||||
HEALBOT_ASPECT_OF_THE_PACK = "치타 무리의 상";
|
HEALBOT_ASPECT_OF_THE_PACK = "치타 무리의 상";
|
||||||
HEALBOT_ASPECT_OF_THE_WILD = "야생의 상";
|
HEALBOT_ASPECT_OF_THE_WILD = "야생의 상";
|
||||||
HEALBOT_ASPECT_OF_THE_BEAST = "야수의 상";
|
HEALBOT_ASPECT_OF_THE_BEAST = "야수의 상";
|
||||||
|
|
||||||
HEALBOT_STEALTH = "은신";
|
HEALBOT_STEALTH = "은신";
|
||||||
HEALBOT_BLADE_FLURRY = "폭풍의 칼날";
|
HEALBOT_BLADE_FLURRY = "폭풍의 칼날";
|
||||||
HEALBOT_EVASION = "회피";
|
HEALBOT_EVASION = "회피";
|
||||||
HEALBOT_SPRINT = "전력 질주";
|
HEALBOT_SPRINT = "전력 질주";
|
||||||
HEALBOT_SLICE_AND_DICE = "난도질";
|
HEALBOT_SLICE_AND_DICE = "난도질";
|
||||||
|
|
||||||
HEALBOT_FROST_ARMOR = "서리 갑옷";
|
HEALBOT_FROST_ARMOR = "서리 갑옷";
|
||||||
HEALBOT_ICE_ARMOR = "얼음 갑옷";
|
HEALBOT_ICE_ARMOR = "얼음 갑옷";
|
||||||
HEALBOT_MAGE_ARMOR = "마법사 갑옷";
|
HEALBOT_MAGE_ARMOR = "마법사 갑옷";
|
||||||
HEALBOT_MANA_SHIELD = "마나 보호막";
|
HEALBOT_MANA_SHIELD = "마나 보호막";
|
||||||
HEALBOT_ICE_BARRIER = "얼음 보호막";
|
HEALBOT_ICE_BARRIER = "얼음 보호막";
|
||||||
HEALBOT_FIRE_WARD = "화염계 수호";
|
HEALBOT_FIRE_WARD = "화염계 수호";
|
||||||
HEALBOT_FROST_WARD = "냉기계 수호";
|
HEALBOT_FROST_WARD = "냉기계 수호";
|
||||||
|
|
||||||
HEALBOT_GREATER_BLESSING_OF_MIGHT = "상급 힘의 축복";
|
HEALBOT_GREATER_BLESSING_OF_MIGHT = "상급 힘의 축복";
|
||||||
HEALBOT_GREATER_BLESSING_OF_WISDOM = "상급 지혜의 축복";
|
HEALBOT_GREATER_BLESSING_OF_WISDOM = "상급 지혜의 축복";
|
||||||
HEALBOT_GREATER_BLESSING_OF_KINGS = "상급 왕의 축복";
|
HEALBOT_GREATER_BLESSING_OF_KINGS = "상급 왕의 축복";
|
||||||
HEALBOT_GREATER_BLESSING_OF_LIGHT = "상급 빛의 축복";
|
HEALBOT_GREATER_BLESSING_OF_LIGHT = "상급 빛의 축복";
|
||||||
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "상급 성역의 축복";
|
HEALBOT_GREATER_BLESSING_OF_SANCTUARY = "상급 성역의 축복";
|
||||||
HEALBOT_RIGHTEOUS_FURY = "정의의 격노";
|
HEALBOT_RIGHTEOUS_FURY = "정의의 격노";
|
||||||
|
|
||||||
HEALBOT_SHADOWFORM = "어둠의 형상";
|
HEALBOT_SHADOWFORM = "어둠의 형상";
|
||||||
|
|
||||||
HEALBOT_BARKSKIN = "나무 껍질";
|
HEALBOT_BARKSKIN = "나무 껍질";
|
||||||
HEALBOT_NATURES_GRASP = "자연의 파악";
|
HEALBOT_NATURES_GRASP = "자연의 파악";
|
||||||
|
|
||||||
HEALBOT_LIGHTNING_SHIELD = "번개 보호막";
|
HEALBOT_LIGHTNING_SHIELD = "번개 보호막";
|
||||||
HEALBOT_WATER_SHIELD = "물의 보호막";
|
HEALBOT_WATER_SHIELD = "물의 보호막";
|
||||||
HEALBOT_WATER_WALKING = "수면 보행";
|
HEALBOT_WATER_WALKING = "수면 보행";
|
||||||
HEALBOT_WATER_BREATHING = "수중 호흡";
|
HEALBOT_WATER_BREATHING = "수중 호흡";
|
||||||
|
|
||||||
HEALBOT_RESURRECTION = "부활";
|
HEALBOT_RESURRECTION = "부활";
|
||||||
@@ -128,7 +128,7 @@ HEALBOT_WATER_BREATHING = "수중 호흡";
|
|||||||
HEALBOT_PURIFY = "정화";
|
HEALBOT_PURIFY = "정화";
|
||||||
HEALBOT_CLEANSE = "정화";
|
HEALBOT_CLEANSE = "정화";
|
||||||
HEALBOT_CURE_POISON = "해독";
|
HEALBOT_CURE_POISON = "해독";
|
||||||
HEALBOT_REMOVE_CURSE = "저주 해제";
|
HEALBOT_REMOVE_CURSE = "저주 해제";
|
||||||
HEALBOT_REMOVE_LESSER_CURSE = "하급 저주 해제";
|
HEALBOT_REMOVE_LESSER_CURSE = "하급 저주 해제";
|
||||||
HEALBOT_ABOLISH_POISON = "독 해제";
|
HEALBOT_ABOLISH_POISON = "독 해제";
|
||||||
HEALBOT_CURE_DISEASE = "질병 치료";
|
HEALBOT_CURE_DISEASE = "질병 치료";
|
||||||
@@ -394,3 +394,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY = "Debuff visual:";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_BAR = "Whole Bar";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_FRAME = "Frame / Border";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOW = "Glow Effect";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOWFRAME = "Glow + Frame";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_NONE = "Disabled";
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_ANIMATED = "Animated";
|
||||||
|
|||||||
@@ -341,6 +341,7 @@ function HealBot_Options_OnShow(this)
|
|||||||
HealBot_Options_CDCButRight_Refresh()
|
HealBot_Options_CDCButRight_Refresh()
|
||||||
HealBot_SetCDCBarColours()
|
HealBot_SetCDCBarColours()
|
||||||
HealBot_Options_CDCMonitor_Refresh()
|
HealBot_Options_CDCMonitor_Refresh()
|
||||||
|
HealBot_Options_CDCOverlay_Refresh()
|
||||||
HealBot_ComboButtons_Button_OnClick(nil,HealBot_Options_ComboButtons_Button);
|
HealBot_ComboButtons_Button_OnClick(nil,HealBot_Options_ComboButtons_Button);
|
||||||
HealBot_Options_EnableHealthy:SetChecked(HealBot_Config.EnableHealthy);
|
HealBot_Options_EnableHealthy:SetChecked(HealBot_Config.EnableHealthy);
|
||||||
HealBot_Options_NewSkinb:Disable();
|
HealBot_Options_NewSkinb:Disable();
|
||||||
|
|||||||
@@ -43,6 +43,51 @@ function HealBot_WarningSound_OnClick(this,id)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- HealBot_Options_CDCOverlay_DropDown: UI handler for DropDown options panel.
|
||||||
|
function HealBot_Options_CDCOverlay_DropDown()
|
||||||
|
local list = {
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_BAR or "Whole Bar",
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_FRAME or "Frame / Border",
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOW or "Glow Effect",
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_GLOWFRAME or "Glow + Frame",
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_ANIMATED or "Animated",
|
||||||
|
HEALBOT_OPTIONS_CDCOVERLAY_NONE or "Disabled",
|
||||||
|
};
|
||||||
|
for i=1, getn(list), 1 do
|
||||||
|
local info = {};
|
||||||
|
info.text = list[i];
|
||||||
|
info.func = HealBot_Options_CDCOverlay_OnSelect;
|
||||||
|
UIDropDownMenu_AddButton(info);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- HealBot_Options_CDCOverlay_Initialize: UI handler for Initialize options panel.
|
||||||
|
function HealBot_Options_CDCOverlay_Initialize()
|
||||||
|
UIDropDownMenu_Initialize(HealBot_Options_CDCOverlay, HealBot_Options_CDCOverlay_DropDown)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- HealBot_Options_CDCOverlay_Refresh: UI handler for Refresh options panel.
|
||||||
|
function HealBot_Options_CDCOverlay_Refresh(onselect)
|
||||||
|
if not HealBot_Config.CDCOverlay then HealBot_Config.CDCOverlay = 1 end
|
||||||
|
if not onselect then HealBot_Options_CDCOverlay_Initialize() end
|
||||||
|
HealBot_UIDropDownMenu_SetSelectedID(HealBot_Options_CDCOverlay, HealBot_Config.CDCOverlay)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- HealBot_Options_CDCOverlay_OnLoad: UI handler for OnLoad options panel.
|
||||||
|
function HealBot_Options_CDCOverlay_OnLoad()
|
||||||
|
UIDropDownMenu_Initialize(this, HealBot_Options_CDCOverlay_DropDown)
|
||||||
|
UIDropDownMenu_SetWidth(120, this)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- HealBot_Options_CDCOverlay_OnSelect: UI handler for OnSelect options panel.
|
||||||
|
function HealBot_Options_CDCOverlay_OnSelect()
|
||||||
|
HealBot_Config.CDCOverlay = this:GetID()
|
||||||
|
HealBot_Options_CDCOverlay_Refresh(true)
|
||||||
|
if HealBot_Action_EnableButtons then
|
||||||
|
HealBot_Action_EnableButtons()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel.
|
-- HealBot_Options_CDCMonitor_DropDown: UI handler for DropDown options panel.
|
||||||
function HealBot_Options_CDCMonitor_DropDown()
|
function HealBot_Options_CDCMonitor_DropDown()
|
||||||
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
|
for i=1, getn(HealBot_Options_EmergencyFilter_List), 1 do
|
||||||
|
|||||||
+37
-10
@@ -132,7 +132,7 @@
|
|||||||
|
|
||||||
<Frame name="HealBot_Options_CureDispelCleanseCol">
|
<Frame name="HealBot_Options_CureDispelCleanseCol">
|
||||||
<Size>
|
<Size>
|
||||||
<AbsDimension y="95"/>
|
<AbsDimension y="125"/>
|
||||||
</Size>
|
</Size>
|
||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPLEFT">
|
<Anchor point="TOPLEFT">
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
</Anchor>
|
</Anchor>
|
||||||
<Anchor point="TOPRIGHT">
|
<Anchor point="TOPRIGHT">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-21" y="-190"/>
|
<AbsDimension x="-21" y="-185"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOP">
|
<Anchor point="TOP">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="0" y="-12" />
|
<AbsDimension x="0" y="-10" />
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -160,6 +160,33 @@
|
|||||||
</Layer>
|
</Layer>
|
||||||
</Layers>
|
</Layers>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
<Frame name="HealBot_Options_CDCOverlay" inherits="UIDropDownMenuTemplate" id="1">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="TOP" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="40" y="-28" />
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
<Layers>
|
||||||
|
<Layer level="OVERLAY">
|
||||||
|
<FontString inherits="GameFontNormalSmall" text="HEALBOT_OPTIONS_CDCOVERLAY">
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="RIGHT" relativeTo="HealBot_Options_CDCOverlay" relativePoint="LEFT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="-5" y="3"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
|
</FontString>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
<Scripts>
|
||||||
|
<OnLoad>
|
||||||
|
HealBot_Options_CDCOverlay_OnLoad(this)
|
||||||
|
</OnLoad>
|
||||||
|
</Scripts>
|
||||||
|
</Frame>
|
||||||
<Button name="HealBot_DiseaseColorpickb">
|
<Button name="HealBot_DiseaseColorpickb">
|
||||||
<Size>
|
<Size>
|
||||||
<AbsDimension x="130" y="20"/>
|
<AbsDimension x="130" y="20"/>
|
||||||
@@ -167,7 +194,7 @@
|
|||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-2" y="-35"/>
|
<AbsDimension x="-2" y="-62"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -182,7 +209,7 @@
|
|||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-2" y="-35"/>
|
<AbsDimension x="-2" y="-62"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -259,7 +286,7 @@
|
|||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-2" y="-65"/>
|
<AbsDimension x="-2" y="-92"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -274,7 +301,7 @@
|
|||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
<Anchor point="TOPRIGHT" relativeTo="HealBot_Options_CureDispelCleanseCol" relativePoint="TOP">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-2" y="-65"/>
|
<AbsDimension x="-2" y="-92"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
@@ -346,17 +373,17 @@
|
|||||||
|
|
||||||
<Frame name="HealBot_Options_CureDispelCleanseWarn">
|
<Frame name="HealBot_Options_CureDispelCleanseWarn">
|
||||||
<Size>
|
<Size>
|
||||||
<AbsDimension y="120"/>
|
<AbsDimension y="115"/>
|
||||||
</Size>
|
</Size>
|
||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="TOPLEFT">
|
<Anchor point="TOPLEFT">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="21" y="-285"/>
|
<AbsDimension x="21" y="-318"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
<Anchor point="TOPRIGHT">
|
<Anchor point="TOPRIGHT">
|
||||||
<Offset>
|
<Offset>
|
||||||
<AbsDimension x="-21" y="-290"/>
|
<AbsDimension x="-21" y="-318"/>
|
||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
|
|||||||
+125
-1
@@ -30,7 +30,8 @@ end
|
|||||||
-- HealBot_HealthColor: Computes health bar RGBA based on debuffs and class.
|
-- HealBot_HealthColor: Computes health bar RGBA based on debuffs and class.
|
||||||
function HealBot_HealthColor(unit, hlth, maxhlth)
|
function HealBot_HealthColor(unit, hlth, maxhlth)
|
||||||
local cached_debuff = HealBot_UnitDebuff[unit]
|
local cached_debuff = HealBot_UnitDebuff[unit]
|
||||||
if cached_debuff then
|
local overlayMode = HealBot_Config.CDCOverlay or 1
|
||||||
|
if cached_debuff and overlayMode == 1 then
|
||||||
local color = HealBot_Config.CDCBarColour[cached_debuff]
|
local color = HealBot_Config.CDCBarColour[cached_debuff]
|
||||||
if color then
|
if color then
|
||||||
local dr = color.R
|
local dr = color.R
|
||||||
@@ -243,6 +244,103 @@ function HealBot_Action_EnableButton(button)
|
|||||||
bar:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
bar:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
||||||
bar2:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
bar2:SetStatusBarColor(r, g, b, HealBot_Config.bardisa[HealBot_Config.Current_Skin]);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not button.debuffOverlay then
|
||||||
|
button.debuffOverlay = getglobal(button:GetName() .. "DebuffOverlay")
|
||||||
|
end
|
||||||
|
if not button.debuffGlow then
|
||||||
|
button.debuffGlow = getglobal(button:GetName() .. "DebuffOverlayGlow")
|
||||||
|
end
|
||||||
|
|
||||||
|
if button.debuffOverlay then
|
||||||
|
local debuffType = HealBot_UnitDebuff[unit]
|
||||||
|
local isDead = state.isDead or state.isGhost or UnitIsDeadOrGhost(unit)
|
||||||
|
local overlayMode = HealBot_Config.CDCOverlay or 1
|
||||||
|
|
||||||
|
if debuffType and not isDead and overlayMode > 1 and overlayMode < 6 then
|
||||||
|
local color = HealBot_Config.CDCBarColour[debuffType]
|
||||||
|
local cr, cg, cb = 1, 0, 0
|
||||||
|
if color then
|
||||||
|
cr, cg, cb = color.R, color.G, color.B
|
||||||
|
end
|
||||||
|
|
||||||
|
button.debuffOverlay:SetFrameLevel(bar:GetFrameLevel() + 2)
|
||||||
|
button.debuffOverlay:Show()
|
||||||
|
|
||||||
|
local alphaBorder = 1.0
|
||||||
|
local alphaOverlay = 1.0
|
||||||
|
if not button:IsEnabled() then
|
||||||
|
local disAlpha = HealBot_Config.bardisa[HealBot_Config.Current_Skin] or 0.4
|
||||||
|
alphaBorder = disAlpha
|
||||||
|
alphaOverlay = disAlpha
|
||||||
|
end
|
||||||
|
|
||||||
|
if overlayMode == 2 then
|
||||||
|
button.isAnimatedDebuff = false
|
||||||
|
button.debuffOverlay:SetBackdropBorderColor(cr, cg, cb, alphaBorder)
|
||||||
|
if button.debuffGlow then
|
||||||
|
button.debuffGlow:Hide()
|
||||||
|
button.debuffGlow:SetTexCoord(0, 1, 0, 1)
|
||||||
|
end
|
||||||
|
elseif overlayMode == 3 then
|
||||||
|
button.isAnimatedDebuff = false
|
||||||
|
button.debuffOverlay:SetBackdropBorderColor(0, 0, 0, 0)
|
||||||
|
if button.debuffGlow then
|
||||||
|
local glowTex = HealBot_Config.CDCOverlayTexture or "Interface\\AddOns\\HealBotBlue\\Images\\glow1.tga"
|
||||||
|
button.debuffGlow:SetTexture(glowTex)
|
||||||
|
button.debuffGlow:SetBlendMode("BLEND")
|
||||||
|
button.debuffGlow:SetTexCoord(0, 1, 0, 1)
|
||||||
|
button.debuffGlow:SetVertexColor(cr, cg, cb, alphaOverlay)
|
||||||
|
button.debuffGlow:Show()
|
||||||
|
end
|
||||||
|
elseif overlayMode == 4 then
|
||||||
|
button.isAnimatedDebuff = false
|
||||||
|
button.debuffOverlay:SetBackdropBorderColor(cr, cg, cb, alphaBorder)
|
||||||
|
if button.debuffGlow then
|
||||||
|
local glowTex = HealBot_Config.CDCOverlayTexture or "Interface\\AddOns\\HealBotBlue\\Images\\glow1.tga"
|
||||||
|
button.debuffGlow:SetTexture(glowTex)
|
||||||
|
button.debuffGlow:SetBlendMode("BLEND")
|
||||||
|
button.debuffGlow:SetTexCoord(0, 1, 0, 1)
|
||||||
|
button.debuffGlow:SetVertexColor(cr, cg, cb, alphaOverlay)
|
||||||
|
button.debuffGlow:Show()
|
||||||
|
end
|
||||||
|
elseif overlayMode == 5 then -- Animated
|
||||||
|
button.debuffOverlay:SetBackdropBorderColor(0, 0, 0, 0)
|
||||||
|
if button.debuffGlow then
|
||||||
|
local glowTex
|
||||||
|
if debuffType == HEALBOT_POISON_en then
|
||||||
|
glowTex = "Interface\\AddOns\\HealBotBlue\\Images\\debuff_poison.tga"
|
||||||
|
button.isAnimatedDebuff = true
|
||||||
|
elseif debuffType == HEALBOT_CURSE_en then
|
||||||
|
glowTex = "Interface\\AddOns\\HealBotBlue\\Images\\debuff_curse.tga"
|
||||||
|
button.isAnimatedDebuff = true
|
||||||
|
elseif debuffType == HEALBOT_DISEASE_en then
|
||||||
|
glowTex = "Interface\\AddOns\\HealBotBlue\\Images\\debuff_disease.tga"
|
||||||
|
button.isAnimatedDebuff = true
|
||||||
|
elseif debuffType == HEALBOT_MAGIC_en then
|
||||||
|
glowTex = "Interface\\AddOns\\HealBotBlue\\Images\\debuff_magic.tga"
|
||||||
|
button.isAnimatedDebuff = true
|
||||||
|
else
|
||||||
|
glowTex = HealBot_Config.CDCOverlayTexture or "Interface\\AddOns\\HealBotBlue\\Images\\glow1.tga"
|
||||||
|
button.isAnimatedDebuff = false
|
||||||
|
button.debuffGlow:SetTexCoord(0, 1, 0, 1)
|
||||||
|
end
|
||||||
|
button.debuffGlow:SetTexture(glowTex)
|
||||||
|
button.debuffGlow:SetBlendMode("BLEND")
|
||||||
|
button.debuffGlow:SetVertexColor(cr, cg, cb, alphaOverlay)
|
||||||
|
button.debuffGlow:Show()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
button.isAnimatedDebuff = false
|
||||||
|
button.debuffOverlay:Hide()
|
||||||
|
if button.debuffGlow then
|
||||||
|
button.debuffGlow:Hide()
|
||||||
|
button.debuffGlow:SetTexCoord(0, 1, 0, 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local healthTextOpt = HealBot_Config.ShowHealthText or 0
|
local healthTextOpt = HealBot_Config.ShowHealthText or 0
|
||||||
local displayText = name
|
local displayText = name
|
||||||
if healthTextOpt == 1 then
|
if healthTextOpt == 1 then
|
||||||
@@ -380,6 +478,32 @@ function HealBot_Action_EnableButton(button)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local HealBot_AnimTimer = 0
|
||||||
|
local HealBot_AnimFrame = 0
|
||||||
|
|
||||||
|
-- HealBot_Action_UpdateDebuffAnimation: Advances animated overlay frames on active debuffed buttons.
|
||||||
|
function HealBot_Action_UpdateDebuffAnimation(elapsed)
|
||||||
|
if not HealBot_Config or HealBot_Config.CDCOverlay ~= 5 then return end
|
||||||
|
|
||||||
|
HealBot_AnimTimer = HealBot_AnimTimer + elapsed
|
||||||
|
if HealBot_AnimTimer < 0.066 then return end -- ~15 FPS
|
||||||
|
HealBot_AnimTimer = 0
|
||||||
|
|
||||||
|
HealBot_AnimFrame = math.mod(HealBot_AnimFrame + 1, 16)
|
||||||
|
local col = math.mod(HealBot_AnimFrame, 2)
|
||||||
|
local row = math.floor(HealBot_AnimFrame / 2)
|
||||||
|
local left = col * 0.5
|
||||||
|
local right = left + 0.5
|
||||||
|
local top = row * 0.125
|
||||||
|
local bottom = top + 0.125
|
||||||
|
|
||||||
|
for _, button in pairs(HealBot_Action_HealButtons) do
|
||||||
|
if button and button.isAnimatedDebuff and button.debuffOverlay and button.debuffOverlay:IsVisible() and button.debuffGlow and button.debuffGlow:IsVisible() then
|
||||||
|
button.debuffGlow:SetTexCoord(left, right, top, bottom)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- HealBot_Action_EnableButtons: Internal utility: HealBot_Action_EnableButtons
|
-- HealBot_Action_EnableButtons: Internal utility: HealBot_Action_EnableButtons
|
||||||
function HealBot_Action_EnableButtons()
|
function HealBot_Action_EnableButtons()
|
||||||
for index, button in pairs(HealBot_Action_HealButtons) do
|
for index, button in pairs(HealBot_Action_HealButtons) do
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
@@ -33,7 +33,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
* **Blizzard Party Frame Toggle:** Toggle to automatically hide Blizzard's default party frames when in a group in favor of HealBot's layouts.
|
* **Blizzard Party Frame Toggle:** Toggle to automatically hide Blizzard's default party frames when in a group in favor of HealBot's layouts.
|
||||||
* **HoT & Buff Tracking:** Intelligently track active HoTs and buffs directly on the grid frames with custom icons (e.g., Renew, Rejuvenation, Regrowth, Fear Ward). Optional extended HoT timer tracker togglable below frames.
|
* **HoT & Buff Tracking:** Intelligently track active HoTs and buffs directly on the grid frames with custom icons (e.g., Renew, Rejuvenation, Regrowth, Fear Ward). Optional extended HoT timer tracker togglable below frames.
|
||||||
* **Mana Bars for Healers:** Enable and position mini-mana status bars next to unit frames, toggleable to display for healer classes only or all classes.
|
* **Mana Bars for Healers:** Enable and position mini-mana status bars next to unit frames, toggleable to display for healer classes only or all classes.
|
||||||
* **Curse & Debuff Warning (CDC):** Dynamic visual and audio alerts for cleanable debuffs. Customizable colors based on debuff type (Curse, Poison, Disease, Magic).
|
* **Curse & Debuff Warning (CDC):** Dynamic visual and audio alerts for cleanable debuffs. Customizable colors based on debuff type (Curse, Poison, Disease, Magic), with selectable display modes: classic Whole Bar tinting, Frame / Border highlights, Glow Overlays, and animated flipbooks (poison drips, rising curse flames, disease, magic).
|
||||||
* **Pet & Familiar Frames:** Dedicated, toggleable frames for tracking and healing player pets.
|
* **Pet & Familiar Frames:** Dedicated, toggleable frames for tracking and healing player pets.
|
||||||
* **Customizable Health Text:** Dynamic unit health display (Name Only, Percentage, Real Health, or Health Deficit).
|
* **Customizable Health Text:** Dynamic unit health display (Name Only, Percentage, Real Health, or Health Deficit).
|
||||||
* **Non-Mana Resource Tracking:** Track Rage, Energy, and Focus for non-mana classes.
|
* **Non-Mana Resource Tracking:** Track Rage, Energy, and Focus for non-mana classes.
|
||||||
@@ -51,9 +51,12 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
### Change Log
|
### Change Log
|
||||||
|
|
||||||
**v1.7.7**
|
**v1.7.7**
|
||||||
|
* **Bug Fix - Line of Sight & Target Range Resolution:** Resolved Line of Sight regression where the target bar failed to update or dim when obstructed. Fixed `UnitInLineOfSight` parameter mismatch with ClassicAPI (1-arg signature required), added multi-tier fallback chaining to `UnitXP`, and enforced `CheckInteractDistance` on `target` units during Vanilla map coordinate fallbacks. Added range validation to non-healer class bar evaluation.
|
||||||
|
* **Bug Fix - Out-of-Range Bar Glow on Modifier Press:** Decoupled unit bar enable/range evaluation from physical modifier keys (`IsShiftKeyDown()`, etc.) in `HealBot_CanHeal`, preventing out-of-range and obstructed units from falsely brightening to full alpha when holding Shift/Ctrl/Alt. Enforced range checking across all action patterns (`"Target"`, macros, items, scripts) in `HealBot_GetHealSpell`, and fixed table key case sensitivity on spell range extraction (`Range` vs `range`).
|
||||||
* **Feature - HoT Timer Display Modes & Positioning:** Added configurable HoT timer list position dropdown (`Below`, `Above`, `Left`, `Right`) relative to raid frames. Added `Icon Overlay` mode rendering countdown timers directly on health bar HoT icons, and a `Both` mode allowing simultaneous timer list and on-bar icon countdown numbers. Excluded pets from HoT timer lists and overlays. Optimized expiration lookups with O(1) texture-to-spell mappings.
|
* **Feature - HoT Timer Display Modes & Positioning:** Added configurable HoT timer list position dropdown (`Below`, `Above`, `Left`, `Right`) relative to raid frames. Added `Icon Overlay` mode rendering countdown timers directly on health bar HoT icons, and a `Both` mode allowing simultaneous timer list and on-bar icon countdown numbers. Excluded pets from HoT timer lists and overlays. Optimized expiration lookups with O(1) texture-to-spell mappings.
|
||||||
* **Refactor & Feature - Unified Aura & HoT Tracking:** Unified bar icons and HoT timers into a master dictionary (`HealBot_TrackedAuras`) in `HealBot_Data.lua`. Added Weakened Soul, Fear Ward, Abolish Disease, and Abolish Poison to active timer bars with localized client support and debuff-aware pruning.
|
* **Refactor & Feature - Unified Aura & HoT Tracking:** Unified bar icons and HoT timers into a master dictionary (`HealBot_TrackedAuras`) in `HealBot_Data.lua`. Added Weakened Soul, Fear Ward, Abolish Disease, and Abolish Poison to active timer bars with localized client support and debuff-aware pruning.
|
||||||
* **Bug Fix - HoT Tracking Premature Deletion & GUID Resolution:** Resolved issue where synchronous aura scans on spell cast prematurely purged active HoTs before server buff packets arrived. Fixed HoT timer list showing raw GUID strings instead of names by ensuring GUID caches populate immediately on `PLAYER_ENTERING_WORLD` (even when solo) and adding multi-tier name resolution fallbacks. Fixed unit bar icon countdown numbers not rendering by adding explicit overlay frame show triggers and normalized texture lookup fallbacks.
|
* **Bug Fix - HoT Tracking Premature Deletion & GUID Resolution:** Resolved issue where synchronous aura scans on spell cast prematurely purged active HoTs before server buff packets arrived. Fixed HoT timer list showing raw GUID strings instead of names by ensuring GUID caches populate immediately on `PLAYER_ENTERING_WORLD` (even when solo) and adding multi-tier name resolution fallbacks. Fixed unit bar icon countdown numbers not rendering by adding explicit overlay frame show triggers and normalized texture lookup fallbacks.
|
||||||
|
* **Feature - Debuff Visual Overlays & Animated Sprite Sheets:** Added selectable visual styles for Cure / Dispel / Cleanse (CDC) debuff alerts in Options -> Cure (`Whole Bar`, `Frame / Border`, `Glow Overlay`, `Glow + Frame`, `Animated`, `Disabled`). Animated flipbook textures for Poison (dripping slime teardrops), Curse (rising shadow wisps), Disease (creeping roots), and Magic(arcane sigils turning). Integrated lightweight, throttled (15 FPS) UV sprite animation engine directly into `HealBot_OnUpdate` with zero garbage allocation.
|
||||||
|
|
||||||
**v1.7.6**
|
**v1.7.6**
|
||||||
* **Feature - All-Class Support & Raid Frame Replacement:** Removed legacy restriction that disabled HealBot event listeners and UI frames for classes without native healing spells. HealBot now initializes and functions as a full party/raid frame replacement for all classes (Warrior, Mage, Rogue, Hunter, Warlock).
|
* **Feature - All-Class Support & Raid Frame Replacement:** Removed legacy restriction that disabled HealBot event listeners and UI frames for classes without native healing spells. HealBot now initializes and functions as a full party/raid frame replacement for all classes (Warrior, Mage, Rogue, Hunter, Warlock).
|
||||||
@@ -166,6 +169,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
|||||||
* **Memory Optimization:** Fixed a significant memory leak where tracking tables were being repeatedly allocated every tick during aura scanning, and replaced `table.foreach` with pairs loops to avoid GC spikes during combat.
|
* **Memory Optimization:** Fixed a significant memory leak where tracking tables were being repeatedly allocated every tick during aura scanning, and replaced `table.foreach` with pairs loops to avoid GC spikes during combat.
|
||||||
|
|
||||||
**v1.4.1**
|
**v1.4.1**
|
||||||
|
* **Debuff Visual Overlay Options (CDC):** Added configurable visual overlay styles for cleanable debuffs in the Cure tab ("Debuff visual:"). Supports `Whole Bar` (classic status bar recolor), `Frame / Border` (crisp 9-slice debuff border while preserving unit health/class color), `Glow Effect` (additive blend texture glow), `Glow + Frame` (both border and glow), `Animated` (multi-frame procedural sprite sheet animation for all 4 debuff types: Poison drips, Curse shadow wisps, Disease spores, and Magic sparkles), and `Disabled`. Added dedicated 3rd visual layer `$parentDebuffOverlay` to button templates.
|
||||||
* **Frame Disappearing Fix:** Fixed a layout rendering bug where frames would flash for a split second and disappear on login due to improper table clearing of unit buttons, leaving empty arrays that incorrectly failed the layout check.
|
* **Frame Disappearing Fix:** Fixed a layout rendering bug where frames would flash for a split second and disappear on login due to improper table clearing of unit buttons, leaving empty arrays that incorrectly failed the layout check.
|
||||||
* **Ranked Spell Parsing Fix:** Fixed a Lua crash during addon initialization when discovering ranked spells without an explicit target property. Ranked spells now dynamically inherit the target table from their base spells.
|
* **Ranked Spell Parsing Fix:** Fixed a Lua crash during addon initialization when discovering ranked spells without an explicit target property. Ranked spells now dynamically inherit the target table from their base spells.
|
||||||
* **Talent-based Healing Calculations:** Implemented dynamic spell healing calculations for Druid, Priest, and Paladin classes based on talents.
|
* **Talent-based Healing Calculations:** Implemented dynamic spell healing calculations for Druid, Priest, and Paladin classes based on talents.
|
||||||
|
|||||||
Reference in New Issue
Block a user