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.
134 lines
4.7 KiB
134 lines
4.7 KiB
local mod = DBM:NewMod(2336, "DBM-Party-BfA", 11, 1178)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20221016002954")
|
|
mod:SetCreatureID(144244, 145185)
|
|
mod:SetEncounterID(2257)
|
|
mod:SetBossHPInfoToHighest()
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_MONSTER_YELL"
|
|
)
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 285020 283422 285388",
|
|
"SPELL_CAST_SUCCESS 285344 285152",
|
|
"SPELL_AURA_REMOVED 282801",
|
|
-- "SPELL_AURA_REMOVED_DOSE 282801",
|
|
"UNIT_DIED"
|
|
)
|
|
|
|
--TODO, Foe Flipper success target valid?
|
|
--TODO, thrust scan was changed to slower scan method, because UNIT_TARGET scan method relies on boss changing target after cast begins, but 8.3 notes now say boss changes target before cast starts
|
|
--TODO, the part two of above is need to verify whether or not a target scanner is even needed at all now. If boss is already looking at atarget at cast start then all we need is boss1target and no scan what so ever
|
|
--[[
|
|
(ability.id = 285020 or ability.id = 283422 or ability.id = 285388) and type = "begincast"
|
|
or (ability.id = 285344 or ability.id = 285152) and type = "cast"
|
|
--]]
|
|
local warnLayMine = mod:NewSpellAnnounce(285351, 2)
|
|
local warnFoeFlipper = mod:NewTargetNoFilterAnnounce(285153, 2)
|
|
local warnPlating = mod:NewFadesAnnounce(282801, 1)
|
|
local warnMaxThrust = mod:NewTargetNoFilterAnnounce(283565, 2)
|
|
|
|
local specWarnWhirlingEdge = mod:NewSpecialWarningDodge(285020, "Tank", nil, nil, 1, 2)
|
|
local specWarnVentJets = mod:NewSpecialWarningDodge(285388, nil, nil, nil, 2, 2)
|
|
local specWarnMaxThrust = mod:NewSpecialWarningYou(283565, nil, nil, nil, 1, 2)
|
|
local yellMaxThrust = mod:NewYell(283565)
|
|
local specWarnFoeFlipper = mod:NewSpecialWarningYou(285153, nil, nil, nil, 1, 2)
|
|
local yellFoeFlipper = mod:NewYell(285153)
|
|
--local specWarnGTFO = mod:NewSpecialWarningGTFO(238028, nil, nil, nil, 1, 8)
|
|
|
|
local timerRP = mod:NewRPTimer(68)
|
|
local timerLayMineCD = mod:NewCDTimer(12.1, 285351, nil, nil, nil, 3)
|
|
local timerWhirlingEdgeCD = mod:NewNextTimer(32.4, 285020, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
--local timerFoeFlipperCD = mod:NewCDTimer(13.4, 285153, nil, nil, nil, 3)
|
|
local timerVentJetsCD = mod:NewCDTimer(40.1, 285388, nil, nil, nil, 2)
|
|
local timerMaxThrustCD = mod:NewCDTimer(45.8, 283565, nil, nil, nil, 3)
|
|
|
|
function mod:ThrustTarget(targetname)
|
|
if not targetname then return end
|
|
if targetname == UnitName("player") then
|
|
specWarnMaxThrust:Show()
|
|
specWarnMaxThrust:Play("targetyou")
|
|
yellMaxThrust:Yell()
|
|
else
|
|
warnMaxThrust:Show(targetname)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
--timerMaxThrustCD:Start(3-delay)
|
|
timerWhirlingEdgeCD:Start(8.2-delay)
|
|
timerLayMineCD:Start(15.5-delay)
|
|
--timerFoeFlipperCD:Start(16.7-delay)
|
|
timerVentJetsCD:Start(22.8-delay)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 285020 then
|
|
specWarnWhirlingEdge:Show()
|
|
specWarnWhirlingEdge:Play("shockwave")
|
|
timerWhirlingEdgeCD:Start()
|
|
elseif spellId == 283422 then
|
|
timerMaxThrustCD:Start()
|
|
self:BossTargetScanner(args.sourceGUID, "ThrustTarget", 0.1, 7)
|
|
elseif spellId == 285388 then
|
|
specWarnVentJets:Show()
|
|
specWarnVentJets:Play("watchstep")
|
|
timerVentJetsCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 285344 then
|
|
warnLayMine:Show()
|
|
timerLayMineCD:Start()
|
|
elseif spellId == 285152 then
|
|
if args:IsPlayer() then
|
|
specWarnFoeFlipper:Show()
|
|
specWarnFoeFlipper:Play("targetyou")
|
|
yellFoeFlipper:Yell()
|
|
else
|
|
warnFoeFlipper:Show(args.destName)
|
|
end
|
|
--timerFoeFlipperCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 282801 then
|
|
warnPlating:Show()
|
|
timerWhirlingEdgeCD:Stop()
|
|
end
|
|
end
|
|
--mod.SPELL_AURA_REMOVED_DOSE = mod.SPELL_AURA_REMOVED
|
|
|
|
function mod:UNIT_DIED(args)
|
|
local cid = self:GetCIDFromGUID(args.destGUID)
|
|
if cid == 144244 then--The Platinum Pummeler
|
|
timerWhirlingEdgeCD:Stop()
|
|
elseif cid == 145185 then--Gnomercy 4.U.
|
|
--timerFoeFlipperCD:Stop()
|
|
timerVentJetsCD:Stop()
|
|
timerMaxThrustCD:Stop()
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_MONSTER_YELL(msg)
|
|
--"<745.04 00:25:22> [CHAT_MSG_MONSTER_YELL] Now this is a statistical anomaly! Our visitors are still alive!#Deuce Mecha-Buffer###Anshlun##0#0##0#2667#nil#0#false#false#false#false", -- [3780]
|
|
--"<769.56 00:25:47> [ENCOUNTER_START] 2257#Tussle Tonks#23#5", -- [3807]
|
|
if (msg == L.openingRP or msg:find(L.openingRP)) and self:LatencyCheck(1000) then
|
|
self:SendSync("openingRP")
|
|
end
|
|
end
|
|
|
|
function mod:OnSync(msg)
|
|
if msg == "openingRP" and self:AntiSpam(10, 1) then
|
|
timerRP:Start(24.5)
|
|
end
|
|
end
|
|
|