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.

123 lines
4.3 KiB

local mod = DBM:NewMod(2082, "DBM-Party-BfA", 1, 968)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20231026101326")
mod:SetCreatureID(122967)
mod:SetEncounterID(2084)
mod:SetUsedIcons(8)
mod:SetHotfixNoticeRev(20231023000000)
--mod:SetMinSyncRevision(20231021000000)
mod.respawnTime = 29
mod.sendMainBossGUID = true
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_CAST_START 255577",
"SPELL_CAST_SUCCESS 255579 255591",
"SPELL_SUMMON 259209",
"SPELL_AURA_APPLIED 255579"--277072
)
--[[
ability.id = 255577 and type = "begincast"
or (ability.id = 255579 or ability.id = 255591) and type = "cast"
or ability.id = 259209
or type = "dungeonencounterstart" or type = "dungeonencounterend"
--]]
local warnTransfusion = mod:NewCountAnnounce(255577, 1)
local warnMoltenGold = mod:NewCountAnnounce(255582, 3)
local specWarnTransfusion = mod:NewSpecialWarningMoveTo(255577, nil, nil, nil, 3, 2)
local specWarnClaws = mod:NewSpecialWarningDefensive(255579, "Tank", nil, nil, 1, 2)
local specWarnClawsDispel = mod:NewSpecialWarningDispel(255579, "MagicDispeller", nil, nil, 1, 2)
local specWarnSpiritofGold = mod:NewSpecialWarningSwitchCount(259205, "Dps", nil, nil, 1, 2, 3)
--local specWarnGTFO = mod:NewSpecialWarningGTFO(277072, nil, nil, nil, 1, 8)--Unclear, it seems from logs once you step in it, you don't lose debuff moving out of it
local timerTransfusionCD = mod:NewCDCountTimer(34, 255577, nil, nil, nil, 5)
local timerGildedClawsCD = mod:NewCDCountTimer(34, 255579, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
local timerMoltenGoldCD = mod:NewCDCountTimer(34, 255582, nil, nil, nil, 3)
local timerSpiritofGoldCD = mod:NewCDCountTimer(34, 259205, nil, nil, nil, 1, nil, DBM_COMMON_L.HEROIC_ICON)
mod:AddSetIconOption("SetIconOnSpirit", 259205, true, 5, {8})
local taintedBlood = DBM:GetSpellInfo(255558)
mod.vb.transCount = 0
mod.vb.clawsCount = 0
mod.vb.goldCount = 0
mod.vb.spiritCount = 0
function mod:OnCombatStart(delay)
self.vb.transCount = 0
self.vb.clawsCount = 0
self.vb.goldCount = 0
self.vb.spiritCount = 0
timerGildedClawsCD:Start(10.5-delay, 1)
timerMoltenGoldCD:Start(16.5-delay, 1)
timerTransfusionCD:Start(25-delay, 1)
if not self:IsNormal() then
timerSpiritofGoldCD:Start(9.1-delay, 1)
end
end
function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if spellId == 255577 then
self.vb.transCount = self.vb.transCount + 1
timerTransfusionCD:Start(nil, self.vb.transCount+1)
local _, _, _, _, _, expireTime = DBM:UnitDebuff("player", taintedBlood)
local remaining
if expireTime then
remaining = expireTime-GetTime()
end
--Not dead, and do not have tainted blood or do have it but it'll expire for transfusion does.
if not UnitIsDeadOrGhost("player") and (not remaining or remaining and remaining < 9) then
specWarnTransfusion:Show(taintedBlood)
specWarnTransfusion:Play("takedamage")
else--Already good to go, just a positive warning
warnTransfusion:Show(self.vb.transCount)
end
end
end
function mod:SPELL_CAST_SUCCESS(args)
local spellId = args.spellId
if spellId == 255579 then
self.vb.clawsCount = self.vb.clawsCount + 1
if not self.Options.SpecWarn255579dispel then
specWarnClaws:Show()
specWarnClaws:Play("defensive")
end
timerGildedClawsCD:Start(nil, self.vb.clawsCount+1)
elseif spellId == 255591 then
self.vb.goldCount = self.vb.goldCount + 1
warnMoltenGold:Show(self.vb.goldCount)
timerMoltenGoldCD:Start(nil, self.vb.goldCount+1)
end
end
function mod:SPELL_SUMMON(args)
local spellId = args.spellId
if spellId == 259209 then
self.vb.spiritCount = self.vb.spiritCount + 1
specWarnSpiritofGold:Show(self.vb.spiritCount)
specWarnSpiritofGold:Play("killmob")
timerSpiritofGoldCD:Start(nil, self.vb.spiritCount+1)
if self.Options.SetIconOnSpirit then
self:ScanForMobs(args.destGUID, 2, 8, 1, nil, 12, "SetIconOnSpirit")
end
end
end
function mod:SPELL_AURA_APPLIED(args)
local spellId = args.spellId
if spellId == 255579 and not args:IsDestTypePlayer() then
specWarnClawsDispel:Show(args.destName)
specWarnClawsDispel:Play("dispelboss")
-- elseif spellId == 277072 and args:IsPlayer() and self:AntiSpam(3, 1) then
-- specWarnGTFO:Show(args.spellName)
-- specWarnGTFO:Play("watchfeet")
end
end