#ICC/ALL: More defaults tweaking using new talent checks in my anti spam effort since as late fights get more complex and dbm can be kind of spammy if all options are simply on by default.
##DBM/CORE: Added IsRanged to core as well.
#CC/Northrend Beasts: Tweaked priority colors, and some defaults updates using talent checks.
@@ -19,21 +19,18 @@
"UNIT_DIED"
)
-local canTranq = select(2, UnitClass("player")) == "HUNTER"
- or select(2, UnitClass("player")) == "ROGUE"
-
-local warnImpaleOn = mod:NewTargetAnnounce(67478, 2)
-local warnFireBomb = mod:NewSpellAnnounce(66317, 4, nil, false)
+local warnImpaleOn = mod:NewTargetAnnounce(67478, 2, nil, mod:IsTank() or mod:IsHealer())
+local warnFireBomb = mod:NewSpellAnnounce(66317, 3, nil, false)
local warnBreath = mod:NewSpellAnnounce(67650, 1)
local warnRage = mod:NewSpellAnnounce(67657, 3)
-local warnSlimePool = mod:NewSpellAnnounce(67643, 2)
+local warnSlimePool = mod:NewSpellAnnounce(67643, 2, nil, mod:IsMelee())
local warnToxin = mod:NewTargetAnnounce(66823, 2)
local warnBile = mod:NewTargetAnnounce(66869, 3)
-local WarningSnobold = mod:NewAnnounce("WarningSnobold", 2)
+local WarningSnobold = mod:NewAnnounce("WarningSnobold", 4)
local warnEnrageWorm = mod:NewSpellAnnounce(68335, 3)
-local specWarnImpale3 = mod:NewSpecialWarning("SpecialWarningImpale3", false)
-local specWarnAnger3 = mod:NewSpecialWarning("SpecialWarningAnger3", false)
+local specWarnImpale3 = mod:NewSpecialWarning("SpecialWarningImpale3")
+local specWarnAnger3 = mod:NewSpecialWarning("SpecialWarningAnger3", mod:IsTank() or mod:IsHealer())
local specWarnFireBomb = mod:NewSpecialWarningMove(66317)
local specWarnSlimePool = mod:NewSpecialWarningMove(67640)
local specWarnToxin = mod:NewSpecialWarningMove(67620)
@@ -41,7 +38,7 @@
local specWarnSilence = mod:NewSpecialWarning("SpecialWarningSilence")
local specWarnCharge = mod:NewSpecialWarning("SpecialWarningCharge")
local specWarnChargeNear = mod:NewSpecialWarning("SpecialWarningChargeNear")
-local specWarnTranq = mod:NewSpecialWarning("SpecialWarningTranq", canTranq)
+local specWarnTranq = mod:NewSpecialWarning("SpecialWarningTranq", mod:CanRemoveEnrage())
local enrageTimer = mod:NewBerserkTimer(223)
local timerCombatStart = mod:NewTimer(23, "TimerCombatStart", 2457)
@@ -51,18 +48,18 @@
local timerBreath = mod:NewCastTimer(5, 67650)
local timerNextStomp = mod:NewNextTimer(20, 66330)
-local timerNextImpale = mod:NewNextTimer(10, 67477)
-local timerRisingAnger = mod:NewNextTimer(20.5, 66636)
+local timerNextImpale = mod:NewNextTimer(10, 67477, nil, mod:IsTank() or mod:IsHealer())
+local timerRisingAnger = mod:NewNextTimer(20.5, 66636, nil, mod:IsTank() or mod:IsHealer())
local timerStaggeredDaze = mod:NewBuffActiveTimer(15, 66758)
local timerNextCrash = mod:NewCDTimer(55, 67662)
-local timerSweepCD = mod:NewCDTimer(17, 66794)
-local timerSlimePoolCD = mod:NewCDTimer(12, 66883)
+local timerSweepCD = mod:NewCDTimer(17, 66794, nil, mod:IsMelee())
+local timerSlimePoolCD = mod:NewCDTimer(12, 66883, nil, mod:IsMelee())
local timerAcidicSpewCD = mod:NewCDTimer(21, 66819)
local timerMoltenSpewCD = mod:NewCDTimer(21, 66820)
local timerParalyticSprayCD = mod:NewCDTimer(21, 66901)
local timerBurningSprayCD = mod:NewCDTimer(21, 66902)
-local timerParalyticBiteCD = mod:NewCDTimer(25, 66824)
-local timerBurningBiteCD = mod:NewCDTimer(15, 66879)
+local timerParalyticBiteCD = mod:NewCDTimer(25, 66824, nil, mod:IsTank())
+local timerBurningBiteCD = mod:NewCDTimer(15, 66879, nil, mod:IsTank())
mod:AddBoolOption("PingCharge")
mod:AddBoolOption("SetIconOnChargeTarget", true)
@@ -2386,6 +2386,15 @@
or (select(2, UnitClass("player")) == "DRUID" and select(3, GetTalentTabInfo(2)) >= 51)
end
+function bossModPrototype:isRanged()
+ return select(2, UnitClass("player")) == "MAGE"
+ or select(2, UnitClass("player")) == "HUNTER"
+ or select(2, UnitClass("player")) == "WARLOCK"
+ or (select(2, UnitClass("player")) == "PALADIN" and select(3, GetTalentTabInfo(1)) >= 51)
+ or (select(2, UnitClass("player")) == "SHAMAN" and select(3, GetTalentTabInfo(2)) < 51)
+ or (select(2, UnitClass("player")) == "DRUID" and select(3, GetTalentTabInfo(2)) < 51)
+end
+
function bossModPrototype:IsPhysical()
return self:IsMelee() or select(2, UnitClass("player")) == "HUNTER"
end
@@ -20,14 +20,14 @@
local warnAirphase = mod:NewAnnounce("WarnAirphase", 2)
local warnGroundphaseSoon = mod:NewAnnounce("WarnGroundphaseSoon", 2)
local warnPhase2soon = mod:NewAnnounce("warnPhase2soon", 1)
-local warnPhase2 = mod:NewPhaseAnnounce(2, 1)
+local warnPhase2 = mod:NewPhaseAnnounce(2, 2)
local warnInstability = mod:NewAnnounce("warnInstability", 2, nil, false)
local warnChilledtotheBone = mod:NewAnnounce("warnChilledtotheBone", 2, nil, false)
local warnMysticBuffet = mod:NewAnnounce("warnMysticBuffet", 2, nil, false)
local warnFrostBeacon = mod:NewTargetAnnounce(70126, 4)
local warnBlisteringCold = mod:NewSpellAnnounce(70123, 3)
-local warnFrostBreath = mod:NewSpellAnnounce(71056, 2)
-local warnUnchainedMagic = mod:NewTargetAnnounce(69762, 2)
+local warnFrostBreath = mod:NewSpellAnnounce(71056, 2, mod:IsTank() or mod:IsHealer())
+local warnUnchainedMagic = mod:NewTargetAnnounce(69762, 2, nil, not mod:IsMelee())
local specWarnBlisteringCold = mod:NewSpecialWarningRun(70123)
local specWarnUnchainedMagic = mod:NewSpecialWarningYou(69762)
@@ -38,7 +38,7 @@
local timerNextAirphase = mod:NewTimer(110, "TimerNextAirphase", 43810)
local timerNextGroundphase = mod:NewTimer(45, "TimerNextGroundphase", 43810)
-local timerNextFrostBreath = mod:NewNextTimer(22, 71056)
+local timerNextFrostBreath = mod:NewNextTimer(22, 71056, nil, mod:IsTank() or mod:IsHealer())
local timerNextBlisteringCold = mod:NewCDTimer(69, 70123)
local timerBlisteringCold = mod:NewCastTimer(6, 70123)
local timerInstability = mod:NewBuffActiveTimer(8, 69766)
@@ -17,20 +17,20 @@
)
local warnCorrosion = mod:NewAnnounce("warnCorrosion", 2, nil, false)
-local warnGutSpray = mod:NewTargetAnnounce(71283, 3)
-local warnManaVoid = mod:NewSpellAnnounce(71741, 2)
+local warnGutSpray = mod:NewTargetAnnounce(71283, 3, nil, mod:IsTank() or mod:IsHealer())
+local warnManaVoid = mod:NewSpellAnnounce(71741, 2, nil, not mod:IsMelee())
local warnSupression = mod:NewSpellAnnounce(70588, 3)
-local warnPortalSoon = mod:NewSoonAnnounce(72483, 2)
-local warnPortal = mod:NewSpellAnnounce(72483, 3)
-local warnPortalOpen = mod:NewAnnounce("warnPortalOpen", 4)
+local warnPortalSoon = mod:NewSoonAnnounce(72483, 2, nil, mod:IsHealer())
+local warnPortal = mod:NewSpellAnnounce(72483, 3, nil, mod:IsHealer())
+local warnPortalOpen = mod:NewAnnounce("warnPortalOpen", 4, 72483, mod:IsHealer())
local specWarnLayWaste = mod:NewSpecialWarningSpell(71730)
local timerLayWaste = mod:NewBuffActiveTimer(12, 69325)
-local timerNextPortal = mod:NewCDTimer(46, 72483)
-local timerPortalsOpen = mod:NewBuffActiveTimer(10, 72483)
-local timerGutSpray = mod:NewTargetTimer(12, 71283)
-local timerCorrosion = mod:NewTargetTimer(6, 70751)
+local timerNextPortal = mod:NewCDTimer(46, 72483, nil, mod:IsHealer())
+local timerPortalsOpen = mod:NewBuffActiveTimer(10, 72483, nil, mod:IsHealer())
+local timerGutSpray = mod:NewTargetTimer(12, 71283, nil, mod:IsTank() or mod:IsHealer())
+local timerCorrosion = mod:NewTargetTimer(6, 70751, nil, false)
local berserkTimer = mod:NewBerserkTimer(420)--Seems to exist just kinda funny, the adds spawn rapid fast.
@@ -23,15 +23,15 @@
"UNIT_TARGET"
)
-local warnTargetSwitch = mod:NewAnnounce("WarnTargetSwitch", 3)
-local warnTargetSwitchSoon = mod:NewAnnounce("WarnTargetSwitchSoon", 2)
+local warnTargetSwitch = mod:NewAnnounce("WarnTargetSwitch", 2)
+local warnTargetSwitchSoon = mod:NewAnnounce("WarnTargetSwitchSoon", 1)
local warnConjureFlames = mod:NewCastAnnounce(71718, 2)
local warnEmpoweredFlamesCast = mod:NewCastAnnounce(72040, 3)
local warnEmpoweredFlames = mod:NewTargetAnnounce(72040, 4)
local warnShockVortex = mod:NewTargetAnnounce(72037, 3) -- 1,5sec cast
local warnEmpoweredShockVortex = mod:NewCastAnnounce(72039, 4) -- 4,5sec cast
-local warnKineticBomb = mod:NewSpellAnnounce(72053, 2)
-local warnDarkNucleus = mod:NewSpellAnnounce(71943, 1) -- instant cast
+local warnKineticBomb = mod:NewSpellAnnounce(72053, 3)
+local warnDarkNucleus = mod:NewSpellAnnounce(71943, 1, nil, false) -- instant cast
local specWarnVortex = mod:NewSpecialWarning("specWarnVortex")
local specWarnVortexNear = mod:NewSpecialWarning("specWarnVortexNear")
@@ -40,7 +40,7 @@
local specWarnShadowPrison = mod:NewSpecialWarningStack(72999, nil, 10)
local timerTargetSwitch = mod:NewTimer(47, "TimerTargetSwitch") -- every 46-47seconds
-local timerDarkNucleusCD = mod:NewCDTimer(10, 71943) -- usually every 10 seconds but sometimes more
+local timerDarkNucleusCD = mod:NewCDTimer(10, 71943, nil, false) -- usually every 10 seconds but sometimes more
local timerConjureFlamesCD = mod:NewCDTimer(20, 71718) -- every 20-30 seconds but never more often than every 20sec
local timerShockVortex = mod:NewCDTimer(16.5, 72037) -- Seen a range from 16,8 - 21,6
local timerShadowPrison = mod:NewBuffActiveTimer(10, 72999) --Hard mode debuff
@@ -19,12 +19,12 @@
"CHAT_MSG_MONSTER_YELL"
)
-local warnRemorselessWinter = mod:NewSpellAnnounce(74270, 2) --Phase Transition Start Ability
-local warnQuake = mod:NewSpellAnnounce(72262, 3) --Phase Transition End Ability
+local warnRemorselessWinter = mod:NewSpellAnnounce(74270, 3) --Phase Transition Start Ability
+local warnQuake = mod:NewSpellAnnounce(72262, 4) --Phase Transition End Ability
local warnRagingSpirit = mod:NewTargetAnnounce(69200, 3) --Transition Add
local warnShamblingHorror = mod:NewSpellAnnounce(70372, 3) --Phase 1 Add
local warnDrudgeGhouls = mod:NewSpellAnnounce(70358, 2) --Phase 1 Add
-local warnShamblingEnrage = mod:NewTargetAnnounce(72143, 3) --Phase 1 Add Ability
+local warnShamblingEnrage = mod:NewTargetAnnounce(72143, 3, nil, mod:IsHealer() or mod:IsTank() or mod:CanRemoveEnrage()) --Phase 1 Add Ability
local warnNecroticPlague = mod:NewTargetAnnounce(73912, 4) --Phase 1+ Ability
local warnInfest = mod:NewSpellAnnounce(73779, 3, nil, mod:IsHealer()) --Phase 1 & 2 Ability
local warnPhase2Soon = mod:NewAnnounce("WarnPhase2Soon", 1)
@@ -15,38 +15,31 @@
"CHAT_MSG_MONSTER_YELL"
)
-local isRanged = select(2, UnitClass("player")) == "MAGE"
- or select(2, UnitClass("player")) == "HUNTER"
- or select(2, UnitClass("player")) == "WARLOCK"
- or (select(2, UnitClass("player")) == "PALADIN" and select(3, GetTalentTabInfo(1)) >= 51)
- or (select(2, UnitClass("player")) == "SHAMAN" and select(3, GetTalentTabInfo(2)) < 51)
- or (select(2, UnitClass("player")) == "DRUID" and select(3, GetTalentTabInfo(2)) < 51)
-
-local warnFrenzySoon = mod:NewAnnounce("warnFrenzySoon", 1, 72737)
+local warnFrenzySoon = mod:NewAnnounce("warnFrenzySoon", 1, 72737, mod:IsTank() or mod:IsHealer())
local warnAddsSoon = mod:NewPreWarnAnnounce(72173, 10, 3)
-local warnFrenzy = mod:NewSpellAnnounce(72737, 2)
+local warnFrenzy = mod:NewSpellAnnounce(72737, 2, nil, mod:IsTank() or mod:IsHealer())
local warnBloodNova = mod:NewSpellAnnounce(73058, 2)
local warnMark = mod:NewTargetAnnounce(72444, 4)
local warnBoilingBlood = mod:NewTargetAnnounce(72441, 2)
-local warnRuneofBlood = mod:NewTargetAnnounce(72410, 3)
+local warnRuneofBlood = mod:NewTargetAnnounce(72410, 3, nil, mod:IsTank() or mod:IsHealer())
local specWarnMarkCast = mod:NewSpecialWarningYou(72444, false)--Experimental
local specwarnMark = mod:NewSpecialWarningTarget(72444, false)
-local specwarnRuneofBlood = mod:NewSpecialWarningTarget(72410, false)
+local specwarnRuneofBlood = mod:NewSpecialWarningTarget(72410, mod:IsTank())
local timerCombatStart = mod:NewTimer(48, "TimerCombatStart", 2457)
-local timerRuneofBlood = mod:NewTargetTimer(20, 72410)
+local timerRuneofBlood = mod:NewTargetTimer(20, 72410, nil, mod:IsTank())
local timerBoilingBlood = mod:NewBuffActiveTimer(15, 72441)
local timerBloodNova = mod:NewCDTimer(20, 73058)--20-25sec cooldown?
local timerCallBloodBeast = mod:NewNextTimer(40, 72173)
-local timerNextRuneofBlood = mod:NewCDTimer(25, 72410)
+local timerNextRuneofBlood = mod:NewCDTimer(25, 72410, nil, mod:IsTank() or mod:IsHealer())
local enrageTimer = mod:NewBerserkTimer(480)
-mod:AddBoolOption("RangeFrame", isRanged)
+mod:AddBoolOption("RangeFrame", mod:isRanged())
mod:AddBoolOption("RunePowerFrame", true, "misc")
-mod:AddBoolOption("SetIconOnBoilingBlood", true)
-mod:AddBoolOption("SetIconOnMarkCast", true)
+mod:AddBoolOption("SetIconOnBoilingBlood", false)
+mod:AddBoolOption("SetIconOnMarkCast", false)
mod:RemoveOption("HealthFrame")
local warned_preFrenzy = false
@@ -20,8 +20,6 @@
or select(2, UnitClass("player")) == "SHAMAN"
or select(2, UnitClass("player")) == "PRIEST"
-local isMelee = mod:IsMelee()
-
local warnAddsSoon = mod:NewAnnounce("WarnAddsSoon", 2)
local warnDominateMind = mod:NewTargetAnnounce(71289, 3)
local warnDeathDecay = mod:NewSpellAnnounce(72108, 2)
@@ -30,15 +28,15 @@
local warnDarkEmpowerment = mod:NewSpellAnnounce(70901, 4)
local warnPhase2 = mod:NewPhaseAnnounce(2, 1)
local warnFrostbolt = mod:NewCastAnnounce(72007, 2)
-local warnTouchInsignificance = mod:NewAnnounce("WarnTouchInsignificance", 2)
+local warnTouchInsignificance = mod:NewAnnounce("WarnTouchInsignificance", 2, nil, mod:IsTank() or mod:IsHealer())
local warnDarkMartyrdom = mod:NewSpellAnnounce(72499, 4)
local specWarnVampricMight = mod:NewSpecialWarningDispel(70674, canPurge)
local specWarnCurseTorpor = mod:NewSpecialWarningYou(71237)
local specWarnDeathDecay = mod:NewSpecialWarningMove(72108)
local specWarnTouchInsignificance = mod:NewSpecialWarningStack(71204, nil, 3)
-local specWarnDarkMartyrdom = mod:NewSpecialWarningMove(72499, isMelee)
-local specWarnVengefulShade = mod:NewSpecialWarning("specWarnVengefulShade", false)
+local specWarnDarkMartyrdom = mod:NewSpecialWarningMove(72499, mod:IsMelee())
+local specWarnVengefulShade = mod:NewSpecialWarning("specWarnVengefulShade", not mod:IsTank())
local timerAdds = mod:NewTimer(60, "TimerAdds")
local timerDominateMind = mod:NewBuffActiveTimer(12, 71289)
@@ -12,13 +12,6 @@
"SPELL_AURA_APPLIED_DOSE"
)
-local isRanged = select(2, UnitClass("player")) == "MAGE"
- or select(2, UnitClass("player")) == "HUNTER"
- or select(2, UnitClass("player")) == "WARLOCK"
- or (select(2, UnitClass("player")) == "PALADIN" and select(3, GetTalentTabInfo(1)) >= 51)
- or (select(2, UnitClass("player")) == "SHAMAN" and select(3, GetTalentTabInfo(2)) < 51)
- or (select(2, UnitClass("player")) == "DRUID" and select(3, GetTalentTabInfo(2)) < 51)
-
local warnInhaledBlight = mod:NewAnnounce("InhaledBlight", 3)
local warnGastricBloat = mod:NewAnnounce("WarnGastricBloat", 2, nil, mod:IsTank() or mod:IsHealer())
local warnGasSpore = mod:NewTargetAnnounce(69279, 4)
@@ -32,7 +25,7 @@
local timerGasSpore = mod:NewBuffActiveTimer(12, 69279)
local timerVileGas = mod:NewBuffActiveTimer(6, 71219)
-local timerGasSporeCD = mod:NewNextTimer(40, 69279)
+local timerGasSporeCD = mod:NewNextTimer(40, 69279) -- Every 40 seconds except after 3rd and 6th cast, then it's 50sec CD
local timerPungentBlight = mod:NewNextTimer(33, 71219) -- 33 seconds after 3rd stack of inhaled
local timerInhaledBlight = mod:NewNextTimer(34, 71912) -- 34 seconds'ish
local timerGastricBloat = mod:NewTargetTimer(100, 72551, nil, mod:IsTank() or mod:IsHealer()) -- 100 Seconds until expired
@@ -40,7 +33,7 @@
local berserkTimer = mod:NewBerserkTimer(300)
-mod:AddBoolOption("RangeFrame", isRanged)
+mod:AddBoolOption("RangeFrame", mod:isRanged())
mod:AddBoolOption("SetIconOnGasSpore", true)
local gasSporeTargets = {}
@@ -16,7 +16,7 @@
)
local warnSlimePuddle = mod:NewSpellAnnounce(70341, 2)
-local warnUnstableExperimentSoon = mod:NewSoonAnnounce(70351, 2)
+local warnUnstableExperimentSoon = mod:NewSoonAnnounce(70351, 3)
local warnUnstableExperiment = mod:NewSpellAnnounce(70351, 4)
local warnVolatileOozeAdhesive = mod:NewTargetAnnounce(70447, 3)
local warnGaseousBloat = mod:NewTargetAnnounce(70672, 3)
@@ -26,7 +26,7 @@
local warnMalleableGoo = mod:NewSpellAnnounce(72295, 2) -- Phase 2 ability
local warnChokingGasBomb = mod:NewSpellAnnounce(71255, 3) -- Phase 2 ability
local warnPhase3Soon = mod:NewAnnounce("WarnPhase3Soon", 1)
-local warnMutatedPlague = mod:NewAnnounce("WarnMutatedPlague", 2) -- Phase 3 ability
+local warnMutatedPlague = mod:NewAnnounce("WarnMutatedPlague", 2, nil, mod:IsTank() or mod:IsHealer()) -- Phase 3 ability
local warnOozeVariable = mod:NewTargetAnnounce(70352, 2) -- Heroic Ability
local warnGasVariable = mod:NewTargetAnnounce(70353, 2) -- Heroic Ability
@@ -47,7 +47,6 @@
local timerChokingGasBombCD = mod:NewNextTimer(35.5, 71255)
local timerMalleableGooCD = mod:NewCDTimer(25, 72295)
local timerTearGas = mod:NewBuffActiveTimer(19, 71615)
-local timerMutatedPlague = mod:NewTargetTimer(60, 72451) -- 60 Seconds until expired
local timerMutatedPlagueCD = mod:NewCDTimer(10, 72451) -- 10 to 11
local timerUnboundPlague = mod:NewBuffActiveTimer(10, 72856) -- Heroic Ability: we can't keep the debuff 60 seconds, so we have to switch at 10 seconds. Otherwise the debuff does to much damage!
@@ -254,7 +253,6 @@
timerTearGas:Start()
elseif args:IsSpellID(72451, 72463, 72671, 72672) then -- Mutated Plague
warnMutatedPlague:Show(args.spellName, args.destName, args.amount or 1)
- timerMutatedPlague:Start(args.destName)
timerMutatedPlagueCD:Start()
elseif args:IsSpellID(70542) then
timerMutatedSlash:Show(args.destName)
@@ -21,7 +21,7 @@
local warnSlimeSpray = mod:NewSpellAnnounce(69508, 2)
local warnOozeExplosionCast = mod:NewCastAnnounce(69839, 3)
local warnMutatedInfection = mod:NewTargetAnnounce(71224, 4)
-local warnRadiatingOoze = mod:NewSpellAnnounce(69760, 2)
+local warnRadiatingOoze = mod:NewSpellAnnounce(69760, 3)
local warnOozeSpawn = mod:NewAnnounce("WarnOozeSpawn", 1)
local warnStickyOoze = mod:NewSpellAnnounce(69774, 1)
local warnUnstableOoze = mod:NewAnnounce("WarnUnstableOoze", 2)
@@ -40,8 +40,8 @@
local timerOozeExplosion = mod:NewCastTimer(4, 69839)
local soundMutatedInfection = mod:NewSound(71224)
-mod:AddBoolOption("InfectionIcon")
-mod:AddBoolOption("ExplosionIcon")
+mod:AddBoolOption("InfectionIcon", true)
+mod:AddBoolOption("ExplosionIcon", false)
function mod:OnCombatStart(delay)
timerWallSlime:Start(25-delay)