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.
118 lines
3.0 KiB
118 lines
3.0 KiB
local mod = DBM:NewMod("BCEvent", "DBM-WorldEvents", 4)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20240315080105")
|
|
mod:SetCreatureID(17968, 21212, 19622)
|
|
mod:SetEncounterID(2319)
|
|
mod:SetModelID(20939)--Archimond
|
|
mod:SetBossHPInfoToHighest()
|
|
|
|
mod:RegisterCombat("combat")
|
|
mod:SetWipeTime(60)
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 31970",
|
|
"SPELL_AURA_APPLIED 38280 38575 32014",
|
|
"SPELL_AURA_REMOVED 38280",
|
|
"INSTANCE_ENCOUNTER_ENGAGE_UNIT",
|
|
"ZONE_CHANGED_NEW_AREA"
|
|
)
|
|
|
|
--Vashj
|
|
local warnCharge = mod:NewTargetAnnounce(38280, 4)
|
|
--Archimonde
|
|
local warnBurst = mod:NewTargetAnnounce(32014, 3)
|
|
|
|
--Vashj
|
|
local specWarnCharge = mod:NewSpecialWarningMoveAway(38280, nil, nil, nil, 1, 2)
|
|
local yellCharge = mod:NewYell(38280)
|
|
local specWarnToxic = mod:NewSpecialWarningMove(38575, nil, nil, nil, 1, 2)
|
|
--Archimonde
|
|
local specWarnFear = mod:NewSpecialWarningSpell(31970, nil, nil, nil, 2, 2)
|
|
local specWarnBurst = mod:NewSpecialWarningYou(32014, nil, nil, nil, 1, 2)
|
|
|
|
mod:AddRangeFrameOption(10, 38280)
|
|
|
|
mod.vb.phase = 0
|
|
local seenAdds = {}
|
|
|
|
function mod:OnCombatStart()
|
|
table.wipe(seenAdds)
|
|
self.vb.phase = 0
|
|
self.vb.bossLeft = 4--Because we change it to 3 right away
|
|
self.numBoss = 3
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 31970 then
|
|
specWarnFear:Show()
|
|
specWarnFear:Play("fearsoon")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 38280 then
|
|
if args:IsPlayer() then
|
|
specWarnCharge:Show()
|
|
specWarnCharge:Play("runout")
|
|
yellCharge:Yell()
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Show(10)
|
|
end
|
|
else
|
|
warnCharge:Show(args.destName)
|
|
end
|
|
elseif args.spellId == 38575 and args:IsPlayer() and self:AntiSpam() then
|
|
specWarnToxic:Show()
|
|
specWarnToxic:Play("runaway")
|
|
elseif args.spellId == 32014 then
|
|
warnBurst:CombinedShow(0.3, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnBurst:Show()
|
|
specWarnBurst:Play("targetyou")
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args.spellId == 38280 and args:IsPlayer() then
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:INSTANCE_ENCOUNTER_ENGAGE_UNIT()
|
|
for i = 1, 5 do
|
|
local unitID = "boss"..i
|
|
local GUID = UnitGUID(unitID)
|
|
if GUID and not seenAdds[GUID] then
|
|
seenAdds[GUID] = true
|
|
local cid = self:GetCIDFromGUID(GUID)
|
|
if cid == 17968 then--Archimonde
|
|
self.vb.phase = self.vb.phase + 1
|
|
self.vb.bossLeft = self.vb.bossLeft - 1
|
|
elseif cid == 21212 then--Lady Vashj
|
|
self.vb.phase = self.vb.phase + 1
|
|
self.vb.bossLeft = self.vb.bossLeft - 1
|
|
elseif cid == 19622 then--Kael
|
|
self.vb.phase = self.vb.phase + 1
|
|
self.vb.bossLeft = self.vb.bossLeft - 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:ZONE_CHANGED_NEW_AREA()
|
|
--Cleanup timers and scheduled events
|
|
if IsEncounterInProgress() then return end
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
end
|
|
|