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.
147 lines
4.6 KiB
147 lines
4.6 KiB
|
3 years ago
|
local mod = DBM:NewMod(2473, "DBM-Party-Dragonflight", 1, 1196)
|
||
|
|
local L = mod:GetLocalizedStrings()
|
||
|
|
|
||
|
|
mod:SetRevision("20220803233609")
|
||
|
|
mod:SetCreatureID(186120)
|
||
|
|
mod:SetEncounterID(2568)
|
||
|
|
mod:SetUsedIcons(8, 7, 6, 5)
|
||
|
|
--mod:SetHotfixNoticeRev(20220322000000)
|
||
|
|
--mod:SetMinSyncRevision(20211203000000)
|
||
|
|
--mod.respawnTime = 29
|
||
|
|
|
||
|
|
mod:RegisterCombat("combat")
|
||
|
|
|
||
|
|
mod:RegisterEventsInCombat(
|
||
|
|
"SPELL_CAST_START 376811 381770 377559",
|
||
|
|
-- "SPELL_CAST_SUCCESS",
|
||
|
|
"SPELL_SUMMON 376797",
|
||
|
|
"SPELL_AURA_APPLIED 376933 377222 378022 377864",
|
||
|
|
"SPELL_AURA_APPLIED_DOSE 377864",
|
||
|
|
"SPELL_AURA_REMOVED 377222 378022",
|
||
|
|
"SPELL_PERIODIC_DAMAGE 378054",
|
||
|
|
"SPELL_PERIODIC_MISSED 378054"
|
||
|
|
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
|
||
|
|
)
|
||
|
|
|
||
|
|
--TODO, proper event for grasping Vines
|
||
|
|
--TODO, proper phasing and timer updates
|
||
|
|
--TODO, better stack alert handling, maybe dispel special warning for RemoveDisease?
|
||
|
|
local warnGraspingVines = mod:NewSpellAnnounce(376933, 3)
|
||
|
|
local warnConsume = mod:NewTargetNoFilterAnnounce(377222, 4)
|
||
|
|
local warnDecaySpray = mod:NewSpellAnnounce(376933, 2)
|
||
|
|
local warnInfectiousSpit = mod:NewStackAnnounce(377864, 2, nil, "Healer|RemoveDisease")
|
||
|
|
|
||
|
|
--local yellInfusedStrikes = mod:NewShortFadesYell(361966)
|
||
|
|
local specWarnGushingOoze = mod:NewSpecialWarningInterrupt(381770, "HasInterrupt", nil, nil, 1, 2)
|
||
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(378054, nil, nil, nil, 1, 8)
|
||
|
|
local specWarnVineWhip = mod:NewSpecialWarningDefensive(377559, nil, nil, nil, 1, 2)
|
||
|
|
|
||
|
|
local timerGraspingVinesCD = mod:NewAITimer(35, 376933, nil, nil, nil, 6)
|
||
|
|
local timerConsume = mod:NewTargetTimer(10, 377222, nil, nil, nil, 3, nil, DBM_COMMON_L.DAMAGE_ICON)
|
||
|
|
local timerDecaySprayCD = mod:NewAITimer(35, 376811, nil, nil, nil, 1, nil, DBM_COMMON_L.DAMAGE_ICON)
|
||
|
|
|
||
|
|
--local berserkTimer = mod:NewBerserkTimer(600)
|
||
|
|
|
||
|
|
--mod:AddRangeFrameOption("8")
|
||
|
|
mod:AddInfoFrameOption(378022, true)
|
||
|
|
mod:AddSetIconOption("SetIconOnDecaySpray", 376811, true, 5, {8, 7, 6, 5})
|
||
|
|
|
||
|
|
mod:GroupSpells(377222, 378022)--Consume with Consuming
|
||
|
|
|
||
|
|
mod.vb.addIcon = 8
|
||
|
|
|
||
|
|
function mod:OnCombatStart(delay)
|
||
|
|
timerGraspingVinesCD:Start(1-delay)
|
||
|
|
timerDecaySprayCD:Start(1-delay)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnCombatEnd()
|
||
|
|
-- if self.Options.RangeFrame then
|
||
|
|
-- DBM.RangeCheck:Hide()
|
||
|
|
-- end
|
||
|
|
if self.Options.InfoFrame then
|
||
|
|
DBM.InfoFrame:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_CAST_START(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 376811 then
|
||
|
|
self.vb.addIcon = 8
|
||
|
|
timerDecaySprayCD:Start()
|
||
|
|
elseif spellId == 381770 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
||
|
|
specWarnGushingOoze:Show(args.sourceName)
|
||
|
|
specWarnGushingOoze:Play("kickcast")
|
||
|
|
elseif spellId == 377559 then
|
||
|
|
--Update timers?
|
||
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
||
|
|
specWarnVineWhip:Show()
|
||
|
|
specWarnVineWhip:Play("defensive")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
--function mod:SPELL_CAST_SUCCESS(args)
|
||
|
|
-- local spellId = args.spellId
|
||
|
|
-- if spellId == 362805 then
|
||
|
|
--
|
||
|
|
-- end
|
||
|
|
--end
|
||
|
|
|
||
|
|
function mod:SPELL_SUMMON(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 376797 then
|
||
|
|
if self.Options.SetIconOnDecaySpray then
|
||
|
|
self:ScanForMobs(args.destGUID, 2, self.vb.addIcon, 1, nil, 12, "SetIconOnDecaySpray")
|
||
|
|
end
|
||
|
|
self.vb.addIcon = self.vb.addIcon - 1
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_APPLIED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 376933 and self:AntiSpam(3, 1) then
|
||
|
|
warnGraspingVines:Show()
|
||
|
|
timerGraspingVinesCD:Start()--Probably not right place to start
|
||
|
|
--Update timers?
|
||
|
|
elseif spellId == 377222 then--On Player
|
||
|
|
warnConsume:Show(args.destName)
|
||
|
|
timerConsume:Start(args.destName)
|
||
|
|
elseif spellId == 378022 then--On Boss
|
||
|
|
if self.Options.InfoFrame then
|
||
|
|
DBM.InfoFrame:SetHeader(args.spellName)
|
||
|
|
DBM.InfoFrame:Show(2, "enemyabsorb", nil, args.amount, "boss1")
|
||
|
|
end
|
||
|
|
elseif spellId == 377864 then
|
||
|
|
warnInfectiousSpit:Show(args.destName, args.amount or 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
||
|
|
|
||
|
|
function mod:SPELL_AURA_REMOVED(args)
|
||
|
|
local spellId = args.spellId
|
||
|
|
if spellId == 377222 then
|
||
|
|
timerConsume:Stop(args.destName)
|
||
|
|
elseif spellId == 378022 then--On Boss
|
||
|
|
if self.Options.InfoFrame then
|
||
|
|
DBM.InfoFrame:Hide()
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
|
||
|
|
if spellId == 378054 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) then
|
||
|
|
specWarnGTFO:Show(spellName)
|
||
|
|
specWarnGTFO:Play("watchfeet")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
||
|
|
|
||
|
|
--[[
|
||
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
||
|
|
if spellId == 353193 then
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|
||
|
|
--]]
|