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.
78 lines
2.3 KiB
78 lines
2.3 KiB
|
4 years ago
|
-------------------------------------------------------------------------------
|
||
|
|
-- Module Declaration
|
||
|
|
--
|
||
|
|
|
||
|
|
local mod, CL = BigWigs:NewBoss("Rajh", 644, 130)
|
||
|
|
if not mod then return end
|
||
|
|
mod:RegisterEnableMob(39378)
|
||
|
|
mod.engageId = 1078
|
||
|
|
mod.respawnTime = 30
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Locals
|
||
|
|
--
|
||
|
|
|
||
|
|
local warnedAboutBlessingIncoming = nil
|
||
|
|
|
||
|
|
-------------------------------------------------------------------------------
|
||
|
|
-- Initialization
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:GetOptions()
|
||
|
|
return {
|
||
|
|
-2861, -- Sun Strike
|
||
|
|
-2862, -- Summon Sun Orb
|
||
|
|
{-2863, "FLASH"}, -- Inferno Leap
|
||
|
|
76355, -- Blessing of the Sun
|
||
|
|
}
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnBossEnable()
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "SunStrike", 73872)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "SummonSunOrb", 80352)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "InfernoLeap", 87657) -- 87657 = Burning Adrenaline Rush, the debuff you get when he's targeting your location
|
||
|
|
|
||
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnEngage()
|
||
|
|
self:RegisterUnitEvent("UNIT_POWER_FREQUENT", nil, "boss1")
|
||
|
|
end
|
||
|
|
|
||
|
|
-------------------------------------------------------------------------------
|
||
|
|
-- Event Handlers
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:SunStrike()
|
||
|
|
self:MessageOld(-2861, "yellow")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SummonSunOrb()
|
||
|
|
self:MessageOld(-2862, "orange")
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:InfernoLeap(args)
|
||
|
|
if self:Me(args.destGUID) then
|
||
|
|
self:TargetMessageOld(-2863, args.destName, "blue", "warning")
|
||
|
|
self:Flash(-2863)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
function mod:UNIT_POWER_FREQUENT(_, unit)
|
||
|
|
local power = UnitPower(unit) / UnitPowerMax(unit) * 100
|
||
|
|
if power <= 30 and not warnedAboutBlessingIncoming then
|
||
|
|
warnedAboutBlessingIncoming = true
|
||
|
|
self:MessageOld(76355, "cyan", nil, CL.soon:format(self:SpellName(76355)))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, _, spellId)
|
||
|
|
if spellId == 76352 then -- Blessing of the Sun
|
||
|
|
self:MessageOld(76355, "green", "long", CL.casting:format(self:SpellName(spellId)))
|
||
|
|
self:CastBar(76355, 20) -- EJ says "reenergizes himself with ... for 3 sec" but it took 17s for him to get back 100 energy when I tried, and the last SPELL_PERIODIC_ENERGIZE event fired 20s after the USCS
|
||
|
|
self:SimpleTimer(function() warnedAboutBlessingIncoming = nil end, 20) -- no events that indicate the end of this "phase"
|
||
|
|
end
|
||
|
|
end
|