WoWInterface SVN RaidWatch2

[/] [trunk/] [RaidWatch_Ulduar/] [XT.lua] - Rev 22

Compare with Previous | Blame | View Log

local mod = RW:Boss("XT-002 Deconstructor", "Ulduar", "The Siege of Ulduar")
local L

mod.BossIcon = [[Interface\Icons\achievement_boss_xt002deconstructor_01]]

---------------------------
-- Variables
local tTympanicTantrumCD, tTympanicTantrumCast, tTympanicTantrumCD, wTympanicTantrum
local tExposeHeart, wExposeHeart
local tSearingLightDur, mSearingLightCast, wSearingLightRun, iSearingLight
local mLifeSpark
local tGravityBombDur, mGravityBombCast, wGravityBombRun, iGravityBomb, wConsumption
local tBerserk

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

function mod:OnRegister()
        L = mod:RegisterLocale(self:GetName(), "enUS", true)
        if L then
                L.YellPull = "New toys? For me? I promise I won't break them this time!"
                L.YellDeath = "You are bad... Toys... Very... Baaaaad!"
                L.XTHard_msg = "Hardmode engaged!"
                L.XTHard_opt = "Hardmode message"
                L.LifeSpark_msg = "New Life Spark!"
                L.LifeSpark_opt = "Life Spark spawn warning"
                L.Consumption_msg = "Voidzone!!!"
                L.Consumption_opt = "Standing in a voidzone"
        end

        L = mod:GetLocale()
        self.L = L
        
        self:SetTrigger(L.YellPull, 33293)
        self:SetWin(L.YellDeath, 33293)

        tTympanicTantrumCD              = self:CDTimer(50, 62776)
        tTympanicTantrumCast    = self:CastTimer(62776)
        tTympanicTantrumDur             = self:DurTimer(8, 62776)
        tSearingLightDur                = self:DurTargetTimer(9, 63023)
        tExposeHeart                    = self:DurTimer(30, 63849)      
        tGravityBombDur                 = self:DurTargetTimer(9, 64234)
        
        mLifeSpark                              = self:CustomMessage(L.LifeSpark_msg, L.LifeSpark_opt, 64227, L.LifeSpark_opt)
        mSearingLightCast               = self:TargetMessage(63023)
        mGravityBombCast                = self:TargetMessage(64234)
        
        wConsumption                    = self:CastWarning(L.Consumption_msg, L.Consumption_opt, 30533, L.Consumption_opt)
        wTympanicTantrum                = self:CastWarning(62776)
        wSearingLightRun                = self:RunawayWarning(63023)
        wExposeHeart                    = self:CastWarning(63849)
        wGravityBombRun                 = self:RunawayWarning(64234)
        
        iSearingLight                   = self:Icon("CROSS", 63023, false, 9)
        iGravityBomb                    = self:Icon("SKULL", 64234, false, 9)
        
        tBerserk = self:BerserkTimer(600)
end

---------------------------
-- Locals

local SparkCounter = 0

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

function mod:OnEngage(trigger)
        self:Track("TympanicTantrum", 62776, 62775)
        self:Track("ExposeHeart", 63849)
        self:DeathTrack("Hardmode", 33329)
        self:Track("SearingLight", 63018, 65121)
        self:Track("LifeSpark", 64227)
        self:Track("GravityBomb", 63024, 64234)
        self:Track("Consumption", 64208, 64206)
        
        SparkCounter = 0
                        
        tBerserk:Start()
end

function mod:TympanicTantrum(event, args)
        if event == "SPELL_CAST_START" then
                tTympanicTantrumCast:Start()
                wTympanicTantrum:Show()
        end
        if event == "SPELL_AURA_APPLIED" then
                tTympanicTantrumDur:Start()
        end
        if event == "SPELL_AURA_REMOVED" then
                tTympanicTantrumCD:Start()
        end
end

function mod:ExposeHeart(event, args)
        if event == "SPELL_AURA_APPLIED" then
                RW.Callbacks:Fire("MPBHealthByID", 33329)
                tExposeHeart:Start()
                wExposeHeart:Show()
        end
end

function mod:Hardmode(event, args)
        RW.Callbacks:Fire("MPBHealthHideByID", 33329)
        tExposeHeart:Stop()
end

function mod:SearingLight(event, args)
        if event == "SPELL_AURA_APPLIED" then
                tSearingLightDur:Start(args.dName)
                iSearingLight:Show(args.dName)
                mSearingLightCast:Show(args.dName)
                
                if args:IsPlayer() then
                        wSearingLightRun:Show() 
                end
        end
end     

function mod:LifeSpark(event, args)
        if event == "SPELL_AURA_APPLIED" then
                if args:IsPlayer() then
                        mLifeSpark:Show()
                end
        end
end

function mod:GravityBomb(event, args)
        if event == "SPELL_AURA_APPLIED" then
                tGravityBombDur:Start(args.dName)
                iGravityBomb:Show(args.dName)
                mGravityBombCast:Show(args.dName)
                
                if args:IsPlayer() then
                        wGravityBombRun:Show()
                end
        end
end

function mod:Consumption(event, args)
        if event == "SPELL_DAMAGE" and args:IsPlayer() == true then
                wConsumption:Show()
        end             
end

Compare with Previous | Blame