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
3.1 KiB
102 lines
3.1 KiB
local mod = DBM:NewMod(1884, "DBM-BrokenIsles", 1, 822)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240426185020")
|
|
mod:SetCreatureID(117303)
|
|
--mod:SetEncounterID(1880)
|
|
mod:SetReCombatTime(20)
|
|
mod:EnableWBEngageSync()--Enable syncing engage in outdoors
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 233614 234452",
|
|
"SPELL_CAST_SUCCESS 233570",
|
|
"SPELL_AURA_APPLIED 233570 233568",
|
|
"SPELL_PERIODIC_DAMAGE 233850",
|
|
"SPELL_PERIODIC_MISSED 233850"
|
|
)
|
|
|
|
--TODO, actual timer data and verify spellIds
|
|
--TODO, use nameplate auras or HUDMap (since it is outdoors after all)
|
|
local warnIncitePanic = mod:NewSpellAnnounce(233568, 2, nil, false)--Off cause fuckups may result in heavy spam
|
|
local warnShadowBarrage = mod:NewSpellAnnounce(234452, 2)
|
|
|
|
local specWarnIncitePanic = mod:NewSpecialWarningYou(233568, nil, nil, nil, 2, 2)
|
|
local specWarnIncitePanicNear = mod:NewSpecialWarningClose(233568, nil, nil, nil, 1, 2)
|
|
local specWarnVirulentInfection = mod:NewSpecialWarningMove(233850, nil, nil, nil, 1, 2)
|
|
|
|
local timerIncitePanicCD = mod:NewCDTimer(14.6, 233568, nil, nil, nil, 1)
|
|
local timerPestilenceCD = mod:NewCDTimer(14.2, 233614, nil, nil, nil, 3)
|
|
local timerShadowBarrageCD = mod:NewCDTimer(16.7, 234452, nil, nil, nil, 2)
|
|
|
|
--mod:AddReadyCheckOption(37460, false)
|
|
mod:AddRangeFrameOption(8, 233568)
|
|
local PanicDebuff = DBM:GetSpellName(233568)
|
|
|
|
local debuffFilter
|
|
do
|
|
debuffFilter = function(uId)
|
|
if DBM:UnitDebuff(uId, PanicDebuff) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatStart(delay, yellTriggered)
|
|
PanicDebuff = DBM:GetSpellName(233568)
|
|
if yellTriggered then
|
|
|
|
end
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Show(8, debuffFilter)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 233614 then
|
|
timerPestilenceCD:Start()
|
|
elseif spellId == 234452 then
|
|
warnShadowBarrage:Show()
|
|
timerShadowBarrageCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 233570 and self:AntiSpam(4, 3) then
|
|
timerIncitePanicCD:Start()
|
|
end
|
|
end
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 233568 or spellId == 233570 then
|
|
warnIncitePanic:CombinedShow(0.5, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnIncitePanic:Show()
|
|
specWarnIncitePanic:Play("scatter")
|
|
elseif self:CheckNearby(10, args.destName) and not DBM:UnitDebuff("player", args.spellName) then
|
|
specWarnIncitePanicNear:CombinedShow(0.5, args.destName)
|
|
if self:AntiSpam(3, 1) then
|
|
specWarnIncitePanicNear:Play("scatter")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
if spellId == 233850 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) then
|
|
specWarnVirulentInfection:Show()
|
|
specWarnVirulentInfection:Play("runaway")
|
|
end
|
|
end
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
|
|