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
4.7 KiB

local mod = DBM:NewMod(1656, "DBM-Party-Legion", 2, 762)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240127063852")
mod:SetCreatureID(99200)
mod:SetEncounterID(1838)
mod:SetHotfixNoticeRev(20231029000000)
mod:SetMinSyncRevision(20231029000000)
--mod.respawnTime = 29
mod:DisableESCombatDetection()--Remove if blizz fixes trash firing ENCOUNTER_START
mod.sendMainBossGUID = true
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 199389 199345",
"SPELL_PERIODIC_DAMAGE 199460",
"SPELL_PERIODIC_MISSED 199460",
"UNIT_SPELLCAST_SUCCEEDED boss1"
)
--[[
(ability.id = 199389 or ability.id = 199345 or ability.id = 191325) and type = "begincast"
or ability.name = "Breath of Corruption" and type = "damage"
or type = "dungeonencounterstart" or type = "dungeonencounterend"
--]]
local warnRoar = mod:NewCountAnnounce(199389, 2)
local specWarnDownDraft = mod:NewSpecialWarningCount(199345, nil, nil, nil, 2, 2)
local specWarnBreath = mod:NewSpecialWarningDodgeCount(191325, "Tank", nil, nil, 1, 2)
--local yellBreath = mod:NewYell(199332)
local specWarnFallingRocks = mod:NewSpecialWarningGTFO(199460, nil, nil, nil, 1, 8)
local timerBreathCD = mod:NewCDCountTimer(22, 191325, nil, "Tank", nil, 5)--22/30 alternating? need more logs to confirm
local timerEarthShakerCD = mod:NewCDCountTimer(30.3, 199389, nil, nil, nil, 3)--OLD: 21
local timerDownDraftCD = mod:NewCDCountTimer(30.3, 199345, nil, nil, nil, 2)--OLD: 30-42 (health based or varaible?)
mod.vb.breathCount = 0
mod.vb.earthCount = 0
mod.vb.draftCount = 0
function mod:OnCombatStart(delay)
self.vb.breathCount = 0
self.vb.earthCount = 0
self.vb.draftCount = 0
timerBreathCD:Start(13.3-delay, 1)--13.3-15.4
timerDownDraftCD:Start(19.4-delay, 1)--19.4-22.7
timerEarthShakerCD:Start(31.6-delay, 1)--31.6-34.8
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 199389 then
self.vb.earthCount = self.vb.earthCount + 1
warnRoar:Show(self.vb.earthCount)
timerEarthShakerCD:Start(nil, self.vb.earthCount+1)
elseif spellId == 199345 then
self.vb.draftCount = self.vb.draftCount + 1
specWarnDownDraft:Show(self.vb.draftCount)
specWarnDownDraft:Play("keepmove")
timerDownDraftCD:Start(nil, self.vb.draftCount+1)
-- elseif spellId == 191325 then--If they ever enable it in combat log, it'll be this ID
-- self.vb.breathCount = self.vb.breathCount + 1
-- specWarnBreath:Show(self.vb.breathCount)
-- specWarnBreath:Play("breathsoon")
-- --"Breath of Corruption-199332-npc:99200-000021BD9C = pull:14.6, 22.0, 30.4", -- [8]
-- if self.vb.breathCount == 2 then--TODO, longer pulls to find out if it's 30 every other one
-- timerBreathCD:Start(30, self.vb.breathCount+1)
-- else
-- timerBreathCD:Start(22, self.vb.breathCount+1)
-- end
end
end
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
if spellId == 199460 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then
specWarnFallingRocks:Show(spellName)
specWarnFallingRocks:Play("watchfeet")
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
--For time stamping purposes for WCL parsing, shows us time from cast til damage (~2 sec)
--NOTE spell damage not reliable, the tank actually can side step it, just right now not all tanks on PTR are (thankfully for timer purposes)
--"<1405.08 22:44:10> [UNIT_SPELLCAST_SUCCEEDED] Dresaron(75.6%-0.0%){Target:Fxa} -Breath of Corruption- [[boss1:Cast-3-5770-1466-11160-199332-001921C31C:199332]]", -- [17494]
--"<1405.09 22:44:10> [UNIT_SPELLCAST_START] Dresaron(75.6%-0.0%){Target:Fxa} -Breath of Corruption- 2s [[boss1:Cast-3-5770-1466-11160-191325-001AA1C31C:191325]]", -- [17498]
--"<1406.30 22:44:12> [UNIT_TARGET] boss1#Dresaron#Target: ??#TargetOfTarget: ??", -- [17511]
--"<1407.09 22:44:12> [UNIT_SPELLCAST_CHANNEL_START] Dresaron(71.2%-0.0%){Target:??} -Breath of Corruption- 2s [[boss1:nil:191325]]", -- [17524]
--"<1407.12 22:44:12> [CLEU] SPELL_DAMAGE#Creature-0-5770-1466-11160-99200-000021BD9C#Dresaron#Player-5764-000CFD06#Fxa#191326#Breath of Corruption", -- [17526]
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 199332 then--Target scanning not an option, boss wipes target as seen above
self.vb.breathCount = self.vb.breathCount + 1
specWarnBreath:Show(self.vb.breathCount)
specWarnBreath:Play("breathsoon")
--"Breath of Corruption-199332-npc:99200-000021BD9C = pull:14.6, 22.0, 30.4", -- [8]
if self.vb.breathCount == 2 then--TODO, longer pulls to find out if it's 30 every other one
timerBreathCD:Start(30, self.vb.breathCount+1)
else
timerBreathCD:Start(22, self.vb.breathCount+1)
end
end
end