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.
153 lines
4.5 KiB
153 lines
4.5 KiB
|
4 years ago
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- 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
|