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.
144 lines
4.1 KiB
144 lines
4.1 KiB
--TO DO
|
|
--add stages and descriptions
|
|
--had only 1 go on last phase to get ID's and timers so could do a rerun to see if last phase works correctly
|
|
--could add stage descriptions
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Lord Erdris Thorn", 1710) -- End of the Risen Threat
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(118529, -- Lord Erdris Thorn
|
|
118447, -- Jarod Shadowsong
|
|
118492, -- Corrupted Risen Arbalest
|
|
118491, -- Corrupted Risen Mage
|
|
118489 -- Corrupted Risen Soldier
|
|
)
|
|
mod.otherMenu = 1716 -- Broken Shore Mage Tower
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local castCollector = {}
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:GetLocale()
|
|
if L then
|
|
L.erdris = "Lord Erdris Thorn"
|
|
|
|
L.warmup_trigger = "Your arrival is well-timed."
|
|
L.warmup_trigger2 = "What's... happening?" -- Stage 5
|
|
|
|
L.mage = "Corrupted Risen Mage"
|
|
L.soldier = "Corrupted Risen Soldier"
|
|
L.arbalest = "Corrupted Risen Arbalest"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
"warmup",
|
|
|
|
--[[ Corrupted Risen Arbalest ]]--
|
|
235984, -- Mana Sting
|
|
|
|
--[[ Corrupted Risen Mage ]]--
|
|
235833, -- Arcane Blitz
|
|
|
|
--[[ Corrupted Risen Soldier ]]--
|
|
235823, -- Knife Dance
|
|
236720, -- Frenzied Assault
|
|
|
|
--[[ Lord Erdris Thorn ]]--
|
|
237188, -- Ignite Soul
|
|
237191, -- Fel Stomp
|
|
},{
|
|
["warmup"] = "general",
|
|
[235984] = L.arbalest,
|
|
[235833] = L.mage,
|
|
[235823] = L.soldier,
|
|
[237188] = L.erdris
|
|
}
|
|
end
|
|
|
|
function mod:OnRegister()
|
|
self.displayName = L.erdris
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus")
|
|
self:RegisterEvent("CHAT_MSG_MONSTER_SAY", "Warmup")
|
|
self:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START")
|
|
self:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED")
|
|
|
|
self:Log("SPELL_CAST_START", "ArcaneBlitz", 235833)
|
|
self:Log("SPELL_CAST_START", "KnifeDance", 235823)
|
|
self:Log("SPELL_CAST_SUCCESS", "FrenziedAssault", 236720)
|
|
self:Log("SPELL_CAST_SUCCESS", "IgniteSoul", 237188)
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
castCollector = {}
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:Warmup(_, msg)
|
|
if msg:find(L.warmup_trigger, nil, true) then -- Start
|
|
self:Bar("warmup", 29, CL.active, "spell_mage_focusingcrystal")
|
|
elseif msg:find(L.warmup_trigger2, nil, true) then -- Stage 5
|
|
self:Bar("warmup", 22, CL.active, "spell_mage_focusingcrystal")
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_CHANNEL_START(_, _, spellName, _, castGUID, spellId)
|
|
if castCollector[castGUID] then return end
|
|
if spellId == 235984 then -- Mana Sting
|
|
castCollector[castGUID] = true
|
|
self:CDBar(spellId, 14.6)
|
|
self:MessageOld(spellId, "red", "alert", CL.casting:format(spellName))
|
|
end
|
|
end
|
|
|
|
function mod:ArcaneBlitz(args)
|
|
local unit = self:GetUnitIdByGUID(args.sourceGUID)
|
|
if unit then
|
|
local _, amount = self:UnitBuff(unit, args.spellId)
|
|
if amount and amount > 3 then
|
|
self:MessageOld(args.spellId, "yellow", "alert", CL.count:format(args.spellName, amount))
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, spellName, _, castGUID, spellId)
|
|
if castCollector[castGUID] then return end
|
|
if spellId == 237191 then -- Fel Stomp
|
|
castCollector[castGUID] = true
|
|
self:MessageOld(spellId, "orange", "alarm", CL.incoming:format(spellName))
|
|
self:CDBar(spellId, 11)
|
|
end
|
|
end
|
|
|
|
function mod:IgniteSoul(args)
|
|
self:CDBar(args.spellId, 18)
|
|
self:MessageOld(args.spellId, "red", "warning", CL.incoming:format(args.spellName))
|
|
end
|
|
|
|
function mod:KnifeDance(args)
|
|
self:CDBar(args.spellId, 23)
|
|
self:MessageOld(args.spellId, "orange", "alarm", CL.casting:format(args.spellName))
|
|
end
|
|
|
|
function mod:FrenziedAssault(args)
|
|
self:CDBar(args.spellId, 19)
|
|
self:MessageOld(args.spellId, "red", "alarm", CL.casting:format(args.spellName))
|
|
end
|
|
|