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.

228 lines
6.4 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Spires of Ascension Trash", 2285)
if not mod then return end
mod.displayName = CL.trash
mod:RegisterEnableMob(
163503, -- Etherdiver
163458, -- Forsworn Castigator
168420, -- Forsworn Champion
168318, -- Forsworn Goliath
168418, -- Forsworn Inquisitor
163459, -- Forsworn Mender
163520, -- Forsworn Squad-Leader
168718, -- Forsworn Warden
168845, -- Astronos
168843, -- Klotos
168844 -- Lakesis
)
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.etherdiver = "Etherdiver"
L.forsworn_castigator = "Forsworn Castigator"
L.forsworn_champion = "Forsworn Champion"
L.forsworn_goliath = "Forsworn Goliath"
L.forsworn_inquisitor = "Forsworn Inquisitor"
L.forsworn_mender = "Forsworn Mender"
L.forsworn_squad_leader = "Forsworn Squad-Leader"
L.forsworn_warden = "Forsworn Warden"
L.astronos = "Astronos"
L.lakesis = "Lakesis"
end
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
-- Etherdiver
{317661, "DISPEL"}, -- Insidious Venom
-- Forsworn Castigator
{317963, "DISPEL"}, -- Burden of Knowledge
-- Forsworn Champion
327655, -- Infuse Weapon
-- Forsworn Goliath
327413, -- Rebellious Fist
-- Forsworn Inquisitor
327648, -- Internal Strife
-- Forsworn Mender
317936, -- Forsworn Doctrine
327332, -- Imbue Weapon
-- Forsworn Squad-Leader
317985, -- Crashing Strike
-- Forsworn Warden
328295, -- Greater Mending
328288, -- Bless Weapon
-- Lakesis
328458, -- Diminuendo
-- Astronos
{328462, "NAMEPLATEBAR"}, -- Charged Spear
}, {
[317661] = L.forsworn_squad_leader,
[317963] = L.forsworn_castigator,
[327655] = L.forsworn_champion,
[327413] = L.forsworn_goliath,
[327648] = L.forsworn_inquisitor,
[317936] = L.forsworn_mender,
[317985] = L.forsworn_squad_leader,
[328295] = L.forsworn_warden,
[328458] = L.lakesis,
[328462] = L.astronos,
}
end
function mod:OnBossEnable()
-- Etherdiver
self:Log("SPELL_AURA_APPLIED", "InsidiousVenomApplied", 317661)
-- Forsworn Castigator
self:Log("SPELL_CAST_START", "BurdenOfKnowledge", 317963)
self:Log("SPELL_AURA_APPLIED", "BurdenOfKnowledgeApplied", 317963)
-- Forsworn Champion
self:Log("SPELL_CAST_START", "InfuseWeapon", 327655)
self:Log("SPELL_AURA_APPLIED", "InfuseWeaponApplied", 327655)
-- Forsworn Goliath
self:Log("SPELL_CAST_START", "RebelliousFist", 327413)
-- Forsworn Inquisitor
self:Log("SPELL_CAST_START", "InternalStrife", 327648)
-- Forsworn Mender
self:Log("SPELL_CAST_START", "ForswornDoctrine", 317936)
self:Log("SPELL_CAST_START", "ImbueWeapon", 327332)
self:Log("SPELL_AURA_APPLIED", "ImbueWeaponApplied", 327332)
-- Forsworn Squad-Leader
self:Log("SPELL_CAST_START", "CrashingStrike", 317985)
-- Forsworn Warden
self:Log("SPELL_CAST_START", "GreaterMending", 328295)
self:Log("SPELL_CAST_START", "BlessWeapon", 328288)
self:Log("SPELL_AURA_APPLIED", "BlessWeaponApplied", 328288)
-- Lakesis
self:Log("SPELL_CAST_START", "Diminuendo", 328458)
self:Death("LakesisDeath", 168844)
-- Astronos
self:Log("SPELL_CAST_START", "ChargedSpear", 328462)
end
--------------------------------------------------------------------------------
-- Event Handlers
--
-- Etherdiver
function mod:InsidiousVenomApplied(args)
if self:Dispeller("magic", nil, args.spellId) then
self:TargetMessage(args.spellId, "yellow", args.destName)
self:PlaySound(args.spellId, "alert", nil, args.destName)
end
end
-- Forsworn Castigator
do
local prev = 0
function mod:BurdenOfKnowledge(args)
local t = args.time
if t-prev > 1.5 then
prev = t
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
end
end
end
function mod:BurdenOfKnowledgeApplied(args)
if self:Dispeller("magic", nil, args.spellId) then
self:TargetMessage(args.spellId, "yellow", args.destName)
self:PlaySound(args.spellId, "alert", nil, args.destName)
end
end
-- Forsworn Champion
function mod:InfuseWeapon(args)
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "info")
end
function mod:InfuseWeaponApplied(args)
if self:Me(args.destGUID) then
self:PersonalMessage(args.spellId)
self:PlaySound(args.spellId, "info")
end
end
-- Forsworn Goliath
function mod:RebelliousFist(args)
self:Message(args.spellId, "red", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
end
-- Forsworn Inquisitor
function mod:InternalStrife(args)
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
end
-- Forsworn Mender
function mod:ForswornDoctrine(args)
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
end
function mod:ImbueWeapon(args)
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "info")
end
function mod:ImbueWeaponApplied(args)
if self:Me(args.destGUID) then
self:PersonalMessage(args.spellId)
self:PlaySound(args.spellId, "info")
end
end
-- Forsworn Squad-Leader
function mod:CrashingStrike(args)
self:Message(args.spellId, "red")
self:PlaySound(args.spellId, "alarm")
end
-- Forsworn Warden
function mod:GreaterMending(args)
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
end
function mod:BlessWeapon(args)
self:Message(args.spellId, "yellow", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "info")
end
function mod:BlessWeaponApplied(args)
if self:Me(args.destGUID) then
self:PersonalMessage(args.spellId)
self:PlaySound(args.spellId, "info")
end
end
-- Lakesis
function mod:Diminuendo(args)
self:Message(args.spellId, "red")
self:PlaySound(args.spellId, "alarm")
self:Bar(args.spellId, 16)
end
function mod:LakesisDeath(args)
self:StopBar(328458) -- Diminuendo
end
-- Astronos
function mod:ChargedSpear(args)
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "alert")
self:NameplateBar(args.spellId, 16.5, args.sourceGUID)
end