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.
134 lines
3.8 KiB
134 lines
3.8 KiB
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Devos, Paragon of Doubt", 2285, 2412)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(162061) -- Devos
|
|
mod.engageId = 2359
|
|
--mod.respawnTime = 30
|
|
mod:SetStage(1)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local runThroughCount = 1
|
|
local lostConfidenceCount = 1
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
"stages",
|
|
{334625, "EMPHASIZE"}, -- Abyssal Detonation
|
|
{322818, "SAY", "SAY_COUNTDOWN"}, -- Lost Confidence
|
|
{323943, "SAY"}, -- Run Through
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:Log("SPELL_CAST_START", "Activate", 322999)
|
|
self:Log("SPELL_CAST_START", "AbyssalDetonation", 334625)
|
|
self:Log("SPELL_CAST_SUCCESS", "LostConfidence", 322818)
|
|
self:Log("SPELL_AURA_APPLIED", "LostConfidenceApplied", 322818)
|
|
self:Log("SPELL_AURA_REMOVED", "LostConfidenceRemoved", 322818)
|
|
self:Log("SPELL_CAST_START", "RunThrough", 323943)
|
|
self:Log("SPELL_CAST_SUCCESS", "RunThroughSuccess", 323943)
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
runThroughCount = 1
|
|
lostConfidenceCount = 1
|
|
self:SetStage(1)
|
|
self:CDBar(323943, 12) -- Run Through
|
|
self:CDBar(334625, 21) -- Abyssal Detonation
|
|
self:CDBar(322818, 25.5) -- Lost Confidence
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:Activate(args)
|
|
self:SetStage(2)
|
|
self:Message("stages", "cyan", CL.stage:format(2), false)
|
|
self:PlaySound("stages", "long")
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1")
|
|
self:StopBar(323943) -- Run Through
|
|
self:StopBar(334625) -- Abyssal Detonation
|
|
self:StopBar(322818) -- Lost Confidence
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(event, unit, _, spellId)
|
|
if spellId == 330433 then -- Shut Down
|
|
self:UnregisterUnitEvent(event, unit)
|
|
runThroughCount = 1
|
|
lostConfidenceCount = 1
|
|
self:SetStage(1)
|
|
self:Message("stages", "cyan", CL.stage:format(1), false)
|
|
self:PlaySound("stages", "long")
|
|
self:CDBar(323943, 11.8) -- Run Through
|
|
self:CDBar(334625, 20.7) -- Abyssal Detonation
|
|
self:CDBar(322818, 25.5) -- Lost Confidence
|
|
end
|
|
end
|
|
|
|
function mod:AbyssalDetonation(args)
|
|
self:Message(args.spellId, "yellow")
|
|
self:PlaySound(args.spellId, "warning")
|
|
self:Bar(args.spellId, 20.6)
|
|
self:CastBar(args.spellId, 4)
|
|
end
|
|
|
|
function mod:LostConfidence(args)
|
|
lostConfidenceCount = lostConfidenceCount + 1
|
|
self:Bar(args.spellId, lostConfidenceCount == 2 and 31.6 or 20.6)
|
|
end
|
|
|
|
do
|
|
local playerList = mod:NewTargetList()
|
|
function mod:LostConfidenceApplied(args)
|
|
playerList[#playerList+1] = args.destName
|
|
if self:Me(args.destGUID) then
|
|
self:Say(args.spellId)
|
|
self:SayCountdown(args.spellId, 15)
|
|
self:PlaySound(args.spellId, "alarm")
|
|
end
|
|
self:TargetsMessage(args.spellId, "yellow", playerList)
|
|
end
|
|
|
|
function mod:LostConfidenceRemoved(args)
|
|
if self:Me(args.destGUID) then
|
|
self:Message(args.spellId, "green", CL.removed:format(args.spellName))
|
|
self:PlaySound(args.spellId, "info")
|
|
self:CancelSayCountdown(args.spellId)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:RunThrough(args)
|
|
runThroughCount = runThroughCount + 1
|
|
self:Bar(args.spellId, runThroughCount == 3 and 14.6 or 20.6)
|
|
self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
|
|
end
|
|
|
|
function mod:RunThroughSuccess()
|
|
self:UnregisterEvent("CHAT_MSG_MONSTER_YELL")
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(event, _, _, _, _, target)
|
|
if target then
|
|
self:UnregisterEvent(event)
|
|
|
|
self:TargetMessage(323943, "orange", target)
|
|
self:PlaySound(323943, "alert", nil, target)
|
|
|
|
local guid = self:UnitGUID(target)
|
|
if self:Me(guid) then
|
|
self:Say(323943)
|
|
end
|
|
end
|
|
end
|
|
|