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.
103 lines
3.6 KiB
103 lines
3.6 KiB
local mod = DBM:NewMod(2165, "DBM-Party-BfA", 3, 1041)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20220116042005")
|
|
mod:SetCreatureID(135322)
|
|
mod:SetEncounterID(2139)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 265773",
|
|
"SPELL_AURA_REMOVED 265773",
|
|
"SPELL_CAST_START 265773 265923 265781 265910",
|
|
"SPELL_PERIODIC_DAMAGE 265914",
|
|
"SPELL_PERIODIC_MISSED 265914"
|
|
)
|
|
|
|
--(ability.id = 265923 or ability.id = 265773 or ability.id = 265781 or ability.id = 265910) and type = "begincast"
|
|
local warnSpitGold = mod:NewTargetAnnounce(265773, 2)
|
|
|
|
local specWarnTailThrash = mod:NewSpecialWarningDefensive(265910, nil, nil, nil, 1, 2)
|
|
local specWarnSpitGold = mod:NewSpecialWarningMoveAway(265773, nil, nil, nil, 1, 2)
|
|
local yellSpitGold = mod:NewYell(265773)
|
|
local yellSpitGoldFades = mod:NewShortFadesYell(265773)
|
|
local specWarnLucreCall = mod:NewSpecialWarningSwitch(265923, nil, nil, nil, 1, 2)--Only non Tank
|
|
local specWarnLucreCallTank = mod:NewSpecialWarningMove(265923, nil, nil, nil, 1, 2)--Only Tank
|
|
local specWarnSerpentine = mod:NewSpecialWarningRun(265781, nil, nil, nil, 4, 2)
|
|
local specWarnGTFO = mod:NewSpecialWarningGTFO(265914, nil, nil, nil, 1, 8)
|
|
|
|
local timerTailThrashCD = mod:NewCDTimer(16.6, 265910, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON..DBM_COMMON_L.DEADLY_ICON)
|
|
local timerSpitGoldCD = mod:NewCDTimer(10.9, 265773, nil, nil, nil, 3)
|
|
local timerLucreCallCD = mod:NewCDTimer(37.6, 265923, nil, nil, nil, 3)
|
|
local timerSerpentineCD = mod:NewCDTimer(21.8, 265781, nil, nil, nil, 2)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
timerSpitGoldCD:Start(8.3-delay, 1)
|
|
timerSerpentineCD:Start(13.1-delay)
|
|
timerTailThrashCD:Start(16.8-delay)
|
|
timerLucreCallCD:Start(41.2-delay)
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 265773 then
|
|
warnSpitGold:CombinedShow(0.3, args.destName)
|
|
if args:IsPlayer() then
|
|
specWarnSpitGold:Show()
|
|
specWarnSpitGold:Play("runout")
|
|
yellSpitGold:Yell()
|
|
yellSpitGoldFades:Countdown(9)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 265773 then
|
|
if args:IsPlayer() then
|
|
yellSpitGoldFades:Cancel()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 265773 then
|
|
timerSpitGoldCD:Start(10.9)
|
|
elseif spellId == 265923 then
|
|
if self:IsTank() then
|
|
specWarnLucreCall:Show()
|
|
specWarnLucreCall:Play("killmob")
|
|
else
|
|
specWarnLucreCallTank:Show()
|
|
specWarnLucreCallTank:Play("moveboss")
|
|
end
|
|
timerLucreCallCD:Start()--Probably wrong, didn't get to log this far, but guessed similar to pull on 3x gold rule
|
|
if timerSpitGoldCD:GetRemaining() < 3.6 then
|
|
local elapsed, total = timerSpitGoldCD:GetTime()
|
|
local extend = 3.6 - (total-elapsed)
|
|
DBM:Debug("timerSpitGoldCD extended by: "..extend, 2)
|
|
timerSpitGoldCD:Stop()
|
|
timerSpitGoldCD:Update(elapsed, total+extend)
|
|
end
|
|
elseif spellId == 265781 then
|
|
specWarnSerpentine:Show()
|
|
specWarnSerpentine:Play("justrun")
|
|
timerSerpentineCD:Start(21.9)
|
|
elseif spellId == 265910 then
|
|
if self:IsTanking("player", "boss1", nil, true) then
|
|
specWarnTailThrash:Show()
|
|
specWarnTailThrash:Play("defensive")
|
|
end
|
|
timerTailThrashCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId)
|
|
if spellId == 265914 and destGUID == UnitGUID("player") and self:AntiSpam(2, 4) then
|
|
specWarnGTFO:Show()
|
|
specWarnGTFO:Play("watchfeet")
|
|
end
|
|
end
|
|
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
|
|
|