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.
102 lines
2.9 KiB
102 lines
2.9 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("King Deepbeard", 1456, 1491)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(91797)
|
|
mod.engageId = 1812
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local bubblesOnMe = false
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
193051, -- Call the Seas
|
|
{193018, "FLASH"}, -- Gaseous Bubbles
|
|
193093, -- Ground Slam
|
|
{193152, "PROXIMITY"}, -- Quake
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:Log("SPELL_CAST_SUCCESS", "CallTheSeas", 193051)
|
|
self:Log("SPELL_CAST_SUCCESS", "GaseousBubbles", 193018)
|
|
self:Log("SPELL_AURA_APPLIED", "GaseousBubblesApplied", 193018)
|
|
self:Log("SPELL_AURA_REMOVED", "GaseousBubblesRemoved", 193018)
|
|
self:Log("SPELL_CAST_START", "GroundSlam", 193093)
|
|
self:Log("SPELL_CAST_START", "Quake", 193152)
|
|
self:Log("SPELL_DAMAGE", "Aftershock", 193171)
|
|
self:Log("SPELL_MISSED", "Aftershock", 193171)
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
bubblesOnMe = false
|
|
self:Bar(193051, 20) -- Call the Seas
|
|
self:CDBar(193018, 12) -- Gaseous Bubbles
|
|
self:CDBar(193093, 6) -- Ground Slam
|
|
self:Bar(193152, 15) -- Quake
|
|
self:OpenProximity(193152, 5) -- Quake
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:CallTheSeas(args)
|
|
self:MessageOld(args.spellId, "yellow", "long")
|
|
self:Bar(args.spellId, 30) -- pull:20.5, 30.4, 30.3
|
|
end
|
|
|
|
function mod:GaseousBubbles(args)
|
|
self:CDBar(args.spellId, 32) -- pull:12.8, 35.3, 32.8 / m pull:12.9, 35.3, 32.8, 32.8
|
|
end
|
|
|
|
function mod:GaseousBubblesApplied(args)
|
|
if self:Me(args.destGUID) then
|
|
bubblesOnMe = true
|
|
self:TargetMessageOld(args.spellId, args.destName, "blue", "warning")
|
|
self:TargetBar(args.spellId, 20, args.destName)
|
|
self:Flash(args.spellId)
|
|
end
|
|
end
|
|
|
|
function mod:GaseousBubblesRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
bubblesOnMe = false
|
|
self:MessageOld(args.spellId, "blue", "warning", CL.removed:format(args.spellName))
|
|
self:StopBar(args.spellName, args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:GroundSlam(args)
|
|
self:MessageOld(args.spellId, "orange", "info", CL.incoming:format(args.spellName))
|
|
self:CDBar(args.spellId, 18) -- pull:5.9, 18.2, 20.6, 19.4
|
|
end
|
|
|
|
function mod:Quake(args)
|
|
self:MessageOld(args.spellId, "red", "alert")
|
|
self:Bar(args.spellId, 21) -- pull:15.6, 21.9, 21.8, 21.8
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:Aftershock(args)
|
|
if self:Me(args.destGUID) then
|
|
local t = GetTime()
|
|
-- players with Gaseous Bubbles may (and should) be taking damage intentionally
|
|
if t-prev > (bubblesOnMe and 6 or 1.5) then
|
|
prev = t
|
|
self:MessageOld(193152, "blue", "alert", CL.underyou:format(args.spellName))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|