local mod = DBM:NewMod(542, "DBM-Party-BC", 9, 252) local L = mod:GetLocalizedStrings() mod.statTypes = "heroic" mod:SetRevision("20231014053250") mod:SetCreatureID(23035) mod:SetEncounterID(1904) if not mod:IsRetail() then mod:SetModelID(21492) mod:SetModelScale(0.5) mod:SetModelOffset(0, 1, 3) end mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_CAST_START 40184", "SPELL_AURA_APPLIED 40321 40184 40303", "SPELL_AURA_REMOVED 40303", "UNIT_HEALTH boss1" , "CHAT_MSG_MONSTER_EMOTE" ) local warnBirds = mod:NewAnnounce("warnBrood", 2, 32038)--(-5253) local warnStoned = mod:NewAnnounce("warnStoned", 1, 32810, false) local warnCyclone = mod:NewTargetAnnounce(40321, 2) local warnSpellBomb = mod:NewTargetAnnounce(40303, 2) local specWarnScreech = mod:NewSpecialWarningSpell(40184, nil, nil, nil, 2, 2) local timerScreech = mod:NewCastTimer(5, 40184, nil, nil, nil, 2) local timerScreechDebuff = mod:NewBuffActiveTimer(6, 40184, nil, nil, nil, 3) local timerCyclone = mod:NewTargetTimer(6, 40321, nil, nil, nil, 3) local timerSpellBomb = mod:NewTargetTimer(8, 40303, nil, nil, nil, 3) local timerScreechCD = mod:NewCDTimer(30, 40184, nil, nil, nil, 2)--Best guess on screech CD. Might need tweaking. mod.vb.warnedbirds1 = false mod.vb.warnedbirds2 = false function mod:OnCombatStart(delay) timerScreechCD:Start() self.vb.warnedbirds1 = false self.vb.warnedbirds2 = false end function mod:SPELL_CAST_START(args) if args.spellId == 40184 then specWarnScreech:Show() specWarnScreech:Play("aesoon") timerScreech:Start() timerScreechCD:Start() end end function mod:SPELL_AURA_APPLIED(args) if args.spellId == 40321 then warnCyclone:Show(args.destName) timerCyclone:Start(args.destName) elseif args.spellId == 40184 then timerScreechDebuff:Show() elseif args.spellId == 40303 then warnSpellBomb:Show(args.destName) timerSpellBomb:Start(args.destName) end end function mod:SPELL_AURA_REMOVED(args) if args.spellId == 40303 then timerSpellBomb:Stop(args.destName) end end function mod:UNIT_HEALTH(uId) if not self.vb.warnedbirds1 and self:GetUnitCreatureId(uId) == 23035 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.70 then self.vb.warnedbirds1 = true warnBirds:Show() elseif not self.vb.warnedbirds2 and self:GetUnitCreatureId(uId) == 23035 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.37 then self.vb.warnedbirds2 = true warnBirds:Show() end end function mod:CHAT_MSG_MONSTER_EMOTE(msg, npc) if msg == L.BirdStone or msg:find(L.BirdStone) then -- Spirits returning to stone. warnStoned:Show(npc) end end