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.

152 lines
4.5 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Tugar Bloodtotem", 1702) -- Feltotem's Fall
if not mod then return end
mod:RegisterEnableMob(117230, 117484) -- Tugar Bloodtotem, Jormog the Behemoth
mod.otherMenu = 1716 -- Broken Shore Mage Tower
--------------------------------------------------------------------------------
-- Locals
--
local screamTimers = {8.4, 46.1, 19.4, 37.7, 15.8} -- This is not correct
local screamCount = 1
local burstCount = 1
local deathCount = 0
--------------------------------------------------------------------------------
-- Localization
--
local L = mod:GetLocale()
if L then
L.tugar = "Tugar Bloodtotem"
L.jormog = "Jormog the Behemoth"
L.remaining = "Scales Remaining"
L.submerge = "Submerge"
L.submerge_desc = "Submerges below the ground, summoning spitter eggs and falling spikes."
L.submerge_icon = 242379
L.charge = 100
L.charge_desc = "When Jormog is submerged, he will periodically charge in your direction."
L.charge_icon = 100
L.rupture = "{243382} (X)"
L.rupture_desc = "A Fel Rupture in the shape of an X appears under you. After 5 seconds it will rupture the ground, sending spikes into the air and knocking back players on top of it."
L.rupture_icon = 243382
L.totem_warning = "The totem hit you!"
end
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
--[[ Tugar ]]--
242733, -- Fel Burst
243224, -- Fel Surge Totem
"rupture", -- Fel Rupture
--[[ Jormog ]]--
241687, -- Sonic Scream
{238471, "INFOBOX"}, -- Fel Hardened Scales
"submerge",
"charge",
}, {
[242733] = L.tugar,
[241687] = L.jormog,
}
end
function mod:OnRegister()
self.displayName = L.tugar
end
function mod:OnBossEnable()
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus")
self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE")
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1", "boss2")
self:Log("SPELL_CAST_START", "FelBurst", 242733)
self:Log("SPELL_CAST_START", "SonicScream", 241687)
self:Log("SPELL_AURA_REMOVED_DOSE", "ScaleRemoved", 238471)
self:Log("SPELL_AURA_REMOVED", "ScaleRemoved", 238471)
self:Log("SPELL_CAST_START", "FitSurgeStart", 242496)
self:Log("SPELL_AURA_APPLIED", "FitSurgeHitYou", 242496)
self:Death("Deaths", 117230, 117484)
end
function mod:OnEngage()
screamCount = 1
burstCount = 1
deathCount = 0
self:OpenInfo(238471, L.remaining)
self:SetInfo(238471, 1, 9)
self:CDBar(242733, 3.5) -- Fel Burst
self:CDBar(241687, screamTimers[screamCount]) -- Sonic Scream
self:CDBar(243224, 60.7) -- Fel Surge Totem
self:CDBar("submerge", 21.8, L.submerge, L.submerge_icon)
self:CDBar("rupture", 7, "X", L.rupture_icon)
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:FelBurst(args)
self:MessageOld(args.spellId, "orange", "warning", CL.casting:format(args.spellName))
burstCount = burstCount + 1
if burstCount == 4 then burstCount = 1 end
self:CDBar(args.spellId, burstCount == 2 and 23 or 18)
end
function mod:SonicScream(args)
self:MessageOld(args.spellId, "red", "alert", CL.casting:format(args.spellName))
screamCount = screamCount + 1
--self:CDBar(args.spellId, screamTimers[screamCount]) -- innacurate
end
function mod:ScaleRemoved(args)
self:SetInfo(args.spellId, 1, args.amount or 0)
end
function mod:FitSurgeStart(args)
self:MessageOld(243224, "red", "long")
self:CDBar(243224, 25.5)
end
function mod:FitSurgeHitYou(args)
if self:Me(args.destGUID) then
self:MessageOld(243224, "blue", "long", L.totem_warning)
end
end
function mod:CHAT_MSG_MONSTER_EMOTE()
self:MessageOld("charge", "blue", "alarm", CL.incoming:format(self:SpellName(100)), L.charge_icon)
end
function mod:UNIT_SPELLCAST_SUCCEEDED(unit, spellName, _, _, spellId)
if spellId == 34098 then -- ClearAllDebuffs
self:MessageOld("submerge", "orange", "alarm", L.submerge, L.submerge_icon)
self:CDBar("submerge", 60.7, L.submerge, L.submerge_icon)
elseif spellId == 241664 then
self:MessageOld("rupture", "yellow", "alarm", CL.underyou:format("X"), L.rupture_icon)
self:CDBar("rupture", 11, "X", L.rupture_icon)
end
end
function mod:Deaths()
deathCount = deathCount + 1
if deathCount > 1 then
self:Win()
end
end