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.

73 lines
2.0 KiB

--------------------------------------------------------------------------------
-- Module declaration
--
local mod, CL = BigWigs:NewBoss("Saboteur Kip'tilak", 962, 655)
if not mod then return end
mod:RegisterEnableMob(56906)
mod.engageId = 1397
mod.respawnTime = 15
--------------------------------------------------------------------------------
-- Locals
--
local nextExplosionWarning = 75
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
{107268, "SAY", "SAY_COUNTDOWN", "ICON"}, -- Sabotage
-5394, -- World in Flames
}
end
function mod:OnBossEnable()
self:Log("SPELL_AURA_APPLIED", "Sabotage", 107268)
self:Log("SPELL_AURA_REMOVED", "SabotageRemoved", 107268)
self:RegisterUnitEvent("UNIT_HEALTH", nil, "boss1")
end
function mod:OnEngage()
nextExplosionWarning = 75 -- casts it at 70% and 30%
self:CDBar(107268, 15.7) -- Sabotage
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:Sabotage(args)
self:TargetMessageOld(args.spellId, args.destName, "red", "alarm", nil, nil, true)
self:TargetBar(args.spellId, 5, args.destName)
self:CDBar(args.spellId, 13.4)
self:PrimaryIcon(args.spellId, args.destName)
if self:Me(args.destGUID) then
self:Say(args.spellId)
self:SayCountdown(args.spellId, 5)
end
end
function mod:SabotageRemoved(args)
self:StopBar(args.spellName, args.destName)
self:PrimaryIcon(args.spellId)
if self:Me(args.destGUID) then
self:CancelSayCountdown(args.spellId)
end
end
function mod:UNIT_HEALTH(event, unit)
local hp = UnitHealth(unit) / UnitHealthMax(unit) * 100
if hp < nextExplosionWarning then
nextExplosionWarning = nextExplosionWarning - 40
self:MessageOld(-5394, "yellow", nil, CL.soon:format(self:SpellName(-5394)))
if nextExplosionWarning < 30 then
self:UnregisterUnitEvent(event, unit)
end
end
end