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.
103 lines
3.0 KiB
103 lines
3.0 KiB
local mod = DBM:NewMod(665, "DBM-Party-MoP", 7, 246)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20240517054509")
|
|
mod:SetCreatureID(59153)
|
|
mod:SetEncounterID(1428)
|
|
mod:SetZone(1007)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 113765",
|
|
"SPELL_AURA_APPLIED_DOSE 113765",
|
|
"SPELL_AURA_REMOVED 113996 113765",
|
|
"SPELL_CAST_START 113999",
|
|
"SPELL_DAMAGE 114009"
|
|
)
|
|
|
|
|
|
local warnBoneSpike = mod:NewTargetNoFilterAnnounce(113999, 3)
|
|
|
|
local specWarnGetBoned = mod:NewSpecialWarning("SpecWarnGetBoned", nil, nil, nil, 1, 2)
|
|
local specWarnSoulFlame = mod:NewSpecialWarningGTFO(114009, nil, nil, nil, 1, 6)--Not really sure what the point of this is yet. It's stupid easy to avoid and seems to serve no fight purpose yet, besides maybe cover some of the bone's you need for buff.
|
|
local specWarnRusting = mod:NewSpecialWarningStack(113765, "Tank", 5, nil, nil, 1, 6)
|
|
local SpecWarnDoctor = mod:NewSpecialWarning("SpecWarnDoctor", nil, nil, nil, 1, 2)
|
|
|
|
local timerBoneSpikeCD = mod:NewCDTimer(8, 113999)
|
|
local timerRusting = mod:NewBuffActiveTimer(15, 113765, nil, "Tank")
|
|
|
|
mod:AddBoolOption("InfoFrame")
|
|
|
|
local boned = DBM:GetSpellName(113996)
|
|
|
|
function mod:BoneSpikeTarget()
|
|
local targetname = self:GetBossTarget(59153)
|
|
if not targetname then return end
|
|
warnBoneSpike:Show(targetname)
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
timerBoneSpikeCD:Start(6.5-delay)
|
|
if not DBM:UnitDebuff("player", boned) then
|
|
specWarnGetBoned:Show()
|
|
specWarnGetBoned:Play("getboned")
|
|
end
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(L.PlayerDebuffs)
|
|
DBM.InfoFrame:Show(5, "playergooddebuff", boned)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 113765 then
|
|
timerRusting:Start()
|
|
if (args.amount or 0) >= 5 and self:AntiSpam(1, 3) then
|
|
specWarnRusting:Show(args.amount)
|
|
specWarnRusting:Play("stackhigh")
|
|
end
|
|
end
|
|
end
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args.spellId == 113996 and args:IsPlayer() then
|
|
specWarnGetBoned:Show()
|
|
specWarnGetBoned:Play("getboned")
|
|
elseif args.spellId == 113765 then
|
|
timerRusting:Cancel()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 113999 then
|
|
self:ScheduleMethod(0.1, "BoneSpikeTarget")
|
|
timerBoneSpikeCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
|
if spellId == 114009 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) then
|
|
specWarnSoulFlame:Show(spellName)
|
|
specWarnSoulFlame:Play("watchfeet")
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg, npc)
|
|
if npc and not UnitIsFriend("player", npc) and (msg == L.TheolenSpawn or msg:find(L.TheolenSpawn)) then
|
|
SpecWarnDoctor:Show()
|
|
SpecWarnDoctor:Play("bigmob")
|
|
end
|
|
end
|
|
|