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.

182 lines
6.1 KiB

local mod = DBM:NewMod(2560, "DBM-Party-WarWithin", 1, 1210)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240824045847")
mod:SetCreatureID(208745)
mod:SetEncounterID(2787)
mod:SetUsedIcons(8, 7, 6, 5, 4)
--mod:SetHotfixNoticeRev(20220322000000)
--mod:SetMinSyncRevision(20211203000000)
--mod.respawnTime = 29
mod.sendMainBossGUID = true
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 420659 426145",
"SPELL_CAST_SUCCESS 422648",
"SPELL_SUMMON 420665",
"SPELL_AURA_APPLIED 421653",
"SPELL_AURA_REMOVED 422648",
"SPELL_PERIODIC_DAMAGE 421067",
"SPELL_PERIODIC_MISSED 421067"
-- "UNIT_SPELLCAST_SUCCEEDED boss1"
)
--TODO, verify auto marking
--TODO, are both private aura spellids used? what's the primary (for showing in GUI)
--TODO, unit spellcast event for throw darkflame timer as it's a private aura and completely disabled in CLEU (including cast)
--TODO, remaining two timers need more data
--[[
(ability.id = 420659 or ability.id = 426145) and type = "begincast"
or ability.id = 422648 and type = "cast"
or (ability.id = 453278 or ability.id = 420696) and type = "applydebuff"
or type = "dungeonencounterstart" or type = "dungeonencounterend"
--]]
local warnEarieMolds = mod:NewCountAnnounce(420659, 3)
local warnCursedWax = mod:NewTargetNoFilterAnnounce(421653, 4)
local warnDarkflamePickaxe = mod:NewTargetNoFilterAnnounce(420659, 3)
--local warnThrowDarkflame = mod:NewTargetNoFilterAnnounce(420696, 3)--Private Aura
local specWarnDarkflamePickaxe = mod:NewSpecialWarningMoveTo(420659, nil, nil, nil, 1, 17)
local yellDarkflamePickaxe = mod:NewShortYell(422648)
local yellDarkflamePickaxeFades = mod:NewShortFadesYell(422648)
--local specWarnThrowDarkflame = mod:NewSpecialWarningMoveTo(420696, nil, nil, nil, 1, 2)--Private Aura
--local yellThrowDarkflame = mod:NewShortYell(420696)--Private Aura
--local yellThrowDarkflameFades = mod:NewShortFadesYell(420696)--Private Aura
local specWarnParanoidMind = mod:NewSpecialWarningInterruptCount(426145, "HasInterrupt", nil, nil, 1, 2)
local specWarnGTFO = mod:NewSpecialWarningGTFO(421067, nil, nil, nil, 1, 8)
local timerEarieMoldsCD = mod:NewCDCountTimer(31.5, 420659, nil, nil, nil, 1)
local timerDarkflamePickaxeCD = mod:NewAITimer(17, 422648, nil, nil, nil, 3)
local timerParanoidMindCD = mod:NewCDCountTimer(22, 426145, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
--local timerThrowDarkflameCD = mod:NewAITimer(24.3, 420696, nil, nil, nil, 3)
mod:AddSetIconOption("SetIconOnAdds", 420659, true, 5, {8, 7, 6, 5, 4})
mod:AddPrivateAuraSoundOption(420696, true, 420696, 1)--Throw Darkflame
mod.vb.addIcon = 8
mod.vb.statueCount = 0
mod.vb.pickaxeCount = 0
mod.vb.mindCount = 0
mod.vb.throwCount = 0
local statueName = DBM:GetSpellName(431179)
function mod:OnCombatStart(delay)
self.vb.statueCount = 0
self.vb.pickaxeCount = 0
self.vb.mindCount = 0
self.vb.throwCount = 0
timerEarieMoldsCD:Start(6-delay, 1)
timerDarkflamePickaxeCD:Start(1-delay)
timerParanoidMindCD:Start(10.9-delay, 1)
if self:IsMythic() then
-- timerThrowDarkflameCD:Start(1-delay)
self:EnablePrivateAuraSound(420696, "movetostatue", 17)--Throw Darkflame
self:EnablePrivateAuraSound(453278, "movetostatue", 17, 420696)--Register Additional Throw Darkflame ID
end
end
--function mod:OnCombatEnd()
--end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 420659 then
self.vb.addIcon = 8
self.vb.statueCount = self.vb.statueCount + 1
warnEarieMolds:Show(self.vb.statueCount)
timerEarieMoldsCD:Start(nil, self.vb.statueCount+1)
elseif spellId == 426145 then
self.vb.mindCount = self.vb.mindCount + 1
specWarnParanoidMind:Show(args.sourceName, self.vb.mindCount)
specWarnParanoidMind:Play("kickcast")
timerParanoidMindCD:Start(nil, self.vb.mindCount+1)
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 422648 then
self.vb.pickaxeCount = self.vb.pickaxeCount + 1
timerDarkflamePickaxeCD:Start()
if args:IsPlayer() then
specWarnDarkflamePickaxe:Show(statueName)
specWarnDarkflamePickaxe:Play("movetostatue")
yellDarkflamePickaxe:Yell()
yellDarkflamePickaxeFades:Countdown(spellId)
else
warnDarkflamePickaxe:Show(args.destName)
end
end
end
function mod:SPELL_SUMMON(args)
local spellId = args.spellId
if spellId == 420665 then
if self.Options.SetIconOnAdds then
self:ScanForMobs(args.destGUID, 2, self.vb.addIcon, 1, nil, 12, "SetIconOnAdds")
end
self.vb.addIcon = self.vb.addIcon - 1
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 421653 then
warnCursedWax:Show(args.destName)
--elseif spellId == 420696 then
-- if self:AntiSpam(3, 1) then
-- self.vb.throwCount = self.vb.throwCount + 1
-- timerThrowDarkflameCD:Start()--Not in combat log, so has to be in applied event
-- end
-- warnThrowDarkflame:CombinedShow(0.5, args.destName)
-- if args:IsPlayer() then
-- specWarnThrowDarkflame:Show(statueName)
-- specWarnThrowDarkflame:Play("behindmob")
-- yellThrowDarkflame:Yell()
-- yellThrowDarkflameFades:Countdown(spellId)
-- end
end
end
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 422648 then
if args:IsPlayer() then
yellDarkflamePickaxeFades:Cancel()
end
--elseif spellId == 420696 then
-- if args:IsPlayer() then
-- yellThrowDarkflameFades:Cancel()
-- end
end
end
function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
if spellId == 421067 and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then
specWarnGTFO:Show(spellName)
specWarnGTFO:Play("watchfeet")
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
--[[
--https://www.wowhead.com/beta/npc=209603/wax-statue
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 193435 then
end
end
--]]
--[[
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 74859 then
end
end
--]]