WoWInterface SVN RaidWatch2

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

Compare with Previous | Blame | View Log

local mod = RW:Boss("Razorscale", "Ulduar", "The Siege of Ulduar")
local L

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

---------------------------
-- Variables
local tBerserk
-- Phase 1
local tTurret1, tTurret2, tTurret3, tTurret4
local wDevouringFlame
local wWhirlwind
local tGrounded
-- Phase 2
local tFuseArmorDur
local tWingBuffetCast, wWingBuffet
local tFlameBreathCast
local mPhase


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

function mod:OnRegister()
        L = mod:RegisterLocale(self:GetName(), "enUS", true)
        if L then
                L.YellPull = "Give us a moment to prepare to build the turrets."
                L.Grounded = "Move quickly! She won't remain grounded for long!"
                L.Liftoff = "Fires out! Let's rebuild those turrets!"
                L.Phase2 = "%s grounded permanently!"
                L.Turrets_msg = "Turrets ready!"
                L.Turrets_opt = "Turrets ready message"
                L.Turret1_opt = "Turret 1 ready bar"
                L.Turret2_opt = "Turret 2 ready bar"
                L.Turret3_opt = "Turret 3 ready bar"
                L.Turret4_opt = "Turret 4 ready bar"
        end

        L = mod:GetLocale()
        self.L = L
        
        self:SetTrigger(L.YellPull, 33186)
        self:SetWin(33186)
        mod:SetDelay(20)
        
        tBerserk = self:BerserkTimer(900)
        
-- Phase 1
        tTurret1, tTurret2, tTurret3, tTurret4 = self:CustomTimer(55, L.Turrets_msg, L.Turret1_opt, 39694, L.Turrets_msg), self:CustomTimer(20, L.Turrets_msg, L.Turret2_opt, 39694, L.Turrets_msg), self:CustomTimer(20, L.Turrets_msg, L.Turret3_opt, 39694, L.Turrets_msg), self:CustomTimer(20, L.Turrets_msg, L.Turret4_opt, 39694, L.Turrets_msg)
        mTurret = self:CustomMessage(L.Turrets_msg, L.Turrets_opt, 39694, L.Turrets_msg)
--      wDevouringFlame = self:RunawayWarning(63014)
        wWhirlwind = self:CastWarning(63808)
        tGrounded = self:DurTimer(40, 20170)
        
-- Phase 2
        mPhase = self:PhaseMessage()
        tFuseArmorDur = self:DurTargetStackTimer(20, 64771, nil, nil, false)
        tWingBuffetCast, wWingBuffet = self:CastTimer(62666), self:CastWarning(62666)
        tFlameBreathCast, tFlameBreathCD = self:CastTimer(64021), self:CDTimer(18.5, 64021)
                
end

---------------------------
-- Locals
local turretCounter
local raidsize
---------------------------
-- Start

function mod:OnEngage(trigger)
        self:YellTrack("Turrets", L.Liftoff)
--      self:Track("DevouringFlame", 64733, 64704)
        self:Track("Whirlwind", 63807, 63808)
        self:YellTrack("Grounded", L.Grounded)
        
        self:YellTrack("Phase2", L.Phase2)
        self:Track("FuseArmor", 64771)
        self:Track("WingBuffet", 62666)
        self:Track("FlameBreath", 64021, 63317)

        tBerserk:Start()
        raidsize = GetInstanceDifficulty()
        if raidsize == 2 then
                tTurret1:Start()
                tTurret2:Schedule(55)
                tTurret3:Schedule(75)
        tTurret4:Schedule(95)
                mTurret:Schedule(115)
        else
                tTurret1:Start()
                tTurret2:Schedule(55)
                mTurret:Schedule(75)
        end
end

------------ Phase 1
function mod:Turrets(event, msg, name)
        if msg == L.Liftoff then
                if raidsize == 2 then
                        tTurret1:Start()
                        tTurret2:Schedule(55)
                        tTurret3:Schedule(75)
                tTurret4:Schedule(95)
                        mTurret:Schedule(115)
                end
        else
                tTurret1:Start()
                tTurret2:Schedule(55)
                mTurret:Schedule(75)
        end
end

-- function mod:DevouringFlames(event, args)
--      if event == "SPELL_DAMAGE" then
--              if args:IsPlayer() then
--                      wDevouringFlame:Show()
--              end
--      end
-- end

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

function mod:Grounded(event, msg, name)
        if msg == L.Grounded then
                tGrounded:Start()
        end
end

------------- Phase 2
function mod:Phase2(event, msg, name)
        if msg == L.Phase2 then
                mPhase:Show(2)
                tTurret1:Stop()
                tTurret2:Stop()
                tTurret3:Stop()
        tTurret4:Stop()
                mTurret:Unschedule()
                tGrounded:Stop()
                tTurret1:Unschedule()
                tTurret2:Unschedule()
                tTurret3:Unschedule()
        tTurret4:Unschedule()
        end
end

function mod:FuseArmor(event, args)
        if event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_APPLIED_DOSE" then
                tFuseArmorDur:Start(args.dName, args.amount or 1)
        end
end

function mod:WingBuffet(event, args)
        if event == "SPELL_CAST_START" then
                tWingBuffetCast:Start()
                wWingBuffet:Show()
        end
end

function mod:FlameBreath(event, args)
        if event == "SPELL_CAST_START" then
                tFlameBreathCast:Start()
                tFlameBreathCD:Schedule(2.5)
        end
end

Compare with Previous | Blame