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.
106 lines
2.8 KiB
106 lines
2.8 KiB
|
4 years ago
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Module Declaration
|
||
|
|
--
|
||
|
|
|
||
|
|
local mod, CL = BigWigs:NewBoss("Rixxa Fluxflame", 1594, 2115)
|
||
|
|
if not mod then return end
|
||
|
|
mod:RegisterEnableMob(129231)
|
||
|
|
mod.engageId = 2107
|
||
|
|
mod.respawnTime = 31
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Locals
|
||
|
|
--
|
||
|
|
|
||
|
|
local chemicalBurnCount = 0
|
||
|
|
local azeriteCatalystCount = 0
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Initialization
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:GetOptions()
|
||
|
|
return {
|
||
|
|
270028, -- Azerite Catalyst
|
||
|
|
259853, -- Chemical Burn
|
||
|
|
{260669, "SAY", "FLASH"}, -- Propellant Blast
|
||
|
|
}
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnBossEnable()
|
||
|
|
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1")
|
||
|
|
|
||
|
|
self:Log("SPELL_CAST_SUCCESS", "ChemicalBurnSuccess", 259856)
|
||
|
|
self:Log("SPELL_AURA_APPLIED", "ChemicalBurnApplied", 259853)
|
||
|
|
self:Log("SPELL_CAST_START", "PropellantBlast", 260669)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnEngage()
|
||
|
|
chemicalBurnCount = 0
|
||
|
|
azeriteCatalystCount = 0
|
||
|
|
self:Bar(270028, 4) -- Azerite Catalyst
|
||
|
|
self:Bar(259853, 12.5) -- Chemical Burn
|
||
|
|
self:Bar(260669, 31) -- Propellant Blast
|
||
|
|
end
|
||
|
|
|
||
|
|
--------------------------------------------------------------------------------
|
||
|
|
-- Event Handlers
|
||
|
|
--
|
||
|
|
|
||
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, _, spellId)
|
||
|
|
if spellId == 270028 then -- Azerite Catalyst
|
||
|
|
azeriteCatalystCount = azeriteCatalystCount + 1
|
||
|
|
self:Message(spellId, "red")
|
||
|
|
self:PlaySound(spellId, "long", "watchstep")
|
||
|
|
-- Cooldown alternates between 15 and 27, starting with 15
|
||
|
|
self:Bar(spellId, azeriteCatalystCount % 2 == 1 and 15 or 27)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
function mod:ChemicalBurnSuccess(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 2 then -- Ignore second cast
|
||
|
|
prev = t
|
||
|
|
chemicalBurnCount = chemicalBurnCount + 1
|
||
|
|
-- Cooldown alternates between 15 and 27, starting with 15
|
||
|
|
self:Bar(259853, chemicalBurnCount % 2 == 1 and 15 or 27)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local playerList = mod:NewTargetList()
|
||
|
|
function mod:ChemicalBurnApplied(args)
|
||
|
|
playerList[#playerList+1] = args.destName
|
||
|
|
if self:Me(args.destGUID) or self:Dispeller("magic") then
|
||
|
|
self:PlaySound(args.spellId, "alarm", self:Dispeller("magic") and "dispel")
|
||
|
|
end
|
||
|
|
self:TargetsMessage(args.spellId, "orange", playerList, 2, nil, nil, 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local prev = 0
|
||
|
|
local function printTarget(self, player, guid)
|
||
|
|
if self:Me(guid) then
|
||
|
|
self:Say(260669)
|
||
|
|
self:Flash(260669)
|
||
|
|
end
|
||
|
|
self:TargetMessage(260669, "yellow", player)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:PropellantBlast(args)
|
||
|
|
local t = args.time
|
||
|
|
if t-prev > 10 then
|
||
|
|
prev = t
|
||
|
|
self:CastBar(args.spellId, 6)
|
||
|
|
self:Bar(args.spellId, 42)
|
||
|
|
end
|
||
|
|
self:PlaySound(args.spellId, "alert", "watchstep")
|
||
|
|
self:GetBossTarget(printTarget, 0.5, args.sourceGUID)
|
||
|
|
end
|
||
|
|
end
|