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