WoWInterface SVN RaidWatch2

[/] [trunk/] [RaidWatch_Icecrown/] [TheLowerSpire/] [LordMarrowgar.lua] - Rev 22

Compare with Previous | Blame | View Log

local mod = RW:Boss("Lord Marrowgar", "Icecrown Citadel", "The Lower Spire")
local L
mod:SetPackIcon([[Interface\Icons\Achievement_Zone_IceCrown_01.blp]])
mod.BossIcon = [[Interface\Icons\achievement_boss_lordmarrowgar]]
mod.SubCatIcon = [[Interface\Icons\achievement_dungeon_icecrown_icecrownentrance]]

------------------------------------
-- Variables

local tBoneStormCD, tBoneStormDur
local mBoneStormSoon
local wFlame, wBStorm
local iImpaled
local mImpaled
local dImpaled

-----------------------------------
-- Init

function mod:OnRegister()
        L = mod:RegisterLocale("enUS")
        if L then
                L.YellWin = "I see... Only darkness."
                
                L.bonestorm_soon = "Bone storm in 10s!"
                L.bonestorm_soon_opt = "10s warning"
        end
        L = mod:GetLocale()
        mod.L = L
        
        mod:SetTrigger(36612)
        mod:SetWin(L.YellWin, 36612)
        
        tBoneStormCD, tBoneStormDur = self:CDTimer(65, 69076), self:DurTimer(21, 69076)
        
        wFlame  = self:RunawayWarning(69146)
        wBStorm = self:RunawayWarning(69076)
        
        mBoneStormSoon = self:CustomMessage(L.bonestorm_soon, L.bonestorm_soon_opt, 69076)
        mImpaled                = self:TargetMessage(69065)
        
        dImpaled                = self:DirectionTo(69065)
        
        iImpaled = self:Icon("STAR", 69065, nil, nil, "CROSS", "SQUARE")
end

-----------------------------------------
-- locals

local flameSpamm = 0
local impaleTargets

-----------------------------------------
-- Start

function mod:OnEngage(trigger)
        self:Track("BoneStorm", 69076)
        self:Track("Flame", 69146, 70825, 70824, 70823)
        self:Track("Impaled", 69065)
        
        impaleTargets = impaleTargets or {}
        wipe(impaleTargets)
        
        tBoneStormCD:Start(45)
        mBoneStormSoon:Schedule(35)
end

function mod:BoneStorm(event, args)
        if event == "SPELL_CAST_START" then
                wBStorm:Show()
                tBoneStormCD:Stop()
                
        elseif event == "SPELL_AURA_APPLIED" then
                if self:IsHeroic() then
                        tBoneStormDur:Start(30)
                else
                        tBoneStormDur:Start()
                end
                
        elseif event == "SPELL_AURA_REMOVED" then
                if self:IsHeroic() then
                        tBoneStormCD:Start(60)
                        mBoneStormSoon:Schedule(50)
                else
                        tBoneStormCD:Start()
                        mBoneStormSoon:Schedule(55)
                end
        end
end

function mod:Flame(event, args)
        if event == "SPELL_AURA_APPLIED" then
                if args:IsPlayer() then
                        if GetTime() - flameSpamm > 4 then
                                wFlame:Show()
                                flameSpamm = GetTime()
                        end
                end
        end
end

function mod:ShowImpaled()
        mImpaled:Show(table.concat(impaleTargets, "<, >"))
        wipe(impaleTargets)
end


function mod:Impaled(event, args)
        if event == "SPELL_AURA_APPLIED" then
                impaleTargets[#impaleTargets + 1] = args.dName
                self:Schedule("SHowImpaled", 1, "ShowImpaled")
                iImpaled:Show(args.dName)
                dImpaled:Show(args.dName, 10)
                
        elseif event == "SPELL_AURA_REMOVED" then
                iImpaled:Hide(args.dName)
                dImpaled:Hide(args.dName)
        end
end

Compare with Previous | Blame