82a9ac0937
* 5.20 * Update to 5.21 --------- Co-authored-by: Szyler <Szyler@Szyler.com>
915 lines
32 KiB
Lua
915 lines
32 KiB
Lua
local mod = DBM:NewMod("KaelThas", "DBM-TheEye", 1)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 132 $"):sub(12, -3))
|
|
mod:SetCreatureID(19622, 20064, 20063, 20060, 20062)
|
|
mod:RegisterCombat("yell", "Capernian will see to it that your stay here is a short one." ,"Energy. Power. My people are addicted to it... a dependence made manifest after the Sunwell was destroyed. Welcome to the future. A pity you are too late to stop it. No one can stop me now! Selama ashal'anore!")
|
|
mod:SetUsedIcons(7,8)
|
|
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_MONSTER_YELL",
|
|
"CHAT_MSG_MONSTER_EMOTE",
|
|
"SPELL_AURA_APPLIED",
|
|
"UNIT_DIED",
|
|
"SPELL_CAST_START",
|
|
"SPELL_CAST_SUCCESS"
|
|
)
|
|
|
|
-- local warn
|
|
local warnConflag = mod:NewTargetAnnounce(2135350, 4) --Heroic: 2135351, ASC 10Man: 2135352, 25Man: 2135353
|
|
local warnGaze = mod:NewTargetAnnounce(2135337, 4)
|
|
local specWarnGaze = mod:NewSpecialWarningYou(2135337)
|
|
local warnFocusedBurst = mod:NewTargetAnnounce(2135362, 4) -- ASC only mechanic
|
|
local warnMC = mod:NewTargetAnnounce(2135467, 4) --Heroic: 2135468, Asc(most likely) : 2135469
|
|
|
|
-- local specWarnSeal = mod:NewSpecialWarning("SpecWarnSeal", "spell", 2135342) --Heroic : 2135343 , Ascended 10Man: 2135344, 25Man: 2135345
|
|
--local specWarnSeal = mod:NewAnnounce(L.KTSeal, 2, 2135342)
|
|
local specWarnWiF = mod:NewSpecialWarningSpell(2135369) -- ASC only
|
|
local specWarnBladestorm = mod:NewSpecialWarningRun(2135338) -- ASC only
|
|
local specWarnFocusedBurstYou = mod:NewSpecialWarningYou(2135362) -- ASC only
|
|
local specWarnBloodLeech = mod:NewSpecialWarningSpell(2135531) -- ASC only
|
|
local specWarnManaShield = mod:NewSpecialWarningDispel(2135453) -- ASC only
|
|
local specWarnRebirth = mod:NewSpecialWarningRun(2135508)
|
|
local specWarnFlamestrike = mod:NewSpecialWarningRun(2135459)
|
|
local specWarnFormDyingStar = mod:NewSpecialWarningSpell(2135487) -- ASC only
|
|
|
|
-- Pyroblasts seem to happen 10seconds after phase switch (exception is flying phase) and then 40sec after cast start (seen only 1)
|
|
|
|
-- local timer
|
|
local timerNextWorldInFlames = mod:NewNextTimer(60, 2135369) -- ASC only
|
|
local timerCDBlastWave = mod:NewCDTimer(12, 2135354)
|
|
|
|
local DURATION_GAZE = 15
|
|
local timerNextGaze = mod:NewNextTimer(DURATION_GAZE, 2135337)
|
|
local timerNextBladestorm = mod:NewNextTimer(58, 2135338) -- ASC only
|
|
local timerFocusedBurst = mod:NewTimer(4.5, "FocusedBurst", 2135392) -- ASC only
|
|
local timerNextFocusedBurst = mod:NewNextTimer(60, 2135362) -- 2135392 debuff on target when shooting
|
|
local timerBellow = mod:NewNextTimer(30, 2135340)
|
|
local timerNextBloodLeech = mod:NewNextTimer(60, 2135531) -- ASC only
|
|
|
|
local timerNextPyro = mod:NewNextTimer(40, 2135444) --Heroic: 2135445, ASC 10Man: 2135446, 25Man: 2135447
|
|
local DURATION_PYRO_CAST = 7
|
|
local pyroCast = mod:NewCastTimer(DURATION_PYRO_CAST, 2135444)
|
|
local timerNextFlameStrike = mod:NewNextTimer(40, 2135459)
|
|
local timerExplosion = mod:NewTimer(5, "TimerExplosion",2135459)
|
|
local timerNextMC = mod:NewNextTimer(40, 2135468)
|
|
|
|
local capernianWiF = mod:NewBuffActiveTimer(12, 2135369)
|
|
local DURATION_BLADESTORM = 13
|
|
local bladestormDuration = mod:NewBuffActiveTimer(DURATION_BLADESTORM, 2135338)
|
|
local bloodLeechDuration = mod:NewBuffActiveTimer(11, 2135531)
|
|
local timerNextRebirth = mod:NewNextTimer(40, 2135508)
|
|
local timerNextManaShield = mod:NewNextTimer(40, 2135453)
|
|
local DURATION_BANISH = 22
|
|
local banishDuration = mod:NewBuffActiveTimer(DURATION_BANISH, 2135470)
|
|
local DURATION_DYING_STAR_CHANNEL = 6
|
|
local timerNextDyingStar = mod:NewNextTimer(129, 2135487)
|
|
local DURATION_GRAVITY_LAPSE = 30
|
|
local timerNextGravityLapse = mod:NewNextTimer(129 , 2135477)
|
|
|
|
-- Lieutenant timers
|
|
local CapernianPull = mod:NewTimer(6, "Capernian spawning in: ", 2135337)
|
|
local ThaladredPull = mod:NewTimer(5, "Thaladred spawning in: ", 2135337)
|
|
local TelonicusPull = mod:NewTimer(7.5, "Telonicus spawning in: ", 2135337)
|
|
local SanguinarPull = mod:NewTimer(12, "Sanguinar spawning in: ", 2135337)
|
|
local WeaponsPull = mod:NewTimer(5, "Weapons spawning in: ", 2135337)
|
|
local SCHEDULE_ALL_PULL = 14
|
|
local AllPull = mod:NewTimer(SCHEDULE_ALL_PULL, "Everyone spawning in: ", 2135337)
|
|
local KaelThasPull = mod:NewTimer(7, "Kael'Thas spawning in: ", 2135337)
|
|
|
|
|
|
-- local variables
|
|
local isAscendedDifficulty = false
|
|
local warnConflagTargets = {}
|
|
local warnMCTargets = {}
|
|
local leechSpam = 0
|
|
|
|
local allowGazeAlert = 0
|
|
local emoteGazeText = "sets eyes on"
|
|
local nextGazeCounter = 0
|
|
|
|
-- local options
|
|
mod:AddBoolOption(L.GazeIcon, false)
|
|
mod:AddBoolOption(L.FocusedBurst, false)
|
|
|
|
|
|
function mod:OnCombatStart(delay)
|
|
table.wipe(warnConflagTargets)
|
|
table.wipe(warnMCTargets)
|
|
allowGazeAlert = 1
|
|
nextGazeCounter = 0
|
|
mod.vb.phase = 1
|
|
isAscendedDifficulty = mod:IsDifficulty("heroic10", "heroic25")
|
|
end
|
|
|
|
local function showMC()
|
|
warnMC:Show(table.concat(warnMCTargets, "<, >"))
|
|
table.wipe(warnMCTargets)
|
|
end
|
|
|
|
local function showConflag()
|
|
warnConflag:Show(table.concat(warnConflagTargets, "<, >"))
|
|
table.wipe(warnConflagTargets)
|
|
end
|
|
|
|
function mod:HandleCommonGaze(target)
|
|
if target == UnitName("player") then
|
|
specWarnGaze:Show()
|
|
else
|
|
warnGaze:Show(target)
|
|
end
|
|
|
|
if self.Options.GazeIcon then
|
|
self:SetIcon(target, 8, DURATION_GAZE)
|
|
end
|
|
end
|
|
|
|
function mod:HandleAscendedGaze(target)
|
|
if nextGazeCounter % 3 == 0 then
|
|
timerNextGaze:Start(DURATION_GAZE + DURATION_BLADESTORM) --Why is this needed, doesn't he still gaze while bladestorming? the next gaze will come at the same time as bladestorm.
|
|
nextGazeCounter = 1
|
|
else
|
|
timerNextGaze:Start()
|
|
nextGazeCounter = nextGazeCounter + 1
|
|
end
|
|
mod:HandleCommonGaze(target)
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_EMOTE(msg, _, _, _, target)
|
|
if allowGazeAlert and (msg == emoteGazeText or msg:find(emoteGazeText)) then
|
|
if isAscendedDifficulty then
|
|
mod:HandleAscendedGaze(target)
|
|
else
|
|
timerNextGaze:Start()
|
|
mod:HandleCommonGaze(target)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
local FirstPull = "Energy. Power. My people are addicted to it... a dependence made manifest after the Sunwell was destroyed. Welcome to the future. A pity you are too late to stop it. No one can stop me now! Selama ashal'anore!"
|
|
local CapernianPullYell = "Capernian will see to it that your stay here is a short one."
|
|
local ThaladredPullYell = "Let us see how your nerves hold up against the Darkener, Thaladred!"
|
|
local TelonicusPullYell = "Well done, you have proven worthy to test your skills against my master engineer, Telonicus."
|
|
local SanguinarPullYell = "You have persevered against some of my best advisors... but none can withstand the might of the Blood Hammer. Behold, Lord Sanguinar!"
|
|
local WeaponsPullYell = "As you see, I have many weapons in my arsenal...."
|
|
local AllPullYell = "Perhaps I underestimated you. It would be unfair to make you fight all four advisors at once, but... fair treatment was never shown to my people. I'm just returning the favor."
|
|
local KaelThasPullYell = "Alas, sometimes one must take matters into one's own hands. Balamore shanal!"
|
|
|
|
if (msg == FirstPull or msg:find(FirstPull)) then
|
|
CapernianPull:Start(29) -- 23 + capernain pull timer
|
|
elseif (msg == CapernianPullYell or msg:find(CapernianPullYell)) then
|
|
CapernianPull:Start()
|
|
if isAscendedDifficulty then
|
|
timerNextWorldInFlames:Start(21) -- 15s + PullTimer(6)
|
|
end
|
|
elseif (msg == ThaladredPullYell or msg:find(ThaladredPullYell)) then
|
|
ThaladredPull:Start()
|
|
if isAscendedDifficulty then
|
|
timerNextBladestorm:Start(20) -- 15s + PullTimer(5)
|
|
end
|
|
elseif (msg == TelonicusPullYell or msg:find(TelonicusPullYell)) then
|
|
TelonicusPull:Start()
|
|
if isAscendedDifficulty then
|
|
timerNextFocusedBurst:Start(22.5) -- 15s + PullTimer(7.5)
|
|
end
|
|
elseif (msg == SanguinarPullYell or msg:find(SanguinarPullYell)) then
|
|
SanguinarPull:Start()
|
|
timerBellow:Start(32) -- 20s + PullTimer(12)
|
|
if isAscendedDifficulty then
|
|
timerNextBloodLeech:Start(27) -- 15s + PullTimer(12)
|
|
end
|
|
elseif (msg == WeaponsPullYell or msg:find(WeaponsPullYell)) then
|
|
WeaponsPull:Start()
|
|
mod.vb.phase = 2
|
|
elseif (msg == AllPullYell or msg:find(AllPullYell)) then
|
|
-- Capernian instant spawn, but each npc ress is delayed by 2 sec compared to the all pull timer
|
|
AllPull:Start()
|
|
mod.vb.phase = 3
|
|
|
|
timerCDBlastWave:Start(SCHEDULE_ALL_PULL + 6) -- Delay(0) + 2 x FireBalls
|
|
timerNextGaze:Start(SCHEDULE_ALL_PULL + 2) -- Delay(2)
|
|
timerBellow:Start(SCHEDULE_ALL_PULL + 26) -- Delay(6) + 20s
|
|
|
|
if isAscendedDifficulty then
|
|
timerNextWorldInFlames:Start(SCHEDULE_ALL_PULL + 15) -- Delay(0) + 15s
|
|
nextGazeCounter = 2
|
|
timerNextBladestorm:Start(SCHEDULE_ALL_PULL + 32) -- Delay(2) + 30s
|
|
timerNextFocusedBurst:Start(SCHEDULE_ALL_PULL + 49) -- Delay(4) + 45s
|
|
-- TODO the timer here is for the Aura of Blood. Blood Leech happens 1 second after Aura of blood
|
|
timerNextBloodLeech:Start(SCHEDULE_ALL_PULL + 66) -- Delay(6) + 60s
|
|
end
|
|
elseif (msg == KaelThasPullYell or msg:find(KaelThasPullYell)) then
|
|
KaelThasPull:Start()
|
|
timerNextPyro:Start(17) -- 10s + PullTimer(7)
|
|
timerNextFlameStrike:Start(27) -- 20s + PullTimer(7)
|
|
specWarnFlamestrike:Schedule(27) -- 20s + PullTimer(7)
|
|
timerExplosion:Start(32) -- 25s + PullTimer(7)
|
|
timerNextMC:Start(47) -- 40s + + PullTimer(7)
|
|
mod.vb.phase = 4
|
|
timerNextRebirth:Start(32) -- 25s + PullTimer(7)/
|
|
|
|
if isAscendedDifficulty then
|
|
timerNextManaShield:Start(22) -- 15s + PullTimer(7)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:StopKaelTimers()
|
|
timerNextManaShield:Stop()
|
|
timerNextPyro:Stop()
|
|
timerNextFlameStrike:Stop()
|
|
timerNextRebirth:Stop()
|
|
timerExplosion:Stop()
|
|
timerNextMC:Stop()
|
|
end
|
|
|
|
function mod:HandleGravity()
|
|
self:StopKaelTimers()
|
|
timerNextGravityLapse:Start()
|
|
|
|
local delayTime = 0
|
|
if isAscendedDifficulty then
|
|
delayTime = DURATION_DYING_STAR_CHANNEL
|
|
timerNextDyingStar:Start(33)
|
|
timerNextManaShield:Start(DURATION_GRAVITY_LAPSE + 13 + DURATION_PYRO_CAST + delayTime)
|
|
end
|
|
|
|
timerNextPyro:Start(DURATION_GRAVITY_LAPSE + 14 + delayTime)
|
|
timerNextFlameStrike:Start(DURATION_GRAVITY_LAPSE + 24 + delayTime)
|
|
timerNextRebirth:Start(DURATION_GRAVITY_LAPSE + 28 + delayTime)
|
|
timerNextMC:Start(DURATION_GRAVITY_LAPSE + 44 + delayTime)
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(2135467, 2135468, 2135469) then
|
|
warnMCTargets[#warnMCTargets + 1] = args.destName
|
|
self:Unschedule(showMC)
|
|
timerNextMC:Start()
|
|
if #warnMCTargets >= 3 then
|
|
showMC()
|
|
else
|
|
self:Schedule(0.3, showMC)
|
|
end
|
|
elseif args:IsSpellID(2135350, 2135351, 2135352, 2135353) then
|
|
warnConflagTargets[#warnConflagTargets + 1] = args.destName
|
|
self:Unschedule(showConflag)
|
|
self:Schedule(0.3, showConflag)
|
|
elseif args:IsSpellID(2135340) then
|
|
timerBellow:Start()
|
|
elseif args:IsSpellID(2135354, 2135355, 2135356, 2135357) then
|
|
timerCDBlastWave:Start()
|
|
elseif args:IsSpellID(2135470) then
|
|
banishDuration:Start()
|
|
mod.vb.phase = 5
|
|
self:StopKaelTimers()
|
|
-- TODO find whatever spellID AND COMBAT_LOG_EVENT Gravity Lapse is triggered by and split it. SPELL_AURA_APPLIED, SPELL_CAST_START and SPELL_CAST_SUCCESS doesnt work
|
|
self:ScheduleMethod(DURATION_BANISH + 20, "HandleGravity")
|
|
timerNextGravityLapse:Start(DURATION_BANISH + 20)
|
|
timerNextPyro:Start(DURATION_BANISH + 10)
|
|
if isAscendedDifficulty then
|
|
timerNextManaShield:Start(DURATION_BANISH + 10 + DURATION_PYRO_CAST - 1)
|
|
end
|
|
elseif args:IsSpellID(2135531, 2135533) and (GetTime() - leechSpam > 20) then
|
|
leechSpam = GetTime()
|
|
specWarnBloodLeech:Show()
|
|
bloodLeechDuration:Start()
|
|
--First leech applies 1 second later than the Aura of Blood
|
|
timerNextBloodLeech:Start(59)
|
|
elseif args:IsSpellID(2135369) then
|
|
capernianWiF:Start()
|
|
specWarnWiF:Show()
|
|
timerNextWorldInFlames:Start()
|
|
elseif args:IsSpellID(2135338) then
|
|
bladestormDuration:Start()
|
|
specWarnBladestorm:Show()
|
|
timerNextBladestorm:Start()
|
|
elseif args:IsSpellID(2135453) then
|
|
timerNextManaShield:Start()
|
|
specWarnManaShield:Show()
|
|
elseif args:IsSpellID(2135487) then
|
|
timerNextDyingStar:Start()
|
|
specWarnFormDyingStar:Show()
|
|
end
|
|
end
|
|
|
|
function mod:HandleFocusedBurstTarget()
|
|
local target = mod:GetBossTarget(20063)
|
|
if target then
|
|
warnFocusedBurst:Show(target)
|
|
if mod.vb.phase == 3 and UnitName("player") == target then
|
|
specWarnFocusedBurstYou:Show()
|
|
end
|
|
if self.Options.FocusedBurst then
|
|
self:SetIcon(target, 7, 8)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(args)
|
|
if args:IsSpellID(2135444, 2135445, 2135446, 2135447) and DBM:AntiSpam(20, 1) then
|
|
timerNextPyro:Start(36)
|
|
end
|
|
end
|
|
mod.SPELL_MISSED = mod.SPELL_DAMAGE -- Hack to include SPELL_MISSED as well without more code
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2135444, 2135445, 2135446, 2135447) and DBM:AntiSpam(20, 1) then
|
|
pyroCast:Start()
|
|
timerNextPyro:Start()
|
|
elseif args:IsSpellID(2135362) then
|
|
self:ScheduleMethod(2, "HandleFocusedBurstTarget")
|
|
if mod.vb.phase == 3 then
|
|
timerNextFocusedBurst:Start(60)
|
|
timerFocusedBurst:Start()
|
|
end
|
|
elseif args:IsSpellID(2135506, 2135507, 2135508, 2135509) then
|
|
timerNextRebirth:Start()
|
|
specWarnRebirth:Show()
|
|
self:SetIcon(args.sourceName, 8)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if args:IsSpellID(2135459, 2135460, 2135461, 2135462) then
|
|
timerNextFlameStrike:Start(35)
|
|
specWarnFlamestrike:Schedule(35)
|
|
timerExplosion:Start(40)
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 20060 then
|
|
if isAscendedDifficulty then
|
|
timerNextBloodLeech:Stop()
|
|
bloodLeechDuration:Stop()
|
|
end
|
|
timerBellow:Stop()
|
|
elseif cid == 20062 then
|
|
timerCDBlastWave:Stop()
|
|
if isAscendedDifficulty then
|
|
timerNextWorldInFlames:Stop()
|
|
capernianWiF:Stop()
|
|
end
|
|
elseif cid == 20063 and isAscendedDifficulty then
|
|
timerNextFocusedBurst:Stop()
|
|
timerFocusedBurst:Stop()
|
|
elseif cid == 20064 then
|
|
timerNextGaze:Stop()
|
|
if isAscendedDifficulty then
|
|
bladestormDuration:Stop()
|
|
timerNextBladestorm:Stop()
|
|
nextGazeCounter = 0
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
allowGazeAlert = 0
|
|
nextGazeCounter = 0
|
|
end
|
|
|
|
-- Old Kaelthas DBM code
|
|
|
|
-- local lastConflag = 0;
|
|
-- local MCTargets = {};
|
|
-- local MCIcons = {
|
|
-- [1] = false,
|
|
-- [2] = false,
|
|
-- [3] = false,
|
|
-- [4] = false,
|
|
-- [5] = false,
|
|
-- [6] = false,
|
|
-- [7] = false,
|
|
-- [8] = false
|
|
-- };
|
|
-- local weaponFrame = false;
|
|
-- local phase2 = false;
|
|
-- local phase5 = false;
|
|
-- local weaponHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- [5] = 100,
|
|
-- [6] = 100,
|
|
-- [7] = 100
|
|
-- };
|
|
-- local addFrame = false;
|
|
-- local addHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- };
|
|
-- local lastEgg = 0;
|
|
-- local gravityLapse = false;
|
|
-- local phase = 1
|
|
|
|
-- Kael:RegisterEvents(
|
|
-- "CHAT_MSG_MONSTER_EMOTE",
|
|
-- "CHAT_MSG_MONSTER_YELL",
|
|
-- "SPELL_CAST_START",
|
|
-- "SPELL_AURA_APPLIED",
|
|
-- "SPELL_MISSED",
|
|
-- "SPELL_AURA_REMOVED",
|
|
-- "SPELL_CAST_SUCCESS"
|
|
-- );
|
|
|
|
-- Kael:AddOption("WarnPhase", true, DBM_KAEL_OPTION_PHASE);
|
|
-- Kael:AddOption("ThalaIcon", true, DBM_KAEL_OPTION_ICON_P1);
|
|
-- Kael:AddOption("ThalaWhisper", true, DBM_KAEL_OPTION_WHISPER_P1);
|
|
-- Kael:AddOption("RangeCheck", true, DBM_KAEL_OPTION_RANGECHECK);
|
|
-- Kael:AddOption("WarnConflag", true, DBM_KAEL_OPTION_CONFLAG);
|
|
-- Kael:AddOption("WarnConflag2", false, DBM_KAEL_OPTION_CONFLAG2);
|
|
-- Kael:AddOption("TimerConflag2", false, DBM_KAEL_OPTION_CONFLAGTIMER2);
|
|
-- Kael:AddOption("WarnFear", true, DBM_KAEL_OPTION_FEAR);
|
|
-- Kael:AddOption("WarnFearSoon", true, DBM_KAEL_OPTION_FEARSOON);
|
|
-- Kael:AddOption("WarnToy", true, DBM_KAEL_OPTION_TOY);
|
|
-- --Kael:AddOption("ShowFrame", true, DBM_KAEL_OPTION_FRAME);
|
|
-- --Kael:AddOption("ShowAddFrame", true, DBM_KAEL_OPTION_ADDFRAME);
|
|
-- Kael:AddOption("WarnPyro", false, DBM_KAEL_OPTION_PYRO);
|
|
-- Kael:AddOption("WarnBarrier", true, DBM_KAEL_OPTION_BARRIER);
|
|
-- Kael:AddOption("WarnBarrier2", false, DBM_KAEL_OPTION_BARRIER2);
|
|
-- Kael:AddOption("WarnPhoenix", true, DBM_KAEL_OPTION_PHOENIX);
|
|
-- Kael:AddOption("WarnMC", true, DBM_KAEL_OPTION_WARNMC);
|
|
-- Kael:AddOption("IconMC", true, DBM_KAEL_OPTION_ICONMC);
|
|
-- Kael:AddOption("WarnGravity", true, DBM_KAEL_OPTION_GRAVITY);
|
|
|
|
-- Kael:AddBarOption("Thaladred")
|
|
-- Kael:AddBarOption("Lord Sanguinar")
|
|
-- Kael:AddBarOption("Capernian")
|
|
-- Kael:AddBarOption("Telonicus")
|
|
-- Kael:AddBarOption("Gaze Cooldown")
|
|
-- Kael:AddBarOption("Next Fear")
|
|
-- Kael:AddBarOption("Fear")
|
|
-- Kael:AddBarOption("Conflagration: (.*)")
|
|
-- Kael:AddBarOption("Remote Toy: (.*)")
|
|
-- Kael:AddBarOption("Phase 3")
|
|
-- Kael:AddBarOption("Phase 4")
|
|
-- Kael:AddBarOption("Next Shock Barrier")
|
|
-- Kael:AddBarOption("Shock Barrier")
|
|
-- Kael:AddBarOption("Phoenix")
|
|
-- Kael:AddBarOption("Rebirth")
|
|
-- Kael:AddBarOption("Pyroblast")
|
|
-- Kael:AddBarOption("Gravity Lapse")
|
|
-- Kael:AddBarOption("Next Gravity Lapse")
|
|
|
|
-- Kael:SetCreatureID(19622)
|
|
-- Kael:RegisterCombat("yell", DBM_KAEL_YELL_PHASE1)
|
|
-- Kael:SetMinCombatTime(60)
|
|
|
|
-- function Kael:OnCombatStart(delay)
|
|
-- phase = 1
|
|
-- if self.Options.WarnPhase then
|
|
-- self:Announce(DBM_KAEL_WARN_PHASE1, 1);
|
|
-- end
|
|
-- self:StartStatusBarTimer(32 - delay, "Thaladred", "Interface\\Icons\\Spell_Nature_WispSplode");
|
|
-- MCTargets = {};
|
|
-- MCIcons = {
|
|
-- [1] = false,
|
|
-- [2] = false,
|
|
-- [3] = false,
|
|
-- [4] = false,
|
|
-- [5] = false,
|
|
-- [6] = false,
|
|
-- [7] = false,
|
|
-- [8] = false
|
|
-- };
|
|
-- phase2 = false;
|
|
-- phase5 = false;
|
|
-- weaponHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- [5] = 100,
|
|
-- [6] = 100,
|
|
-- [7] = 100
|
|
-- };
|
|
-- addHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- };
|
|
-- end
|
|
|
|
-- function Kael:OnCombatEnd()
|
|
-- if self.Options.RangeCheck then
|
|
-- DBM_Gui_DistanceFrame_Hide();
|
|
-- end
|
|
-- if weaponFrame then
|
|
-- weaponFrame:Hide();
|
|
-- end
|
|
-- if addFrame then
|
|
-- addFrame:Hide();
|
|
-- end
|
|
-- phase = 1
|
|
-- end
|
|
|
|
-- function Kael:OnEvent(event, arg1)
|
|
-- if event == "CHAT_MSG_MONSTER_EMOTE" and arg1 then
|
|
-- local _, _, target = arg1:find(DBM_KAEL_EMOTE_THALADRED_TARGET);
|
|
-- if target then
|
|
-- self:SendSync("ThalaTarget"..target);
|
|
-- end
|
|
-- elseif event == "CHAT_MSG_MONSTER_YELL" then
|
|
-- if arg1 == DBM_KAEL_YELL_PHASE2 then
|
|
-- self:SendSync("Phase2");
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE3 then
|
|
-- self:SendSync("Phase3");
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE4 then
|
|
-- self:SendSync("Phase4");
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE5 then
|
|
-- self:SendSync("Phase5");
|
|
-- elseif arg1 == DBM_KAEL_YELL_CAPERNIAN_DOWN then
|
|
-- if self.Options.RangeCheck then
|
|
-- DBM_Gui_DistanceFrame_Hide();
|
|
-- end
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE1_SANGUINAR then
|
|
-- self:Announce(DBM_KAEL_WARN_INC:format(DBM_KAEL_SANGUINAR), 1);
|
|
-- self:StartStatusBarTimer(12.5, "Lord Sanguinar", "Interface\\Icons\\Spell_Nature_WispSplode");
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE1_CAPERNIAN then
|
|
-- self:Announce(DBM_KAEL_WARN_INC:format(DBM_KAEL_CAPERNIAN), 1);
|
|
-- self:StartStatusBarTimer(7, "Capernian", "Interface\\Icons\\Spell_Nature_WispSplode");
|
|
-- self:EndStatusBarTimer("Next Fear");
|
|
-- self:UnScheduleSelf("FearSoon");
|
|
-- if self.Options.RangeCheck then
|
|
-- DBM_Gui_DistanceFrame_Show();
|
|
-- end
|
|
-- elseif arg1 == DBM_KAEL_YELL_PHASE1_TELONICUS then
|
|
-- self:Announce(DBM_KAEL_WARN_INC:format(DBM_KAEL_TELONICUS), 1);
|
|
-- self:StartStatusBarTimer(8.4, "Telonicus", "Interface\\Icons\\Spell_Nature_WispSplode");
|
|
-- if self.Options.RangeCheck then
|
|
-- DBM_Gui_DistanceFrame_Hide();
|
|
-- end
|
|
-- elseif arg1 == DBM_KAEL_YELL_GRAVITY_LAPSE or arg1 == DBM_KAEL_YELL_GRAVITY_LAPSE2 then
|
|
-- self:SendSync("GravityLapse");
|
|
-- end
|
|
-- elseif event == "SPELL_CAST_START" and arg1 then
|
|
-- if arg1.spellId == 39427 then -- ?
|
|
-- self:SendSync("CastFear")
|
|
-- elseif arg1.spellId == 36819 then
|
|
-- self:SendSync("Pyroblast")
|
|
-- end
|
|
-- elseif event == "SPELL_MISSED" then
|
|
-- if arg1.spellId == 39427 then -- ?
|
|
-- self:SendSync("Fear")
|
|
-- end
|
|
-- elseif event == "SPELL_AURA_APPLIED" then
|
|
-- if arg1.spellId == 39427 then -- ?
|
|
-- self:SendSync("Fear");
|
|
-- elseif arg1.spellId == 37018 then -- ?
|
|
-- self:SendSync("Conflag"..tostring(arg1.destName))
|
|
-- elseif arg1.spellId == 36797 then
|
|
-- self:SendSync("MC"..tostring(arg1.destName))
|
|
-- elseif arg1.spellId == 37027 then
|
|
-- self:SendSync("Toy"..tostring(arg1.destName))
|
|
-- elseif arg1.spellId == 36815 then
|
|
-- self:SendSync("Barrier");
|
|
-- end
|
|
-- elseif event == "SPELL_AURA_REMOVED" then
|
|
-- if arg1.spellId == 36815 then
|
|
-- self:SendSync("BarrierDown")
|
|
-- elseif arg1.spellId == 36797 then
|
|
-- self:SendSync("BrokeMC"..tostring(arg1.destName))
|
|
-- end
|
|
-- elseif event == "SPELL_CAST_SUCCESS" then
|
|
-- if arg1.spellId == 36723 then
|
|
-- self:SendSync("Phoenix")
|
|
-- end
|
|
-- elseif event == "FearSoon" then
|
|
-- if self.Options.WarnFearSoon then
|
|
-- self:Announce(DBM_KAEL_WARN_FEAR_SOON, 2);
|
|
-- end
|
|
-- elseif event == "WarnPhase3" then
|
|
-- if self.Options.WarnPhase then
|
|
-- self:Announce(DBM_KAEL_WARN_PHASE3, 1);
|
|
-- end
|
|
-- elseif event == "Phase3" then
|
|
-- self:StartStatusBarTimer(173, "Phase 4", "Interface\\Icons\\Spell_Shadow_BloodBoil");
|
|
-- if self.Options.RangeCheck then
|
|
-- DBM_Gui_DistanceFrame_Show();
|
|
-- end
|
|
-- elseif event == "BarrierWarn" then
|
|
-- if self.Options.WarnBarrier and (not phase5 or self.Options.WarnBarrier2) then
|
|
-- self:Announce(DBM_KAEL_WARN_BARRIER_SOON, 2);
|
|
-- end
|
|
-- elseif event == "AnnounceMCTargets" then
|
|
-- if self.Options.WarnMC then
|
|
-- local targetString = "";
|
|
-- for i, v in ipairs(MCTargets) do
|
|
-- targetString = targetString..">"..v.."<, ";
|
|
-- end
|
|
-- if targetString ~= "" then
|
|
-- self:Announce(DBM_KAEL_WARN_MC_TARGETS:format(targetString:sub(0, -3)), 1);
|
|
-- end
|
|
-- end
|
|
-- MCTargets = {};
|
|
-- elseif event == "ClearIcon" and arg1 then
|
|
-- MCIcons[arg1] = false;
|
|
-- elseif event == "GravityLapseEnd" then
|
|
-- gravityLapse = false;
|
|
-- self:ScheduleSelf(55, "GravityWarn");
|
|
-- self:StartStatusBarTimer(60, "Next Gravity Lapse", "Interface\\Icons\\Spell_Magic_FeatherFall");
|
|
-- elseif event == "GravityWarn" and self.Options.WarnGravity then
|
|
-- self:Announce(DBM_KAEL_GRAVITY_SOON, 2);
|
|
-- elseif event == "GravityEndWarn" and self.Options.WarnGravity then
|
|
-- self:Announce(DBM_KAEL_GRAVITY_END_SOON, 3);
|
|
-- end
|
|
-- end
|
|
|
|
-- function Kael:OnSync(msg)
|
|
-- if msg:sub(0, 11) == "ThalaTarget" then
|
|
-- msg = msg:sub(12);
|
|
-- if msg then
|
|
-- if msg == UnitName("player") then
|
|
-- self:AddSpecialWarning(DBM_KAEL_SPECWARN_THALADRED_TARGET);
|
|
-- end
|
|
-- self:Announce(DBM_KAEL_WARN_THALADRED_TARGET:format(msg), 2);
|
|
-- if self.Options.ThalaIcon then
|
|
-- self:SetIcon(msg, 15);
|
|
-- end
|
|
-- if self.Options.ThalaWhisper and self.Options.Announce and DBM.Rank >= 1 then
|
|
-- self:SendHiddenWhisper(DBM_KAEL_WHISPER_THALADRED_TARGET, msg);
|
|
-- end
|
|
-- self:StartStatusBarTimer(8.5, "Gaze Cooldown", "Interface\\Icons\\Spell_Fire_BurningSpeed");
|
|
-- end
|
|
-- elseif msg:sub(0, 7) == "Conflag" and (GetTime() - lastConflag) > 5 then -- spam protection....
|
|
-- msg = msg:sub(8);
|
|
-- if msg then
|
|
-- lastConflag = GetTime();
|
|
-- if (self.Options.WarnConflag and not phase2) or (self.Options.WarnConflag2 and self.Options.WarnConflag and phase2) then
|
|
-- self:Announce(DBM_KAEL_WARN_CONFLAGRATION:format(msg), 1);
|
|
-- end
|
|
-- if phase2 and self.Options.TimerConflag2 then
|
|
-- self:StartStatusBarTimer(9.5, "Conflagration: "..msg, "Interface\\Icons\\Spell_Fire_Incinerate", true);
|
|
-- elseif not phase2 then
|
|
-- self:StartStatusBarTimer(9.5, "Conflagration: "..msg, "Interface\\Icons\\Spell_Fire_Incinerate");
|
|
-- end
|
|
-- end
|
|
-- elseif msg:sub(0, 3) == "Toy" and not phase2 then
|
|
-- msg = msg:sub(4);
|
|
-- if msg then
|
|
-- if self.Options.WarnToy then
|
|
-- self:Announce(DBM_KAEL_WARN_REMOTETOY:format(msg), 1);
|
|
-- end
|
|
-- self:StartStatusBarTimer(60, "Remote Toy: "..msg, "Interface\\Icons\\INV_Misc_Urn_01");
|
|
-- end
|
|
-- elseif msg == "Phase2" then
|
|
-- phase = 2
|
|
-- phase2 = true;
|
|
-- if self.Options.WarnPhase then
|
|
-- self:Announce(DBM_KAEL_WARN_PHASE2, 1);
|
|
-- end
|
|
-- self:StartStatusBarTimer(105, "Phase 3", "Interface\\Icons\\Spell_Shadow_AnimateDead");
|
|
-- self:ScheduleSelf(105, "WarnPhase3");
|
|
-- if self.Options.ShowFrame and DBMGui and DBMGui.CreateInfoFrame then
|
|
-- if weaponFrame then
|
|
-- weaponHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- [5] = 100,
|
|
-- [6] = 100,
|
|
-- [7] = 100
|
|
-- };
|
|
-- self:UpdateHealth();
|
|
-- weaponFrame:Show();
|
|
-- else
|
|
-- weaponFrame = DBMGui:CreateInfoFrame(DBM_KAEL_INFOFRAME_TITLE);
|
|
-- if (not weaponFrame) then
|
|
-- -- self:AddMsg("Error while creating frame: Not supported in DBMv4");
|
|
-- return;
|
|
-- end
|
|
-- for i = 1, 7 do
|
|
-- weaponFrame["Bar"..i] = weaponFrame:CreateStatusBar(0, 100, 100, nil, DBM_KAEL_WEAPONS_NAMES[i], "100%");
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- elseif msg == "Phase3" then
|
|
-- phase = 3
|
|
-- self:ScheduleSelf(10, "Phase3");
|
|
-- if self.Options.ShowAddFrame and DBMGui and DBMGui.CreateInfoFrame then
|
|
-- if addFrame then
|
|
-- addHealth = {
|
|
-- [1] = 100,
|
|
-- [2] = 100,
|
|
-- [3] = 100,
|
|
-- [4] = 100,
|
|
-- };
|
|
-- self:UpdateHealth();
|
|
-- addFrame:Show();
|
|
-- else
|
|
-- addFrame = DBMGui:CreateInfoFrame(DBM_KAEL_INFOFRAME_ADDS_TITLE);
|
|
-- if (not addFrame) then
|
|
-- return;
|
|
-- end
|
|
-- for i = 1, 4 do
|
|
-- addFrame["Bar"..i] = addFrame:CreateStatusBar(0, 100, 100, nil, DBM_KAEL_ADVISORS_NAMES[i], "100%");
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- elseif msg == "Phase4" then
|
|
-- phase = 4
|
|
-- phase5 = false;
|
|
-- if self.Options.WarnPhase then
|
|
-- self:Announce(DBM_KAEL_WARN_PHASE4, 1);
|
|
-- end
|
|
-- self:EndStatusBarTimer("Phase 4");
|
|
-- self:ScheduleSelf(55, "BarrierWarn");
|
|
-- self:StartStatusBarTimer(60, "Next Shock Barrier", "Interface\\Icons\\Spell_Nature_LightningShield");
|
|
-- self:StartStatusBarTimer(50, "Phoenix", "Interface\\Icons\\Spell_FireResistanceTotem_01");
|
|
-- elseif msg == "Phase5" then
|
|
-- phase = 5
|
|
-- phase5 = true;
|
|
-- if self.Options.WarnPhase then
|
|
-- self:Announce(DBM_KAEL_WARN_PHASE5, 1);
|
|
-- end
|
|
-- self:EndStatusBarTimer("Next Shock Barrier");
|
|
-- self:UnScheduleSelf("BarrierWarn");
|
|
-- gravityLapse = false;
|
|
-- self:ScheduleSelf(53, "GravityWarn");
|
|
-- self:StartStatusBarTimer(58, "Next Gravity Lapse", "Interface\\Icons\\Spell_Magic_FeatherFall");
|
|
|
|
-- elseif msg == "CastFear" then
|
|
-- if self.Options.WarnFear then
|
|
-- self:Announce(DBM_KAEL_WARN_FEAR, 2);
|
|
-- end
|
|
-- self:UnScheduleSelf("FearSoon");
|
|
-- self:StartStatusBarTimer(31, "Next Fear", "Interface\\Icons\\Spell_Shadow_PsychicScream");
|
|
-- self:ScheduleSelf(28, "FearSoon");
|
|
-- self:StartStatusBarTimer(1.5, "Fear", "Interface\\Icons\\Spell_Shadow_PsychicScream");
|
|
-- elseif msg == "Fear" then
|
|
-- if not self:GetStatusBarTimerTimeLeft("Next Fear") then
|
|
-- self:StartStatusBarTimer(29.5, "Next Fear", "Interface\\Icons\\Spell_Shadow_PsychicScream");
|
|
-- end
|
|
-- if not self:GetSelfScheduleTimeLeft("FearSoon") then
|
|
-- self:ScheduleSelf(26.5, "FearSoon");
|
|
-- end
|
|
-- elseif msg == "Pyroblast" then
|
|
-- if self.Options.WarnPyro then
|
|
-- self:Announce(DBM_KAEL_WARN_PYRO, 2);
|
|
-- end
|
|
-- self:StartStatusBarTimer(4, "Pyroblast", "Interface\\Icons\\Spell_Fire_Fireball02");
|
|
-- elseif msg == "Barrier" then
|
|
-- if self.Options.WarnBarrier and (not phase5 or self.Options.WarnBarrier2) then
|
|
-- self:Announce(DBM_KAEL_WARN_BARRIER_NOW, 3);
|
|
-- end
|
|
-- if not phase5 then
|
|
-- self:ScheduleSelf(55, "BarrierWarn");
|
|
-- self:StartStatusBarTimer(60, "Next Shock Barrier", "Interface\\Icons\\Spell_Nature_LightningShield");
|
|
-- end
|
|
-- self:StartStatusBarTimer(10, "Shock Barrier", "Interface\\Icons\\Spell_Nature_LightningShield");
|
|
-- elseif msg == "BarrierDown" then
|
|
-- if self.Options.WarnBarrier and (not phase5 or self.Options.WarnBarrier2) then
|
|
-- self:Announce(DBM_KAEL_WARN_BARRIER_DOWN, 3);
|
|
-- end
|
|
-- elseif msg == "Phoenix" then
|
|
-- if self.Options.WarnPhoenix then
|
|
-- self:Announce(DBM_KAEL_WARN_PHOENIX, 2);
|
|
-- end
|
|
-- elseif msg:sub(0, 2) == "MC" then
|
|
-- msg = msg:sub(3);
|
|
-- if msg then
|
|
-- table.insert(MCTargets, msg);
|
|
-- if #MCTargets >= 3 then
|
|
-- self:UnScheduleSelf("AnnounceMCTargets");
|
|
-- self:OnEvent("AnnounceMCTargets");
|
|
-- end
|
|
-- self:UnScheduleSelf("AnnounceMCTargets");
|
|
-- self:ScheduleSelf(1, "AnnounceMCTargets");
|
|
|
|
-- local iconID = 0;
|
|
-- for i = 8, 1, -1 do
|
|
-- if not MCIcons[i] then
|
|
-- iconID = i;
|
|
-- MCIcons[i] = msg;
|
|
-- break;
|
|
-- end
|
|
-- end
|
|
-- if self.Options.IconMC and iconID ~= 0 and self.Options.Announce and DBM.Rank >= 1 then
|
|
-- self:SetIcon(msg, 25, iconID);
|
|
-- self:ScheduleSelf(25, "ClearIcon", iconID);
|
|
-- end
|
|
|
|
-- end
|
|
-- elseif msg:sub(0, 7) == "BrokeMC" then
|
|
-- msg = msg:sub(8);
|
|
-- if msg then
|
|
-- for i, v in pairs(MCIcons) do
|
|
-- if v == msg then
|
|
-- self:OnEvent("ClearIcon", i);
|
|
-- break;
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- elseif msg == "Egg" and not gravityLapse then
|
|
-- self:Announce(DBM_KAEL_WARN_REBIRTH, 3);
|
|
-- self:StartStatusBarTimer(15, "Rebirth", "Interface\\Icons\\INV_Relics_TotemofRebirth");
|
|
-- elseif msg == "GravityLapse" then
|
|
-- gravityLapse = true;
|
|
-- if self.Options.WarnGravity then
|
|
-- self:Announce(DBM_KAEL_WARN_GRAVITY_LAPSE, 3);
|
|
-- end
|
|
-- self:StartStatusBarTimer(32.5, "Gravity Lapse", "Interface\\Icons\\Spell_Magic_FeatherFall");
|
|
-- self:ScheduleSelf(32.5, "GravityLapseEnd");
|
|
-- self:ScheduleSelf(27.5, "GravityEndWarn");
|
|
-- end
|
|
-- end
|
|
|
|
-- function Kael:GetBossHP()
|
|
-- if phase <= 3 then
|
|
-- return DBM_GENERIC_PHASE_MSG:format(phase)
|
|
-- end
|
|
-- end
|
|
|
|
-- function Kael:UpdateHealth()
|
|
-- if weaponFrame then
|
|
-- for i = 1, 7 do
|
|
-- weaponFrame["Bar"..i]:SetValue(weaponHealth[i]);
|
|
|
|
-- if weaponHealth[i] > 50 then
|
|
-- weaponFrame["Bar"..i]:GetObject():SetStatusBarColor(0, 1, 0);
|
|
-- elseif weaponHealth[i] > 20 then
|
|
-- weaponFrame["Bar"..i]:GetObject():SetStatusBarColor(1, 0.6, 0);
|
|
-- else
|
|
-- weaponFrame["Bar"..i]:GetObject():SetStatusBarColor(1, 0, 0);
|
|
-- end
|
|
|
|
-- if weaponHealth[i] > 0 then
|
|
-- getglobal(weaponFrame["Bar"..i]:GetObject():GetName().."RightText"):SetText(weaponHealth[i].."%");
|
|
-- else
|
|
-- getglobal(weaponFrame["Bar"..i]:GetObject():GetName().."RightText"):SetText(DBM_DEAD:lower());
|
|
-- end
|
|
-- end
|
|
-- end
|
|
|
|
-- if addFrame then
|
|
-- for i = 1, 4 do
|
|
-- addFrame["Bar"..i]:SetValue(addHealth[i]);
|
|
|
|
-- if addHealth[i] > 50 then
|
|
-- addFrame["Bar"..i]:GetObject():SetStatusBarColor(0, 1, 0);
|
|
-- elseif addHealth[i] > 20 then
|
|
-- addFrame["Bar"..i]:GetObject():SetStatusBarColor(1, 0.6, 0);
|
|
-- else
|
|
-- addFrame["Bar"..i]:GetObject():SetStatusBarColor(1, 0, 0);
|
|
-- end
|
|
|
|
-- if addHealth[i] > 0 then
|
|
-- getglobal(addFrame["Bar"..i]:GetObject():GetName().."RightText"):SetText(addHealth[i].."%");
|
|
-- else
|
|
-- getglobal(addFrame["Bar"..i]:GetObject():GetName().."RightText"):SetText(DBM_DEAD:lower());
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- end
|
|
|
|
-- Kael.UpdateInterval = 0.2;
|
|
-- function Kael:OnUpdate(elapsed)
|
|
-- if phase2 then
|
|
-- local egg = false;
|
|
-- for i = 1, GetNumRaidMembers() do
|
|
-- if UnitName("raid"..i.."target") then
|
|
-- if DBM_KAEL_WEAPONS[UnitName("raid"..i.."target")] then
|
|
-- weaponHealth[DBM_KAEL_WEAPONS[UnitName("raid"..i.."target")]] = UnitHealth("raid"..i.."target");
|
|
-- elseif DBM_KAEL_ADVISORS[UnitName("raid"..i.."target")] then
|
|
-- addHealth[DBM_KAEL_ADVISORS[UnitName("raid"..i.."target")]] = UnitHealth("raid"..i.."target");
|
|
-- elseif UnitName("raid"..i.."target") == DBM_KAEL_EGG then
|
|
-- egg = UnitHealth("raid"..i.."target");
|
|
-- end
|
|
-- end
|
|
-- end
|
|
-- self:UpdateHealth();
|
|
|
|
-- local weaponsDown = true;
|
|
-- for i = 1, 7 do
|
|
-- if weaponHealth[i] > 0 then
|
|
-- weaponsDown = false;
|
|
-- end
|
|
-- end
|
|
-- if weaponsDown and weaponFrame then
|
|
-- weaponFrame:Hide();
|
|
-- end
|
|
|
|
-- local addsDown = true;
|
|
-- for i = 1, 4 do
|
|
-- if addHealth and addHealth[i] > 0 then
|
|
-- addsDown = false;
|
|
-- end
|
|
-- end
|
|
-- if addsDown and addFrame then
|
|
-- addFrame:Hide();
|
|
-- end
|
|
|
|
-- if egg and egg > 95 and (GetTime() - lastEgg) > 7.5 then
|
|
-- lastEgg = GetTime();
|
|
-- self:SendSync("Egg");
|
|
-- end
|
|
-- end
|
|
-- end
|