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.

90 lines
3.2 KiB

local mod = DBM:NewMod(1163, "DBM-Party-WoD", 3, 536)
local L = mod:GetLocalizedStrings()
mod.statTypes = "normal,heroic,mythic,challenge,timewalker"
mod.upgradedMPlus = true
mod:SetRevision("20230708234551")
mod:SetCreatureID(79545)
mod:SetEncounterID(1732)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 160681 166570",
"SPELL_AURA_APPLIED_DOSE 160681 166570",
"SPELL_CAST_START 163550 160680 160943",
"UNIT_TARGETABLE_CHANGED"
)
--[[
(ability.id = 163550 or ability.id = 160680 or ability.id = 160943) and type = "begincast"
or ability.id = 181089 and type = "applybuff"
--]]
local warnMortar = mod:NewSpellAnnounce(163550, 3)
local warnPhase2 = mod:NewPhaseAnnounce(2, 2, nil, nil, nil, nil, nil, 2)
local warnSupressiveFire = mod:NewTargetNoFilterAnnounce(160681, 2)--In a repeating loop
--local warnGrenadeDown = mod:NewAnnounce("warnGrenadeDown", 1, -9711, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.spell:format("ej9711"))--Boss is killed by looting using these positive items on him.
--local warnMortarDown = mod:NewAnnounce("warnMortarDown", 4, -9712, nil, DBM_CORE_L.AUTO_ANNOUNCE_OPTIONS.spell:format("ej9712"))--So warn when adds that drop them die
local warnPhase3 = mod:NewPhaseAnnounce(3, 2, nil, nil, nil, nil, nil, 2)
local specWarnSupressiveFire = mod:NewSpecialWarningYou(160681, nil, nil, nil, 1, 2)
local yellSupressiveFire = mod:NewYell(160681)
local specWarnShrapnelblast = mod:NewSpecialWarningDodge(160943, nil, nil, 2, 3, 2)--160943 boss version, 166675 trash version.
local specWarnSlagBlast = mod:NewSpecialWarningMove(166570, nil, nil, nil, 1, 8)
local timerSupressiveFire = mod:NewTargetTimer(10, 160681, nil, nil, nil, 5)
local grenade = DBM:EJ_GetSectionInfo(9711)
local mortar = DBM:EJ_GetSectionInfo(9712)
function mod:SupressiveFireTarget(targetname, uId)
if not targetname then return end
if targetname == UnitName("player") then
specWarnSupressiveFire:Show()
specWarnSupressiveFire:Play("findshelter")
yellSupressiveFire:Yell()
else
warnSupressiveFire:Show(targetname)
end
end
function mod:OnCombatStart(delay)
self:SetStage(1)
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 160681 and args:IsDestTypePlayer() then
timerSupressiveFire:Start(args.destName)
elseif spellId == 166570 and args.destGUID == UnitGUID("player") and self:AntiSpam() then
specWarnSlagBlast:Show()
specWarnSlagBlast:Play("watchfeet")
end
end
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 163550 then
warnMortar:Show()
elseif spellId == 160680 then
self:BossTargetScanner(79548, "SupressiveFireTarget", 0.2, 15)
elseif spellId == 160943 and self:AntiSpam(2, 1) then
if self:IsTanking("player", nil, nil, true, args.sourceGUID) then
specWarnShrapnelblast:Show()
specWarnShrapnelblast:Play("shockwave")
end
end
end
function mod:UNIT_TARGETABLE_CHANGED()
self:SetStage(0)
if self:GetStage(2) then
warnPhase2:Show()
warnPhase2:Play("ptwo")
elseif self:GetStage(3) then
warnPhase3:Show()
warnPhase3:Play("pthree")
end
end