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.
128 lines
3.4 KiB
128 lines
3.4 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Dread Captain Lockwood", 1822, 2173)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(129208) -- Dread Captain Lockwood
|
|
mod.engageId = 2109
|
|
mod.respawnTime = 36
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local withdrawn = 0
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locales
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.ordanance_dropped = "Unstable Ordnance Dropped"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
272471, -- Evasive
|
|
269029, -- Clear the Deck
|
|
273470, -- Gut Shot
|
|
268752, -- Withdraw
|
|
{268230, "TANK"}, -- Crimson Swipe
|
|
268260, -- Broadside
|
|
268963, -- Unstable Ordnance
|
|
}, {
|
|
[272471] = "general",
|
|
[268230] = -18230, -- Ashvane Deckhand
|
|
[268260] = -18232, -- Ashvane Cannoneer
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_START", nil, "boss2", "boss3", "boss4")
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1", "boss2", "boss3", "boss4")
|
|
|
|
self:Log("SPELL_AURA_APPLIED", "Evasive", 272471)
|
|
self:Log("SPELL_CAST_START", "CleartheDeck", 269029)
|
|
self:Log("SPELL_CAST_START", "CrimsonSwipe", 268230)
|
|
self:Log("SPELL_CAST_SUCCESS", "GutShot", 273470)
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
withdrawn = 0
|
|
self:Bar(269029, 3.5) -- Clear the Deck
|
|
self:Bar(268752, 12.1) -- Withdraw
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:UNIT_SPELLCAST_START(_, unit, _, spellId)
|
|
if spellId == 268260 then -- Broadside
|
|
local guid = self:UnitGUID(unit)
|
|
if self:MobId(guid) == 136549 then -- Boss add, trash cannoneers have a different id
|
|
self:Message(spellId, "orange")
|
|
self:PlaySound(spellId, "alarm")
|
|
self:Bar(268260, 12) -- Broadside
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, _, spellId)
|
|
if spellId == 268752 then -- Withdraw
|
|
withdrawn = 1
|
|
self:Message(spellId, "yellow")
|
|
self:PlaySound(spellId, "long")
|
|
|
|
self:StopBar(269029) -- Clear the Deck
|
|
self:StopBar(268752) -- Withdraw
|
|
|
|
self:Bar(268260, 11.2) -- Broadside
|
|
elseif spellId == 268745 then -- Energy Tracker / Jump Back
|
|
if withdrawn == 1 then
|
|
self:Message(268752, "green", CL.over:format(self:SpellName(268752)))
|
|
self:PlaySound(268752, "long")
|
|
|
|
self:Bar(269029, 7) -- Clear the Deck
|
|
self:Bar(268752, 35.7) -- Withdraw
|
|
end
|
|
elseif spellId == 268963 then -- Unstable Ordnance (Dropped)
|
|
self:Message(spellId, "cyan", L.ordanance_dropped)
|
|
self:PlaySound(spellId, "info")
|
|
end
|
|
end
|
|
|
|
function mod:Evasive(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "alert")
|
|
end
|
|
|
|
function mod:CleartheDeck(args)
|
|
self:Message(args.spellId, "orange")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
self:Bar(args.spellId, 18)
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:CrimsonSwipe(args)
|
|
local t = args.time
|
|
if t-prev > 2 then
|
|
prev = t
|
|
self:Message(args.spellId, "purple")
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:GutShot(args)
|
|
self:TargetMessage(args.spellId, "red", args.destName)
|
|
self:PlaySound(args.spellId, "alert", nil, args.destName)
|
|
end
|
|
|