-------------------------------------------------------------------------------- -- 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