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.

102 lines
2.9 KiB

4 years ago
-------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Lord Godfrey", 33, 100)
if not mod then return end
mod:RegisterEnableMob(46964)
mod.engageId = 1072
mod.respawnTime = 30
-------------------------------------------------------------------------------
-- Locals
--
local cursedBulletsCount = 0
-------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
93629, -- Cursed Bullets
{93675, "TANK_HEALER"}, -- Mortal Wound
93707, -- Summon Bloodthirsty Ghouls
93520, -- Pistol Barrage
}
end
function mod:OnBossEnable()
self:Log("SPELL_CAST_START", "CursedBullets", 93629)
self:Log("SPELL_AURA_APPLIED", "CursedBulletsApplied", 93629)
self:Log("SPELL_AURA_REMOVED", "CursedBulletsRemoved", 93629)
self:Log("SPELL_AURA_APPLIED", "MortalWound", 93675)
self:Log("SPELL_AURA_APPLIED_DOSE", "MortalWound", 93675)
self:Log("SPELL_AURA_APPLIED", "SummonBloodthirstyGhouls", 93707)
self:Log("SPELL_CAST_START", "PistolBarrage", 93520)
self:Log("SPELL_DAMAGE", "PistolBarrageDamage", 93564)
self:Log("SPELL_MISSED", "PistolBarrageDamage", 93564)
end
function mod:OnEngage()
cursedBulletsCount = 0
self:CDBar(93629, 19.1) -- Cursed Bullets
self:CDBar(93707, 5.7) -- Summon Bloodthirsty Ghouls
self:CDBar(93520, 11.2) -- Pistol Barrage
end
-------------------------------------------------------------------------------
-- Event Handlers
--
function mod:CursedBullets(args)
cursedBulletsCount = cursedBulletsCount + 1
self:CDBar(args.spellId, cursedBulletsCount % 2 == 0 and 18.2 or 12.1)
if self:Interrupter() then
self:MessageOld(args.spellId, "orange", nil, CL.casting:format(args.spellName))
end
end
function mod:CursedBulletsApplied(args)
local canDispel = self:Dispeller("curse")
if canDispel or self:Me(args.destGUID) or self:Healer() then
self:TargetMessageOld(args.spellId, args.destName, "orange", canDispel and "alarm", nil, nil, canDispel)
self:TargetBar(args.spellId, 15, args.destName)
end
end
function mod:CursedBulletsRemoved(args)
self:StopBar(args.spellName, args.destName)
end
function mod:MortalWound(args)
local amount = args.amount or 1
self:StackMessage(args.spellId, args.destName, amount, "yellow")
end
function mod:SummonBloodthirstyGhouls(args)
self:MessageOld(args.spellId, "cyan", "info")
self:CDBar(args.spellId, 30.3)
end
function mod:PistolBarrage(args)
self:MessageOld(args.spellId, "red", "long")
self:CastBar(args.spellId, 6)
self:CDBar(args.spellId, 30.3)
end
do
local prev = 0
function mod:PistolBarrageDamage(args)
if self:Me(args.destGUID) then
local t = GetTime()
if t - prev > 2 then
prev = t
self:MessageOld(93520, "blue", "alert", CL.you:format(args.spellName))
end
end
end
end