Skip to content

Commit

Permalink
Updated timers for first and second boss of Cinderbrew Meadery
Browse files Browse the repository at this point in the history
Added trash alerts and nameplate timers to all first and second boss trash in Cinderbrew Meadery
Added Auto Gossip option for profession buffs up to 2nd boss in Cinderbrew Meadery
  • Loading branch information
MysticalOS committed Apr 25, 2024
1 parent 295871a commit 299bfed
Show file tree
Hide file tree
Showing 5 changed files with 191 additions and 72 deletions.
44 changes: 23 additions & 21 deletions DBM-Party-WarWithin/CinderbrewMeadery/BrewMasterAldryr.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ local L = mod:GetLocalizedStrings()
mod:SetRevision("@file-date-integer@")
mod:SetCreatureID(210271)
mod:SetEncounterID(2900)
--mod:SetHotfixNoticeRev(20220322000000)
mod:SetHotfixNoticeRev(20240425000000)
--mod:SetMinSyncRevision(20211203000000)
--mod.respawnTime = 29
mod.sendMainBossGUID = true
Expand All @@ -16,14 +16,13 @@ mod:RegisterEventsInCombat(
-- "SPELL_CAST_SUCCESS",
"SPELL_AURA_APPLIED 431896",
"SPELL_AURA_REMOVED 442525 431896",
"SPELL_PERIODIC_DAMAGE 432182",
"SPELL_PERIODIC_MISSED 432182"
"SPELL_PERIODIC_DAMAGE 432196",
"SPELL_PERIODIC_MISSED 432196"
-- "UNIT_SPELLCAST_SUCCEEDED"--All units since we need to find adds casting it (unless boss does)
)

--TODO, or use 442611 removed (Disregard) if happy hour removed doesn't work
--TODO, upgrade brawl to higher prio warning?, assuming detection even valid
--TODO, reset counts on happy hour?
--[[
(ability.id = 442525 or ability.id = 432198 or ability.id = 432179 or ability.id = 432229) and type = "begincast"
or ability.id = 442525
Expand All @@ -37,12 +36,12 @@ local specWarnBlazingBelch = mod:NewSpecialWarningDodgeCount(432198, nil, ni
local specWarnKegSmash = mod:NewSpecialWarningCount(432229, nil, nil, nil, 1, 2)
--local yellSomeAbility = mod:NewYell(372107)
local specWarnBrawl = mod:NewSpecialWarningDodge(445180, nil, nil, nil, 2, 2)
local specWarnGTFO = mod:NewSpecialWarningGTFO(432182, nil, nil, nil, 1, 8)
local specWarnGTFO = mod:NewSpecialWarningGTFO(432196, nil, nil, nil, 1, 8)

local timerHappyHourCD = mod:NewAITimer(33.9, 442525, nil, nil, nil, 6)
local timerBlazingBelchCD = mod:NewAITimer(33.9, 432198, nil, nil, nil, 3)
local timerThrowCinderbrewCD = mod:NewAITimer(33.9, 432179, nil, nil, nil, 3)
local timerKegSmashCD = mod:NewAITimer(33.9, 432229, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--13.7
local timerHappyHourCD = mod:NewCDCountTimer(52.1, 442525, nil, nil, nil, 6)
local timerBlazingBelchCD = mod:NewCDCountTimer(23, 432198, nil, nil, nil, 3)
local timerThrowCinderbrewCD = mod:NewCDCountTimer(18.1, 432179, nil, nil, nil, 3)
local timerKegSmashCD = mod:NewCDCountTimer(14.5, 432229, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)--13.7

mod:AddNamePlateOption("NPAuraOnThirsty", 431896)

Expand All @@ -56,10 +55,10 @@ function mod:OnCombatStart(delay)
self.vb.belchCount = 0
self.vb.cinderbrewCount = 0
self.vb.kegCount = 0
timerKegSmashCD:Start(1)--5.8
timerThrowCinderbrewCD:Start(1)--11
timerBlazingBelchCD:Start(1)--14.7
timerHappyHourCD:Start(1)--26.8
timerKegSmashCD:Start(5.8, 1)
timerThrowCinderbrewCD:Start(10.6, 1)
timerBlazingBelchCD:Start(14.3, 1)
timerHappyHourCD:Start(26.5, 1)
if self.Options.NPAuraOnThirsty then
DBM:FireEvent("BossMod_EnableHostileNameplates")
end
Expand All @@ -83,18 +82,18 @@ function mod:SPELL_CAST_START(args)
self.vb.belchCount = self.vb.belchCount + 1
specWarnBlazingBelch:Show(self.vb.belchCount)
specWarnBlazingBelch:Play("breathsoon")
timerBlazingBelchCD:Start()
timerBlazingBelchCD:Start(nil, self.vb.belchCount+1)
elseif spellId == 432179 then
self.vb.cinderbrewCount = self.vb.cinderbrewCount + 1
warnThrowCinderbrew:Show(self.vb.cinderbrewCount)
timerThrowCinderbrewCD:Start()
timerThrowCinderbrewCD:Start(nil, self.vb.cinderbrewCount+1)
elseif spellId == 432229 then
self.vb.kegCount = self.vb.kegCount + 1
if self:IsTanking("player", "boss1", nil, true) then
specWarnKegSmash:Show(self.vb.kegCount)
specWarnKegSmash:Play("carefly")
end
timerKegSmashCD:Start()
timerKegSmashCD:Start(nil, self.vb.kegCount+1)
end
end

Expand All @@ -120,15 +119,18 @@ end
function mod:SPELL_AURA_REMOVED(args)
local spellId = args.spellId
if spellId == 442525 then
self.vb.belchCount = 0
self.vb.cinderbrewCount = 0
self.vb.kegCount = 0
warnHappyHourOver:Show()
if self:IsMythic() then
specWarnBrawl:Show()
specWarnBrawl:Play("watchstep")
end
timerKegSmashCD:Start(2)--8.6
timerThrowCinderbrewCD:Start(2)
timerBlazingBelchCD:Start(2)
timerHappyHourCD:Start(2)
timerKegSmashCD:Start(8.4, 1)
timerThrowCinderbrewCD:Start(13.2, 1)
timerBlazingBelchCD:Start(16.9, 1)
timerHappyHourCD:Start(52.1, self.vb.happyHourCount+1)
elseif spellId == 431896 then
if self.Options.NPAuraOnThirsty then
DBM.Nameplate:Hide(true, args.destGUID, spellId)
Expand All @@ -137,7 +139,7 @@ function mod:SPELL_AURA_REMOVED(args)
end

function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId, spellName)
if spellId == 432182 and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then
if spellId == 432196 and destGUID == UnitGUID("player") and self:AntiSpam(3, 2) then
specWarnGTFO:Show(spellName)
specWarnGTFO:Play("watchfeet")
end
Expand Down
189 changes: 152 additions & 37 deletions DBM-Party-WarWithin/CinderbrewMeadery/CinderbrewMeaderyTrash.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,59 +5,134 @@ mod:SetRevision("@file-date-integer@")
--mod:SetModelID(47785)
mod.isTrashMod = true

--mod:RegisterEvents(
-- "SPELL_CAST_START",
mod:RegisterEvents(
"SPELL_CAST_START 437956 434761 434706 437721 434756 434998 448619 441434 441627 441214",
-- "SPELL_CAST_SUCCESS",
-- "SPELL_AURA_APPLIED",
"SPELL_AURA_APPLIED 437956 441627 441214",
-- "SPELL_AURA_APPLIED_DOSE",
-- "SPELL_AURA_REMOVED",
-- "UNIT_DIED"
--)
"UNIT_DIED",
"GOSSIP_SHOW"
)

--local warnTotemicOverload = mod:NewCastAnnounce(387145, 3)
--TODO, do more with throw chair? can you actually dodge it? is it actually threatening on higher keys?
--[[
(ability.id = 437956 or ability.id = 434761 or ability.id = 434706 or ability.id = 437721 or ability.id = 434756 or ability.id = 434998 or ability.id = 448619 or ability.id = 441434 or ability.id = 441627 or ability.id = 441214) and type = "begincast"
--]]
local warnCinderBrewToss = mod:NewTargetAnnounce(434706, 3)
local warnThrowChair = mod:NewTargetNoFilterAnnounce(434756, 2)
local warnFailedBatch = mod:NewCastAnnounce(441434, 4, nil, nil, nil, nil, nil, 3)
local warnRejuvenatingHoney = mod:NewCastAnnounce(441627, 3)--High Prio Interrupt

--local specWarnChainLightning = mod:NewSpecialWarningMoveAway(387127, nil, nil, nil, 1, 2)
--local yellChainLightning = mod:NewYell(387127)
--local specWarnStormshield = mod:NewSpecialWarningDispel(386223, "MagicDispeller", nil, nil, 1, 2)
--local specWarnTempest = mod:NewSpecialWarningInterrupt(386024, "HasInterrupt", nil, nil, 1, 2)
local specWarnEruptingInferno = mod:NewSpecialWarningMoveAway(437956, nil, nil, nil, 1, 2)
local yellEruptingInferno = mod:NewShortYell(437956)
local specWarnEruptingInfernoDispel = mod:NewSpecialWarningDispel(437956, "RemoveMagic", nil, nil, 1, 2)
local specWarnMightyStomp = mod:NewSpecialWarningSpell(434761, nil, nil, nil, 2, 2)
local specWarnCinderbrewToss = mod:NewSpecialWarningMoveAway(434706, nil, nil, nil, 1, 2)
local yellCinderbrewToss = mod:NewShortYell(434706)
local specWarnBoilingFlames = mod:NewSpecialWarningInterrupt(437721, "HasInterrupt", nil, nil, 1, 2)
local specWarnHighSteaks = mod:NewSpecialWarningDodge(434998, nil, nil, nil, 2, 2)
local specWarnRecklessDelivery = mod:NewSpecialWarningDodge(448619, nil, nil, nil, 2, 2)
local specWarnRejuvenatingHoney = mod:NewSpecialWarningInterrupt(441627, "HasInterrupt", nil, nil, 1, 2)--High Prio Interrupt
local specWarnRejuvenatingHoneyDispel = mod:NewSpecialWarningDispel(441627, "MagicDispeller", nil, nil, 1, 2)
local specWarnSpillDrink = mod:NewSpecialWarningDispel(441214, "RemoveEnrage", nil, nil, 1, 2)

--local timerRainofArrowsCD = mod:NewCDNPTimer(15.7, 384476, nil, nil, nil, 3)
--local timerBloodcurdlingShoutCD = mod:NewCDNPTimer(19.1, 373395, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
local timerEruptingInfernoCD = mod:NewCDNPTimer(13.3, 437956, nil, nil, nil, 3, nil, DBM_COMMON_L.MAGIC_ICON)
local timerMightyStompCD = mod:NewCDNPTimer(24.2, 434761, nil, nil, nil, 2)
local timerCinderbrewTossCD = mod:NewCDNPTimer(12.1, 434706, nil, nil, nil, 3)
local timerThrowChairCD = mod:NewCDNPTimer(13.3, 434756, nil, nil, nil, 3)
local timerHighSteaksCD = mod:NewCDNPTimer(21.8, 434998, nil, nil, nil, 3)
local timerRecklessDeliveryCD = mod:NewCDNPTimer(20.6, 448619, nil, nil, nil, 3)
local timerFailedBatchCD = mod:NewCDNPTimer(22.2, 441434, nil, nil, nil, 5)--22.6-25.6
local timerSpillDrinkCD = mod:NewCDNPTimer(23, 441214, nil, nil, nil, 5)
local timerBoilingFlamesCD = mod:NewCDNPTimer(20.6, 437721, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
local timerRejuvenatingHoneyCD = mod:NewCDNPTimer(15.7, 441627, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)

mod:AddBoolOption("AGBuffs", true)

--local playerName = UnitName("player")

--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc, 7 off interrupt

--[[
function mod:CLTarget(targetname)
function mod:CinderbrewTarget(targetname)
if not targetname then return end
if targetname == UnitName("player") then
if self:AntiSpam(4, 5) then
specWarnChainLightning:Show()
specWarnChainLightning:Play("runout")
specWarnCinderbrewToss:Show()
specWarnCinderbrewToss:Play("range5")
yellCinderbrewToss:Yell()
end
yellChainLightning:Yell()
else
warnCinderBrewToss:Show(targetname)
end
end
--]]

--[[
function mod:ThrowChair(targetname)
if not targetname then return end
--if targetname == UnitName("player") then
-- if self:AntiSpam(4, 5) then
-- specWarnCinderbrewToss:Show()
-- specWarnCinderbrewToss:Play("range5")
-- yellCinderbrewToss:Yell()
-- end
--else
warnThrowChair:Show(targetname)
--end
end

function mod:SPELL_CAST_START(args)
local spellId = args.spellId
if not self:IsValidWarning(args.sourceGUID) then return end
if spellId == 387145 and self:AntiSpam(5, 4) then
--elseif spellId == 386024 then
-- timerTempestCD:Start(nil, args.sourceGUID)
-- if self.Options.SpecWarn386024interrupt and self:CheckInterruptFilter(args.sourceGUID, false, true) then
-- specWarnTempest:Show(args.sourceName)
-- specWarnTempest:Play("kickcast")
-- elseif self:AntiSpam(3, 7) then
-- warnTempest:Show()
-- end
if spellId == 437956 then
timerEruptingInfernoCD:Start(nil, args.sourceGUID)
elseif spellId == 434761 then
timerMightyStompCD:Start(nil, args.sourceGUID)
if self:AntiSpam(3, 6) then
specWarnMightyStomp:Show()
specWarnMightyStomp:Play("carefly")
end
elseif spellId == 434706 then
timerCinderbrewTossCD:Start(nil, args.sourceGUID)
self:ScheduleMethod(0.1, "BossTargetScanner", args.sourceGUID, "CinderbrewTarget", 0.1, 6)
elseif spellId == 434756 then
timerThrowChairCD:Start(nil, args.sourceGUID)
self:ScheduleMethod(0.1, "BossTargetScanner", args.sourceGUID, "ThrowChair", 0.1, 6)
elseif spellId == 437721 then
timerBoilingFlamesCD:Start(nil, args.sourceGUID)
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnBoilingFlames:Show(args.sourceName)
specWarnBoilingFlames:Play("kickcast")
end
elseif spellId == 441627 then
timerRejuvenatingHoneyCD:Start(nil, args.sourceGUID)
if self.Options.SpecWarn441627interrupt and self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnRejuvenatingHoney:Show(args.sourceName)
specWarnRejuvenatingHoney:Play("kickcast")
elseif self:AntiSpam(3, 7) then
warnRejuvenatingHoney:Show()
end
elseif spellId == 434998 then
timerHighSteaksCD:Start(nil, args.sourceGUID)
if self:AntiSpam(3, 2) then
specWarnHighSteaks:Show()
specWarnHighSteaks:Play("watchstep")
end
elseif spellId == 448619 then
timerRecklessDeliveryCD:Start(nil, args.sourceGUID)
if self:AntiSpam(3, 2) then
specWarnRecklessDelivery:Show()
specWarnRecklessDelivery:Play("chargemove")
end
elseif spellId == 441434 then
timerFailedBatchCD:Start(nil, args.sourceGUID)
if self:AntiSpam(3, 6) then
warnFailedBatch:Show()
warnFailedBatch:Play("crowdcontrol")
end
elseif spellId == 441214 then
timerSpillDrinkCD:Start(nil, args.sourceGUID)
end
end
--]]

--[[
function mod:SPELL_CAST_SUCCESS(args)
Expand All @@ -69,21 +144,61 @@ function mod:SPELL_CAST_SUCCESS(args)
end
--]]

--[[
function mod:SPELL_AURA_APPLIED(args)
if not self.Options.Enabled then return end
local spellId = args.spellId
if spellId == 395035 then
if spellId == 437956 then
--Always prio dispel over runout, even if on self cause can just dispel self
if self.Options.SpecWarn437956dispel and self:CheckDispelFilter("magic") then
specWarnEruptingInfernoDispel:Show(args.destName)
specWarnEruptingInfernoDispel:Play("helpdispel")
--Still do yell
if args:IsPlayer() then
yellEruptingInferno:Yell()
end
elseif args:IsPlayer() then
specWarnEruptingInferno:Show()
specWarnEruptingInferno:Play("runout")
yellEruptingInferno:Yell()
end
elseif spellId == 441627 and args:IsDestTypeHostile() then
specWarnRejuvenatingHoneyDispel:Show(args.destName)
specWarnRejuvenatingHoneyDispel:Play("helpdispel")
elseif spellId == 441214 and args:IsDestTypeHostile() and self:AntiSpam(3, 5) then
specWarnSpillDrink:Show(args.destName)
specWarnSpillDrink:Play("enrage")
end
end
--mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
--]]

--[[
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 192796 then
if cid == 218671 then--Venture Co Pyromaniac
timerEruptingInfernoCD:Stop(args.destGUID)
timerBoilingFlamesCD:Stop(args.destGUID)
elseif cid == 210269 then--Hired Muscle
timerMightyStompCD:Stop(args.destGUID)
timerThrowChairCD:Stop(args.destGUID)
elseif cid == 214920 then--Tasting Room Agent
timerCinderbrewTossCD:Stop(args.destGUID)
elseif cid == 214697 then--Chef Chewie
timerHighSteaksCD:Stop(args.destGUID)
elseif cid == 223423 then--Careless Hobgoblin
timerRecklessDeliveryCD:Stop(args.destGUID)
elseif cid == 222964 then--Flavor Scientist
timerFailedBatchCD:Stop(args.destGUID)
timerRejuvenatingHoneyCD:Stop(args.destGUID)
elseif cid == 220060 then--Taste Tester
timerSpillDrinkCD:Stop(args.destGUID)
end
end

--121211 cooking pot, 121320 flamethrower
function mod:GOSSIP_SHOW()
local gossipOptionID = self:GetGossipID()
if gossipOptionID then
if self.Options.AGBuffs and (gossipOptionID == 121211 or gossipOptionID == 121320) then
self:SelectGossip(gossipOptionID)
end
end
end
--]]
Loading

0 comments on commit 299bfed

Please sign in to comment.