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.
121 lines
3.7 KiB
121 lines
3.7 KiB
local mod = DBM:NewMod(1672, "DBM-Party-Legion", 1, 740)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20230424022226")
|
|
mod:SetCreatureID(98965, 98970)
|
|
mod:SetEncounterID(1835)
|
|
mod:SetBossHPInfoToHighest()
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 198820 199143 199193 202019",
|
|
"SPELL_CAST_SUCCESS 198635 201733",
|
|
"SPELL_AURA_APPLIED 201733",
|
|
"SPELL_AURA_REMOVED 199193",
|
|
"UNIT_DIED"
|
|
)
|
|
|
|
--TODO, figure out swarm warnings, how many need to switch and kill?
|
|
local warnCloud = mod:NewSpellAnnounce(199143, 2)
|
|
local warnSwarm = mod:NewTargetAnnounce(201733, 2)
|
|
|
|
local specWarnDarkblast = mod:NewSpecialWarningDodge(198820, nil, nil, nil, 2, 2)
|
|
local specWarnGuile = mod:NewSpecialWarningDodge(199193, nil, nil, nil, 2, 2)
|
|
local specWarnGuileEnded = mod:NewSpecialWarningEnd(199193, nil, nil, nil, 1, 2)
|
|
local specWarnSwarm = mod:NewSpecialWarningYou(201733)
|
|
local specWarnShadowBolt = mod:NewSpecialWarningDefensive(202019, nil, nil, nil, 3, 2)
|
|
|
|
local timerDarkBlastCD = mod:NewCDTimer(18, 198820, nil, nil, nil, 3)
|
|
local timerUnerringShearCD = mod:NewCDTimer(12, 198635, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON, nil, mod:IsTank() and 2, 4)
|
|
local timerGuileCD = mod:NewCDTimer(39, 199193, nil, nil, nil, 6)
|
|
local timerGuile = mod:NewBuffFadesTimer(24, 199193, nil, nil, nil, 6)
|
|
local timerCloudCD = mod:NewCDTimer(32.8, 199143, nil, nil, nil, 3)
|
|
local timerSwarmCD = mod:NewCDTimer(32.8, 201733, nil, nil, nil, 3)
|
|
local timerShadowBoltVolleyCD = mod:NewCDTimer(8, 202019, nil, nil, nil, 2)
|
|
|
|
mod.vb.shadowboltCount = 0
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self:SetStage(1)
|
|
self.vb.shadowboltCount = 0
|
|
timerUnerringShearCD:Start(5.5-delay)
|
|
timerDarkBlastCD:Start(10-delay)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 198820 then
|
|
if self:GetStage(1) then
|
|
specWarnDarkblast:Show()
|
|
specWarnDarkblast:Play("watchstep")
|
|
timerDarkBlastCD:Start()
|
|
end
|
|
elseif spellId == 199143 then
|
|
warnCloud:Show()
|
|
timerCloudCD:Start()
|
|
elseif spellId == 199193 then
|
|
timerCloudCD:Stop()
|
|
timerSwarmCD:Stop()
|
|
timerShadowBoltVolleyCD:Stop()
|
|
specWarnGuile:Show()
|
|
specWarnGuile:Play("watchstep")
|
|
specWarnGuile:ScheduleVoice(1.5, "keepmove")
|
|
timerGuile:Start()
|
|
elseif spellId == 202019 then
|
|
self.vb.shadowboltCount = self.vb.shadowboltCount + 1
|
|
if self.vb.shadowboltCount == 1 then
|
|
specWarnShadowBolt:Show()
|
|
specWarnShadowBolt:Play("defensive")
|
|
end
|
|
--timerShadowBoltVolleyCD:Start()--Not known, and probably not important
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 198635 then
|
|
timerUnerringShearCD:Start()
|
|
elseif spellId == 201733 then
|
|
timerSwarmCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 201733 then
|
|
if args:IsPlayer() then
|
|
specWarnSwarm:Show()
|
|
else
|
|
warnSwarm:Show(args.destName)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 199193 then
|
|
specWarnGuileEnded:Show()
|
|
specWarnGuileEnded:Play("safenow")
|
|
timerCloudCD:Start(3)
|
|
if not self:IsNormal() then
|
|
timerSwarmCD:Start(10.5)
|
|
end
|
|
timerGuileCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 98965 then--Kur'talos Ravencrest
|
|
self:SetStage(2)
|
|
timerDarkBlastCD:Stop()
|
|
timerUnerringShearCD:Stop()
|
|
if not self:IsNormal() then
|
|
timerSwarmCD:Start(9)
|
|
end
|
|
timerCloudCD:Start(11.5)
|
|
timerShadowBoltVolleyCD:Start(17.5)--Not confirmed, submitted by requesting user
|
|
timerGuileCD:Start(24)--24-28
|
|
end
|
|
end
|
|
|