You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
3.5 KiB

4 years ago
--------------------------------------------------------------------------------
-- TODO
-- Cannon Blast timer
--
--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("HK-8 Aerial Oppression Unit", 2097, 2355)
if not mod then return end
mod:RegisterEnableMob(150190, 150295) -- HK-8 Aerial Oppression Unit, Tank Buster MK1
mod.engageId = 2291
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
"stages",
295536, -- Cannon Blast
302274, -- Fulminating Zap
{295445, "TANK_HEALER"}, -- Wreck
301351, -- Reinforcement Relay
296522, -- Self-Destruct
296080, -- Haywire
-- Hard Mode
{303885, "SAY", "SAY_COUNTDOWN"}, -- Fulminating Burst
}
end
function mod:OnBossEnable()
self:Log("SPELL_CAST_START", "CannonBlast", 295536)
self:Log("SPELL_AURA_APPLIED", "FulminatingZapApplied", 302274)
self:Log("SPELL_CAST_SUCCESS", "Wreck", 295445)
self:Log("SPELL_CAST_SUCCESS", "ReinforcementRelay", 301351)
self:Log("SPELL_CAST_SUCCESS", "LiftOff", 301177)
self:Log("SPELL_AURA_APPLIED", "HaywireApplied", 296080)
self:Log("SPELL_CAST_START", "AnnihilationRay", 295939)
self:Log("SPELL_AURA_APPLIED", "FulminatingBurstApplied", 303885)
self:Log("SPELL_AURA_REMOVED", "FulminatingBurstRemoved", 303885)
self:Death("TankBusterDeath", 150295)
end
function mod:OnEngage()
self:CDBar(295445, 12) -- Wreck
self:Bar(301351, 21.4) -- Reinforcement Relay
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:TankBusterDeath(args)
self:StopBar(301351) -- Reinforcement Relay
self:StopBar(295445) -- Wreck
end
function mod:AnnihilationRay(args)
self:Message("stages", "cyan", CL.stage:format(2), false)
self:PlaySound("stages", "long")
end
function mod:CannonBlast(args)
self:Message(args.spellId, "red")
self:PlaySound(args.spellId, "alert")
self:CastBar(args.spellId, 3)
end
function mod:FulminatingZapApplied(args)
if self:Healer() or self:Me(args.destGUID) then
self:TargetMessage(args.spellId, "orange", args.destName)
self:PlaySound(args.spellId, "info", nil, args.destName)
end
end
function mod:Wreck(args)
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "alarm")
self:Bar(args.spellId, 23)
end
function mod:ReinforcementRelay(args)
self:Message(args.spellId, "orange", CL.spawning:format(CL.adds))
self:PlaySound(args.spellId, "alarm")
self:Bar(args.spellId, 32.8)
self:CDBar(296522, 15) -- Self-Destruct
end
function mod:LiftOff(args)
self:Message("stages", "cyan", CL.stage:format(1), false)
self:PlaySound("stages", "long")
self:CDBar(295445, 20.5) -- Wreck
self:Bar(301351, 31.5) -- Reinforcement Relay
end
function mod:HaywireApplied(args)
self:Message(args.spellId, "cyan", CL.onboss:format(args.spellName))
self:PlaySound(args.spellId, "long")
self:TargetBar(args.spellId, 30, args.destName)
end
function mod:FulminatingBurstApplied(args)
self:TargetMessage(args.spellId, "orange", args.destName)
self:PlaySound(args.spellId, "info", nil, args.destName)
self:TargetBar(args.spellId, 9)
if self:Me(args.destGUID) then
self:Yell(args.spellId)
self:YellCountdown(args.spellId, 9, nil, 5)
end
end
function mod:FulminatingBurstRemoved(args)
self:StopBar(args.spellId, args.destName)
if self:Me(args.destGUID) then
self:CancelYellCountdown(args.spellId)
end
end