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.
129 lines
3.4 KiB
129 lines
3.4 KiB
|
|
--------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Emerald Nightmare Trash", 1520)
|
|
if not mod then return end
|
|
mod.displayName = CL.trash
|
|
mod:RegisterEnableMob(
|
|
111004, -- Gelatinized Decay
|
|
111354, -- Taintheart Befouler
|
|
112153 -- Dire Shaman
|
|
)
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Localization
|
|
--
|
|
|
|
local L = mod:NewLocale("enUS", true)
|
|
if L then
|
|
L.gelatinizedDecay = "Gelatinized Decay"
|
|
L.befouler = "Taintheart Befouler"
|
|
L.shaman = "Dire Shaman"
|
|
|
|
L.totem = 223918 -- Corrupted Totem
|
|
L.totem_desc = 223923 -- Twisted Nova (cast by the totem)
|
|
L.totem_icon = "spell_shaman_stormtotem"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
local totemMarker = mod:AddMarkerOption(true, "npc", 8, L.totem, 8, 7) -- Corrupted Totem
|
|
function mod:GetOptions()
|
|
return {
|
|
--[[ Gelatinized Decay ]]--
|
|
221059, -- Wave of Decay
|
|
{221028, "SAY"}, -- Unstable Decay
|
|
--[[ Taintheart Befouler ]]--
|
|
{222719, "SAY"}, -- Befoulment
|
|
--[[ Dire Shaman ]]--
|
|
"totem", -- Corrupted Totem
|
|
totemMarker,
|
|
}, {
|
|
[221059] = L.gelatinizedDecay,
|
|
[222719] = L.befouler,
|
|
["totem"] = L.shaman,
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:RegisterMessage("BigWigs_OnBossEngage", "Disable")
|
|
|
|
--[[ Gelatinized Decay ]]--
|
|
self:Log("SPELL_CAST_START", "WaveofDecay", 221059)
|
|
self:Log("SPELL_AURA_APPLIED", "UnstableDecay", 221028)
|
|
|
|
--[[ Taintheart Befouler ]]--
|
|
self:Log("SPELL_AURA_APPLIED", "Befoulment", 222719)
|
|
|
|
--[[ Dire Shaman ]]--
|
|
self:Log("SPELL_SUMMON", "CorruptedTotem", 223918)
|
|
self:Death("TotemDies", 112474)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
--[[ Gelatinized Decay ]]--
|
|
function mod:WaveofDecay(args)
|
|
if not self:LFR() then
|
|
self:MessageOld(args.spellId, "orange", self:Interrupter(args.sourceGUID) and "info", CL.casting:format(args.spellName))
|
|
end
|
|
end
|
|
|
|
function mod:UnstableDecay(args)
|
|
if self:Me(args.destGUID) then
|
|
self:Say(args.spellId)
|
|
self:TargetBar(args.spellId, 9, args.destName)
|
|
self:TargetMessageOld(args.spellId, args.destName, "blue", "warning")
|
|
end
|
|
end
|
|
|
|
--[[ Taintheart Befouler ]]--
|
|
function mod:Befoulment(args)
|
|
self:TargetMessageOld(args.spellId, args.destName, "green", "alert", nil, nil, true)
|
|
self:TargetBar(args.spellId, 15, args.destName)
|
|
if self:Me(args.destGUID) then
|
|
self:Say(args.spellId)
|
|
end
|
|
end
|
|
|
|
--[[ Dire Shaman ]]--
|
|
do
|
|
local guids = {}
|
|
local nextIcon = 8
|
|
function mod:CorruptedTotem(args)
|
|
self:MessageOld("totem", "red", "long", args.spellName, L.totem_icon)
|
|
if self:GetOption(totemMarker) then
|
|
if not next(guids) then
|
|
nextIcon = 8
|
|
guids[args.destGUID] = nextIcon
|
|
else
|
|
if nextIcon == 8 then nextIcon = 7 else nextIcon = 8 end
|
|
guids[args.destGUID] = nextIcon
|
|
end
|
|
self:RegisterTargetEvents("MarkTotem")
|
|
end
|
|
end
|
|
|
|
function mod:MarkTotem(event, unit, guid)
|
|
local icon = guids[guid]
|
|
if icon and icon > 0 then
|
|
local mobId = self:MobId(guid)
|
|
if mobId == 112474 then -- Corrupted Totem
|
|
self:CustomIcon(false, unit, icon)
|
|
guids[guid] = 0
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:TotemDies(args)
|
|
if guids[args.destGUID] then
|
|
guids[args.destGUID] = nil
|
|
end
|
|
end
|
|
end
|
|
|