local mod = DBM:NewMod(1789, "DBM-BrokenIsles", 1, 822) local L = mod:GetLocalizedStrings() mod:SetRevision("20220116041824") mod:SetCreatureID(110378) mod:SetEncounterID(1949) mod:SetReCombatTime(20) mod:EnableWBEngageSync()--Enable syncing engage in outdoors mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 219542 219493", "SPELL_CAST_SUCCESS 219601", "SPELL_AURA_APPLIED 219602", "SPELL_AURA_REMOVED 219602" ) --TODO, verify target scanning on avalanche --TODO, ice hurl? it has no role assignment in journal so it may just be what he spams on tank local warnAvalanche = mod:NewTargetAnnounce(219542, 3) local warnSnowPlow = mod:NewTargetAnnounce(219602, 4) local specWarnAvalanche = mod:NewSpecialWarningYou(219542, nil, nil, nil, 1, 2) local specWarnSnowCrash = mod:NewSpecialWarningDodge(219493, "Melee", nil, nil, 4, 2) local specWarnSnowPlow = mod:NewSpecialWarningRun(219602, nil, nil, nil, 4, 2) local specWarnSnowPlowOver = mod:NewSpecialWarningFades(219602, nil, nil, nil, 1, 2) local timerAvalancheCD = mod:NewCDTimer(42.6, 219542, nil, nil, nil, 3)--May need larger sample, was quite variable local timerSnowCrashCD = mod:NewCDTimer(19.4, 219493, nil, "Melee", nil, 2)--Seems to alternate 19.4 and 23.2 but world bosses can't be this complicated since they are often engaged in progress local timerSnowPlowCD = mod:NewCDTimer(47.4, 219602, nil, nil, nil, 3) mod:AddReadyCheckOption(43448, false) function mod:AvaTarget(targetname, uId) if not targetname then warnAvalanche:Show(DBM_COMMON_L.UNKNOWN) return end if targetname == UnitName("player") then specWarnAvalanche:Show() specWarnAvalanche:Play("runaway") else warnAvalanche:Show(targetname) end end function mod:OnCombatStart(delay, yellTriggered) if yellTriggered then end end function mod:SPELL_CAST_START(args) local spellId = args.spellId if spellId == 219542 then timerAvalancheCD:Start() self:BossTargetScanner(args.sourceGUID, "AvaTarget", 0.2, 9) elseif spellId == 219493 then specWarnSnowCrash:Show() specWarnSnowCrash:Play("shockwave") timerSnowCrashCD:Start() end end function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 219601 then timerSnowPlowCD:Start() end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 219602 and args:IsDestTypePlayer() then if args:IsPlayer() then specWarnSnowPlow:Show() specWarnSnowPlow:Play("runaway") specWarnSnowPlow:ScheduleVoice(1, "keepmove") else warnSnowPlow:Show(args.destName) end end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 219602 and args:IsPlayer() then specWarnSnowPlowOver:Show() specWarnSnowPlowOver:Play("safenow") end end