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.

120 lines
3.7 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Warlord Parjesh", 1456, 1480)
if not mod then return end
mod:RegisterEnableMob(91784)
mod.engageId = 1810
--------------------------------------------------------------------------------
-- Locals
--
local addCount = 1
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
{192094, "ICON", "SAY", "FLASH"}, -- Impaling Spear
192131, -- Throw Spear
197064, -- Enrage
197502, -- Restoration
191900, -- Crashing Wave
192053, -- Quicksand
192072, -- Call Reinforcements
196563, -- Call Reinforcements
}, {
[192094] = "general",
[192072] = "normal",
[196563] = "heroic",
}
end
function mod:OnBossEnable()
self:Log("SPELL_AURA_APPLIED", "ImpalingSpear", 192094)
self:Log("SPELL_AURA_REMOVED", "ImpalingSpearOver", 192094)
self:Log("SPELL_AURA_APPLIED", "ThrowSpear", 192131)
self:Log("SPELL_CAST_SUCCESS", "CallReinforcementsNormal", 192072, 192073)
self:Log("SPELL_CAST_SUCCESS", "CallReinforcements", 196563)
self:Log("SPELL_AURA_APPLIED", "Enrage", 197064)
self:Log("SPELL_CAST_START", "Restoration", 197502)
self:Log("SPELL_CAST_START", "CrashingWave", 191900)
self:Log("SPELL_AURA_APPLIED", "QuicksandDamage", 192053)
self:Log("SPELL_PERIODIC_DAMAGE", "QuicksandDamage", 192053)
self:Log("SPELL_PERIODIC_MISSED", "QuicksandDamage", 192053)
end
function mod:OnEngage()
addCount = 1
self:CDBar(192094, self:Normal() and 35 or 29) -- Impaling Spear
self:CDBar(self:Normal() and 192072 or 196563, 5) -- Call Reinforcements
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:ImpalingSpear(args)
self:TargetMessageOld(args.spellId, args.destName, "red", "warning")
self:CDBar(args.spellId, 27) -- pull:35.0, 31.6 / hc pull:29.2, 29.2, 26.8 / m pull:29.1, 28.0, 28.3, 27.5
self:PrimaryIcon(args.spellId, args.destName)
if self:Me(args.destGUID) then
self:Say(args.spellId)
self:Flash(args.spellId)
end
end
function mod:ImpalingSpearOver(args)
self:PrimaryIcon(args.spellId)
end
function mod:ThrowSpear(args)
if self:Me(args.destGUID) or self:Healer() then
self:TargetMessageOld(args.spellId, args.destName, "red", "alarm", nil, nil, true)
end
end
do
function mod:CallReinforcementsNormal(args) -- Normal only
--["192073-Call Reinforcements"] = "pull:26.0, 52.3",
--["192072-Call Reinforcements"] = "pull:5.4, 52.3, 52.2",
self:MessageOld(192072, "yellow", "info", args.spellName, args.spellId)
self:CDBar(192072, addCount % 2 == 0 and 31 or 20, args.spellName, args.spellId == 192072 and 192073 or 192072) -- Use correct icon for upcoming add
addCount = addCount + 1
end
function mod:CallReinforcements(args) -- Heroic +
self:MessageOld(args.spellId, "yellow", "info")
self:CDBar(args.spellId, 28) -- hc pull:5.4, 31.6, 31.6, 27.9, 29.2 / m pull:5.7, 31.5, 28.0, 27.9, 27.9
end
end
function mod:Enrage(args)
self:MessageOld(args.spellId, "orange", "alert", CL.percent:format(30, args.spellName))
end
function mod:Restoration(args)
self:MessageOld(args.spellId, "green", self:Interrupter() and "warning" or "long", CL.casting:format(args.spellName))
end
function mod:CrashingWave(args)
self:MessageOld(args.spellId, "yellow", "alert", CL.casting:format(args.spellName))
end
do
local prev = 0
function mod:QuicksandDamage(args)
if self:Me(args.destGUID) then
local t = GetTime()
if t-prev > 2 then
prev = t
self:MessageOld(args.spellId, "blue", "alarm", CL.underyou:format(args.spellName))
end
end
end
end