local mod = DBM : NewMod ( 1210 , " DBM-Party-WoD " , 5 , 556 )
local L = mod : GetLocalizedStrings ( )
local wowToc = DBM : GetTOC ( )
mod.statTypes = " normal,heroic,mythic,challenge,timewalker "
if ( wowToc >= 100200 ) then
mod.upgradedMPlus = true
mod.sendMainBossGUID = true
end
mod : SetRevision ( " 20240206052332 " )
mod : SetCreatureID ( 83846 )
mod : SetEncounterID ( 1756 )
mod : SetHotfixNoticeRev ( 20231021000000 )
mod : SetMinSyncRevision ( 20231021000000 )
mod : RegisterCombat ( " combat " )
if ( wowToc >= 100200 ) then
--Patch 10.2 or later
mod : SetUsedIcons ( 8 )
mod : RegisterEventsInCombat (
" SPELL_CAST_START 169179 169613 428823 173563 169929 " ,
" SPELL_AURA_APPLIED 428948 428746 " ,
-- "SPELL_PERIODIC_DAMAGE",
-- "SPELL_PERIODIC_MISSED",
" UNIT_DIED "
)
mod : RegisterEvents (
" CHAT_MSG_MONSTER_YELL "
)
--[[
( ability.id = 169179 or ability.id = 169613 or ability.id = 428823 or ability.id = 173563 or ability.id = 169929 ) and type = " begincast "
or ability.id = 428948 and type = " applybuff "
or type = " dungeonencounterstart " or type = " dungeonencounterend "
--]]
--NOTE: This mod was made from old log, people apparently suck at everbloom and aren't getting to last boss this most recent test weekend
local warnBrushfire = mod : NewTargetNoFilterAnnounce ( 428746 , 1 )
local specWarnColossalBlow = mod : NewSpecialWarningDodge ( 169179 , nil , nil , nil , 2 , 2 ) --Still random direction or now only toward tank?
local specWarnVerdantEruption = mod : NewSpecialWarningSwitchCount ( 428823 , " -Healer " , nil , nil , 1 , 2 )
local specWarnLumberingSwipe = mod : NewSpecialWarningDodge ( 169929 , nil , nil , nil , 2 , 2 )
local specWarnGenesis = mod : NewSpecialWarningCount ( 169613 , nil , nil , nil , 1 , 12 )
local specWarnLasherVenom = mod : NewSpecialWarningInterrupt ( 173563 , " HasInterrupt " , nil , nil , 1 , 2 )
--local specWarnGTFO = mod:NewSpecialWarningGTFO(409058, nil, nil, nil, 1, 8)
local timerCombatStart = mod : NewCombatTimer ( 7.9 )
local timerBrushfireCD = mod : NewNextTimer ( 15.4 , 428746 , nil , nil , nil , 5 , nil , DBM_COMMON_L.DAMAGE_ICON ) --For buff going back up on boss, DPS can time burst CDs
local timerColossalBlowCD = mod : NewCDTimer ( 15.3 , 169179 , nil , nil , nil , 3 , nil , DBM_COMMON_L.TANK_ICON )
local timerVerdantEruptionCD = mod : NewCDCountTimer ( 53.1 , 428823 , nil , nil , nil , 1 , nil , DBM_COMMON_L.DAMAGE_ICON )
local timerLumberingSwipeCD = mod : NewCDNPTimer ( 11.8 , 169929 , nil , nil , nil , 3 )
local timerGenesis = mod : NewCastTimer ( 14 , 169613 , nil , nil , nil , 5 )
local timerGenesisCD = mod : NewCDCountTimer ( 53.1 , 169613 , nil , nil , nil , 6 )
mod : AddSetIconOption ( " SetIconOnAncient " , - 10537 , true , 5 , { 8 } )
mod.vb . eruptionCount = 0
mod.vb . GenesisCount = 0
function mod : OnCombatStart ( delay )
self.vb . eruptionCount = 0
self.vb . GenesisCount = 0
timerColossalBlowCD : Start ( 2.4 - delay )
timerBrushfireCD : Start ( 4 - delay )
timerVerdantEruptionCD : Start ( 22.9 - delay , 1 )
timerGenesisCD : Start ( 40 - delay , 1 )
end
function mod : SPELL_CAST_START ( args )
local spellId = args.spellId
if spellId == 169179 then
if self : AntiSpam ( 3 , 2 ) or not self.Options . SpecWarn169929dodge then --Many might have add warning already disabled, so if disabled ignore aggregation from it
specWarnColossalBlow : Show ( )
specWarnColossalBlow : Play ( " shockwave " )
end
timerColossalBlowCD : Start ( )
elseif spellId == 169613 then
self.vb . GenesisCount = self.vb . GenesisCount + 1
specWarnGenesis : Show ( self.vb . GenesisCount )
specWarnGenesis : Play ( " runoverflowers " )
timerGenesis : Start ( )
timerGenesisCD : Start ( nil , self.vb . GenesisCount + 1 )
elseif spellId == 428823 then
self.vb . eruptionCount = self.vb . eruptionCount + 1
specWarnVerdantEruption : Show ( self.vb . eruptionCount )
specWarnVerdantEruption : Play ( " killmob " )
timerVerdantEruptionCD : Start ( nil , self.vb . eruptionCount + 1 )
elseif spellId == 173563 then
if self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnLasherVenom : Show ( args.sourceName )
specWarnLasherVenom : Play ( " kickcast " )
end
elseif spellId == 169929 then
if self : AntiSpam ( 3 , 2 ) then
specWarnLumberingSwipe : Show ( )
specWarnLumberingSwipe : Play ( " shockwave " )
end
--timerLumberingSwipeCD:Start(nil, args.sourceGUID)
end
end
function mod : SPELL_AURA_APPLIED ( args )
local spellId = args.spellId
if spellId == 428948 and self : AntiSpam ( 3 , 1 ) then --Vibrant Flourish (fires twice, we want to filter one)
timerLumberingSwipeCD : Start ( 5.5 , args.destGUID )
timerBrushfireCD : Start ( ) --Add dispels brushfire soon as Vibrant Flourish goes up on it
if self.Options . SetIconOnAncient then
self : ScanForMobs ( args.destGUID , 2 , 8 , 1 , nil , 12 , " SetIconOnAncient " )
end
elseif spellId == 428746 then
warnBrushfire : Show ( args.destName )
end
end
--[[
function mod : SPELL_PERIODIC_DAMAGE ( _ , _ , _ , _ , destGUID , _ , _ , _ , spellId , spellName )
if spellId == 409058 and destGUID == UnitGUID ( " player " ) and self : AntiSpam ( 2 , 4 ) then
specWarnGTFO : Show ( spellName )
specWarnGTFO : Play ( " watchfeet " )
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
--]]
function mod : UNIT_DIED ( args )
local cid = self : GetCIDFromGUID ( args.destGUID )
if cid == 84400 then --Flourishing Ancient
timerLumberingSwipeCD : Stop ( args.destGUID )
end
end
--"<51.64 00:21:17> [CHAT_MSG_MONSTER_YELL] The portal is lost! We must stop this beast before it can escape!#Lady Baihu###Omegal##0#0##0#90#nil#0#false#false#false#false", -- [112]
--"<59.59 00:21:25> [ENCOUNTER_START] 1756#Yalnu#23#5", -- [123]
function mod : CHAT_MSG_MONSTER_YELL ( msg )
if ( msg == L.YalnuRP or msg : find ( L.YalnuRP ) ) then
self : SendSync ( " YalnuRP " ) --Syncing to help unlocalized clients
end
end
function mod : OnSync ( msg , targetname )
if msg == " YalnuRP " and self : AntiSpam ( 5 , 3 ) then
timerCombatStart : Start ( )
end
end
else
--10.1.7 on retail, and classic if it happens (if it doesn't happen old version of mod will be retired)
mod : RegisterEventsInCombat (
" SPELL_CAST_START 169179 169613 " ,
" SPELL_CAST_SUCCESS 169251 " ,
" UNIT_SPELLCAST_SUCCEEDED boss1 "
)
local warnFontofLife = mod : NewSpellAnnounce ( 169120 , 3 ) --Does this need a switch warning too?
local specWarnColossalBlow = mod : NewSpecialWarningDodge ( 169179 , nil , nil , nil , 2 , 2 )
local specWarnEntanglement = mod : NewSpecialWarningSwitch ( 169251 , " Dps " , nil , nil , 1 , 2 )
local specWarnGenesis = mod : NewSpecialWarningSpell ( 169613 , nil , nil , nil , 1 , 12 ) --Everyone. "Switch" is closest generic to "run around stomping flowers"
--Only timers that were consistent, others are all over the place.
local timerFontOfLife = mod : NewNextTimer ( 15 , 169120 , nil , nil , nil , 1 )
local timerGenesis = mod : NewCastTimer ( 17 , 169613 , nil , nil , nil , 5 )
local timerGenesisCD = mod : NewNextTimer ( 60.5 , 169613 , nil , nil , nil , 6 )
function mod : OnCombatStart ( delay )
--timerFontOfLife:Start(-delay)
--timerGenesisCD:Start(25-delay)
end
function mod : SPELL_CAST_START ( args )
local spellId = args.spellId
if spellId == 169179 then
specWarnColossalBlow : Show ( )
specWarnColossalBlow : Play ( " shockwave " )
elseif spellId == 169613 then
specWarnGenesis : Show ( )
specWarnGenesis : Play ( " runoverflowers " )
timerGenesis : Start ( )
timerGenesisCD : Start ( )
end
end
function mod : SPELL_CAST_SUCCESS ( args )
if args.spellId == 169251 then
specWarnEntanglement : Show ( )
specWarnEntanglement : Play ( " targetchange " )
end
end
function mod : UNIT_SPELLCAST_SUCCEEDED ( uId , _ , spellId )
if spellId == 169120 then
warnFontofLife : Show ( )
timerFontOfLife : Start ( )
end
end
end