|
|
|
|
local mod = DBM:NewMod(341, "DBM-Party-Cataclysm", 14, 186)
|
|
|
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
|
|
|
|
|
|
mod.statTypes = "heroic,timewalker"
|
|
|
|
|
|
|
|
|
|
mod:SetRevision("20240426175442")
|
|
|
|
|
mod:SetCreatureID(54938)
|
|
|
|
|
mod:SetEncounterID(1339)
|
|
|
|
|
|
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
|
|
|
|
|
|
mod:RegisterEventsInCombat(
|
|
|
|
|
"SPELL_CAST_SUCCESS 103151 103565 103677 103680 103681 103363 103767 103782 103783 103784",
|
|
|
|
|
"SPELL_AURA_APPLIED 103754",
|
|
|
|
|
"SPELL_DAMAGE 103653 103775",
|
|
|
|
|
"SPELL_MISSED 103653 103775",
|
|
|
|
|
"UNIT_HEALTH boss1"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
mod:RegisterEvents(
|
|
|
|
|
"CHAT_MSG_MONSTER_SAY"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
local warnRighteousShear = mod:NewTargetNoFilterAnnounce(103151, 2, nil, "Healer", 2)
|
|
|
|
|
local warnPurifyingLight = mod:NewSpellAnnounce(103565, 3)
|
|
|
|
|
local prewarnPhase2 = mod:NewPrePhaseAnnounce(2, 2)
|
|
|
|
|
local warnTwilightShear = mod:NewTargetNoFilterAnnounce(103363, 2, nil, "Healer", 2)
|
|
|
|
|
local warnCorruptingTwilight = mod:NewSpellAnnounce(103767, 3)
|
|
|
|
|
|
|
|
|
|
local specwarnPurified = mod:NewSpecialWarningMove(103653, nil, nil, nil, 1, 8)
|
|
|
|
|
local specwarnWaveVirtue = mod:NewSpecialWarningMoveTo(103678, nil, nil, nil, 2)
|
|
|
|
|
local specwarnTwilight = mod:NewSpecialWarningMove(103775, nil, nil, nil, 1, 8)
|
|
|
|
|
local specwarnWaveTwilight = mod:NewSpecialWarningMoveTo(103780, nil, nil, nil, 2, 2)
|
|
|
|
|
|
|
|
|
|
local timerCombatStart = mod:NewCombatTimer(51.5)
|
|
|
|
|
local timerWaveVirtueCD = mod:NewNextTimer(30, 103678, nil, nil, nil, 2)--Will he do it more then once? if you are terrible and take > 30 sec to push him?
|
|
|
|
|
local timerWaveTwilightCD = mod:NewNextTimer(30, 103780, nil, nil, nil, 2)--^
|
|
|
|
|
|
|
|
|
|
mod.vb.warnedP2 = false
|
|
|
|
|
local waterShellName = DBM:GetSpellName(103744)
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatStart(delay)
|
|
|
|
|
self.vb.warnedP2 = false
|
|
|
|
|
timerWaveVirtueCD:Start(-delay)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
|
|
|
if args.spellId == 103151 then
|
|
|
|
|
warnRighteousShear:Show(args.destName)
|
|
|
|
|
elseif args.spellId == 103565 then
|
|
|
|
|
warnPurifyingLight:Show()
|
|
|
|
|
elseif args:IsSpellID(103677, 103680, 103681) then--Spellids are locationsal. So figure out which one is switch could announce wave direction?
|
|
|
|
|
specwarnWaveVirtue:Show(waterShellName)
|
|
|
|
|
specwarnWaveVirtue:Play("findshelter")
|
|
|
|
|
elseif args.spellId == 103363 then
|
|
|
|
|
warnTwilightShear:Show(args.destName)
|
|
|
|
|
elseif args.spellId == 103767 then
|
|
|
|
|
warnCorruptingTwilight:Show()
|
|
|
|
|
elseif args:IsSpellID(103782, 103783, 103784) then--Same as virtue
|
|
|
|
|
specwarnWaveTwilight:Show(waterShellName)
|
|
|
|
|
specwarnWaveTwilight:Play("findshelter")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
|
|
|
if args.spellId == 103754 then--Phase change from holy to shadow.
|
|
|
|
|
timerWaveVirtueCD:Cancel()--Cancel this timer if he was pushed before he got to do it, which is entirely possible.
|
|
|
|
|
timerWaveTwilightCD:Start(35)--Is this cast more then once?
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
|
|
|
if spellId == 103653 and destGUID == UnitGUID("player") and self:AntiSpam(5) then
|
|
|
|
|
specwarnPurified:Show()
|
|
|
|
|
specwarnPurified:Play("watchfeet")
|
|
|
|
|
elseif spellId == 103775 and destGUID == UnitGUID("player") and self:AntiSpam(5) then
|
|
|
|
|
specwarnTwilight:Show()
|
|
|
|
|
specwarnTwilight:Play("watchfeet")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
mod.SPELL_MISSED = mod.SPELL_DAMAGE
|
|
|
|
|
|
|
|
|
|
function mod:UNIT_HEALTH(uId)
|
|
|
|
|
if self:GetUnitCreatureId(uId) == 54938 then
|
|
|
|
|
local h = UnitHealth(uId) / UnitHealthMax(uId) * 100
|
|
|
|
|
if h > 80 and self.vb.warnedP2 then
|
|
|
|
|
self.vb.warnedP2 = false
|
|
|
|
|
elseif not self.vb.warnedP2 and h > 63 and h < 67 then
|
|
|
|
|
self.vb.warnedP2 = true
|
|
|
|
|
prewarnPhase2:Show()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--: 14:05:48.764
|
|
|
|
|
|
|
|
|
|
-- Timers from 2 logs so they most likely are incorrect :) (?? = unknown, didnt happen)
|
|
|
|
|
-- "Holy" timers: X secs after combat start
|
|
|
|
|
-- 1st Purifying Light after [4 or 5] secs
|
|
|
|
|
|
|
|
|
|
-- "Shadow" timers: X secs after SPELL_AURA_APPLIED event for Twilight Epiphany
|
|
|
|
|
-- 1st Twilight Shear after [15 or 12] secs
|
|
|
|
|
-- 1st Corrupting Twilight after [17 or 17] secs
|
|
|
|
|
|
|
|
|
|
function mod:CHAT_MSG_MONSTER_SAY(msg)
|
|
|
|
|
if msg == L.Event or msg:find(L.Event) then
|
|
|
|
|
timerCombatStart:Start()
|
|
|
|
|
end
|
|
|
|
|
end
|