5.16 update (#1)

Co-authored-by: Szyler <Szyler@Szyler.com>
This commit is contained in:
Szyler
2022-12-01 22:16:16 +01:00
committed by GitHub
parent 39c0ed874e
commit 5b3b160e21
15 changed files with 293 additions and 221 deletions
+4 -4
View File
@@ -98,6 +98,7 @@ function mod:SPELL_AURA_APPLIED(args)
timerNextRod:Cancel()
self.vb.phase = 2
timerNextTurbulentWinds:Start()
timerNextStorm:Cancel()
end
end
@@ -109,7 +110,6 @@ function mod:SPELL_CAST_START(args)
end
function mod:UNIT_HEALTH(unit)
if (self.vb.phase == 2) and (mod:GetUnitCreatureId(unit) == 23574) then
local hp = (math.max(0,UnitHealth(unit)) / math.max(1, UnitHealthMax(unit))) * 100;
if (hp>60 and hp<=65) and platform1 then
@@ -134,8 +134,10 @@ function mod:UNIT_HEALTH(unit)
nextLightningStrike:Start(21)
self:ScheduleMethod(21, "LightningStrike")
timerNextRod:Start(28)
timerNextStorm:Start(55)
end
end
end
function mod:UNIT_AURA(unit)
local Name = UnitName(unit)
@@ -149,6 +151,4 @@ function mod:UNIT_AURA(unit)
SendChatMessage(L.DBM_EOS_PLAYER, "YELL")
end
end
end
end
end
+52 -13
View File
@@ -21,10 +21,14 @@ local warnEnrage = mod:NewSpellAnnounce(43139, 3)
local warnFrenzy = mod:NewSpellAnnounce(43290, 3)
local warnSpirit = mod:NewAnnounce("WarnSpirit", 4, 39414)
local warnNormal = mod:NewAnnounce("WarnNormal", 4, 39414)
local warnMerge = mod:NewAnnounce("WarnMerge", 4, 39414)
local warnSplit = mod:NewSpellAnnounce(2136032, 3)
local warnClaw = mod:NewSpellAnnounce(2136054, 3)
local warnRush = mod:NewSpellAnnounce(2136058, 3)
local specWarnTotem = mod:NewSpellAnnounce(2136034)
local specWarnEnrage = mod:NewSpecialWarningDispel(2136001)
local timerNextSavagery = mod:NewNextTimer(10, 2136001)
--local specWarnSaberStack= mod:NewSpecialWarningStack(2136000, nil, 3)
local timerNextFlameShock = mod:NewNextTimer(10, 2136002)
@@ -33,6 +37,11 @@ local timerNextFrostShock = mod:NewNextTimer(10, 2136023)
local timerNextSaber = mod:NewNextTimer(15, 2136000)
local timerNextCapacitor = mod:NewNextTimer(20, 2136034)
local timerNextClaw = mod:NewNextTimer(45, 2136054)
local timerClaw = mod:NewTargetTimer(9, 2136054)
local timerNextRush = mod:NewNextTimer(45, 2136058)
local timerRush = mod:NewCastTimer(15, 2136058)
local berserkTimer = mod:NewBerserkTimer(600)
local yellFlameShock = mod:NewFadesYell(2136002)
@@ -46,8 +55,10 @@ mod:AddBoolOption(L.ShockYellOpt)
function mod:OnCombatStart(delay)
berserkTimer:Start(-delay)
timerNextCapacitor:Start(6)
timerNextSavagery:Start(8)
timerNextSaber:Start(13)
self.vb.phase = 1
end
function mod:SPELL_AURA_APPLIED(args)
@@ -57,6 +68,7 @@ function mod:SPELL_AURA_APPLIED(args)
else
warnEnrage:Show()
end
timerNextSavagery:Start()
elseif args:IsSpellID(43290) then
warnFrenzy:Show()
elseif args:IsSpellID(2136000) then
@@ -64,13 +76,19 @@ function mod:SPELL_AURA_APPLIED(args)
elseif args:IsSpellID(2136032) then
warnSplit:Show()
timerNextCapacitor:Cancel()
timerNextSavagery:Cancel()
timerNextFlameShock:Start(4)
timerNextEarthShock:Start(8)
timerNextFrostShock:Start(12)
timerNextSaber:Cancel()
self.vb.phase = self.vb.phase + 1
elseif args:IsSpellID(2136052) then
warnMerge:Show()
timerNextClaw:Start(5)
timerNextRush:Start(24)
elseif args:IsSpellID(2136002, 2136003, 2136004, 2136005) then
timerNextFlameShock:Start()
if args:IsPlayer() then
if args:IsPlayer() and self.Options.ShockYellOpt then
SendChatMessage(L.FlameShockYell, "YELL")
yellFlameShock:Countdown(12, 3)
end
@@ -78,18 +96,25 @@ function mod:SPELL_AURA_APPLIED(args)
specWarnMagma:Show()
elseif args:IsSpellID(2136015, 2136016, 2136017, 2136018) then
timerNextEarthShock:Start()
if args:IsPlayer() then
if args:IsPlayer() and self.Options.ShockYellOpt then
SendChatMessage(L.EarthShockYell, "YELL")
yellEarthShock:Countdown(4, 4)
end
elseif args:IsSpellID(2136023, 2136024, 2136025, 2136026) then
timerNextFrostShock:Start()
if args:IsPlayer() then
if args:IsPlayer() and self.Options.ShockYellOpt then
SendChatMessage(L.FrostShockYell, "YELL")
yellFrostShock:Countdown(5, 3)
end
elseif args:IsSpellID(2136053) then
warnClaw:Show()
timerClaw:Start(args.destName)
timerNextClaw:Start()
elseif args:IsSpellID(2136058, 2136059, 2136060, 2136061) and DBM:AntiSpam(30) then
warnRush:Show()
timerRush:Start()
timerNextRush:Start()
end
end
function mod:SPELL_AURA_REMOVED(args)
@@ -100,26 +125,40 @@ function mod:SPELL_AURA_REMOVED(args)
timerNextFrostShock:Cancel()
elseif args:IsSpellID(2136002, 2136003, 2136004, 2136005) and args:IsPlayer() then
yellFlameShock:Cancel()
SendChatMessage("Molten Earth on me!", "YELL")
if self.Options.ShockYellOpt then
SendChatMessage("Molten Earth on me!", "YELL")
end
-- elseif args:IsSpellID(2136015, 2136016, 2136017, 2136018) and args:IsPlayer() then
-- yellEarthShock:Cancel()
-- SendChatMessage("Dispelled by" ..args.sourceName, "YELL")
elseif args:IsSpellID(2136023, 2136024, 2136025, 2136026) and args:IsPlayer() then
yellFrostShock:Cancel()
SendChatMessage("I'm Frozen!", "YELL")
if self.Options.ShockYellOpt then
SendChatMessage("I'm Frozen!", "YELL")
end
elseif args:IsSpellID(2136032) then
self.vb.phase = self.vb.phase + 1
if self.vb.phase <= 3 then
warnNormal:Show()
timerNextCapacitor:Start(6)
timerNextSavagery:Start(8)
timerNextSaber:Start(13)
end
end
end
function mod:SPELL_DISPEL(args)
if args:IsSpellID(2136002, 2136003, 2136004, 2136005) and args:IsPlayer() then
yellFlameShock:Cancel()
SendChatMessage("Molten Earth on me!", "YELL")
if self.Options.ShockYellOpt then
SendChatMessage("Molten Earth on me!", "YELL")
end
-- elseif args:IsSpellID(2136015, 2136016, 2136017, 2136018) and args:IsPlayer() then
-- yellEarthShock:Cancel()
-- SendChatMessage("Dispelled by" ..args.sourceName, "YELL")
elseif args:IsSpellID(2136023, 2136024, 2136025, 2136026) and args:IsPlayer() then
yellFrostShock:Cancel()
SendChatMessage("I'm Frozen!", "YELL")
if self.Options.ShockYellOpt then
SendChatMessage("I'm Frozen!", "YELL")
end
end
end
@@ -143,7 +182,7 @@ function mod:SPELL_PERIODIC_MISSED(args)
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2136040, 2136041, 2136042, 2136043) and args:IsPlayer() and AntiSpam(1) then --2136039, 2136040, 2136041, 2136042, 2136043
if args:IsSpellID(2136040, 2136041, 2136042, 2136043) and args:IsPlayer() and DBM:AntiSpam(1) then --2136039, 2136040, 2136041, 2136042, 2136043
specWarnSpiritLink:Show()
end
end
@@ -154,4 +193,4 @@ function mod:CHAT_MSG_MONSTER_YELL(msg)
elseif msg == L.YellNormal or msg:find(L.YellNormal) then
warnNormal:Show()
end
end
end
+4 -4
View File
@@ -69,7 +69,7 @@ end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpellID(2135908) then
timerNextFlameWhirl:Start()
flameWhirlCast:Start()
timerFlameWhirlCast:Start()
elseif args:IsSpellID(2135905) then
specWarnAllAdds:Show()
timerAllAdds:Start()
@@ -101,11 +101,11 @@ function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) and args:IsPlayer() then
warnFlame:Show()
elseif args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
if AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer.
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer.
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
timerNextPillar:Start(pillarTimer) --
end
elseif args:IsSpellID(2135915, 2135933, 2135934, 2135935) and AntiSpam(1, 2) and self.vb.phase == 2 then
elseif args:IsSpellID(2135915, 2135933, 2135934, 2135935) and DBM:AntiSpam(1, 2) and self.vb.phase == 2 then
specWarnBomb:Schedule(bombNextTimer-6)
timerBombCast:Schedule(bombNextTimer-6)
timerNextBomb:Start(bombNextTimer-6)
@@ -115,7 +115,7 @@ end
function mod:SPELL_MISSED(args)
if args:IsSpellID(2135924, 2135925, 2135926, 2135927) then
if AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer. AntiSpam(x,1) means Antispam ID1, so this would be the same antispam timer as the Spell_damage one.
if DBM:AntiSpam(pillarTimer-0.1, 1) then -- Antispam at 20-0.1 seconds to not have other people walking into the pillar change the next timer. AntiSpam(x,1) means Antispam ID1, so this would be the same antispam timer as the Spell_damage one.
pillarTimer = ((pillarTimer + 5) <= 20) and 20 or 15 -- Alternates between 20 and 15. If pillartimer + 5 is 20, then 20 otherwise (ie. if 20+5 is not 20, then) 15
timerNextPillar:Start(pillarTimer) --
end
+7 -3
View File
@@ -51,6 +51,7 @@ local timerBestialWrath = mod:NewTargetTimer(10, 2136135)
local warnMageSoul = mod:NewSpecialWarning("Mage Soul Absorbed")
local timerNextRuneOfPower = mod:NewNextTimer(5, 2136136) --2136136
local timerRuneOfPower = mod:NewTargetTimer(6, 2136136) --2136136
local timerRuneOfPowerduration = mod:NewTimer(10, "Rune of Power duration", 2136136)
local timerNextBlizzard = mod:NewNextTimer(15, 2136137) --2136137, 2136138, 2136139, 2136140
local timerNextLivingBomb = mod:NewNextTimer(25, 2136141) --Dot: 2136141, 2136142, 2136143, 2136144, Explosion damage: 2136145, 2136146, 2136147, 2136148
local timerLivingBomb = mod:NewTargetTimer(12, 2136141) --2136141
@@ -84,8 +85,8 @@ local timerCastChainHeal = mod:NewCastTimer(3, 2136176)
local warnWarlockSoul = mod:NewSpecialWarning("Warlock Soul Absorbed")
local timerNextCurseOfDoom = mod:NewNextTimer(5, 2136177) --2136177, 2136178, 2136179, 2136180
local timerCurseOfDoom = mod:NewTargetTimer(15, 2136177)
local timerNextHellfire = mod:NewNextTimer(15, 2136181) --2136181, 2136182, 2136183, 2136184, 2136185
local timerNextRainofFire = mod:NewNextTimer(25, 2136186) --2136186, 2136187, 2136188, 2136189
local timerNextRainofFire = mod:NewNextTimer(15, 2136186) --2136186, 2136187, 2136188, 2136189
local timerNextHellfire = mod:NewNextTimer(25, 2136181) --2136181, 2136182, 2136183, 2136184, 2136185
local specWarnRainofFire = mod:NewSpecialWarningRun(2136182)
local specWarnHellfire = mod:NewSpecialWarningRun(2136186)
@@ -122,8 +123,11 @@ function mod:SPELL_AURA_APPLIED(args)
timerNextRuneOfPower:Start()
timerNextBlizzard:Start()
timerNextLivingBomb:Start()
elseif args:IsSpellID(2136136) then
elseif args:IsSpellID(2136136) and args.destName == "Malacrass" then
timerRuneOfPower:Show(args.destName)
timerRuneOfPowerduration:Start()
elseif args:IsSpellID(2136141) then
timerLivingBomb:Show(args.destName)
elseif args:IsSpellID(2136137, 2136138, 2136139, 2136140) then
specWarnRainofFire:Show()
elseif args:IsSpellID(2136117) then
+22 -6
View File
@@ -30,12 +30,17 @@ local warnImpale = mod:NewTargetAnnounce(2135824, 3) --2135823, 2135824, 213582
local timerBear = mod:NewTimer(45, "TimerBear", 39414)
local timerNormal = mod:NewTimer(30, "TimerNormal", 39414)
local specWarnCharge = mod:NewSpecialWarningYou(2135805)
local timerCharge1 = mod:NewTimer(13, "Charge (1)", 2135805)
local timerCharge2 = mod:NewTimer(14, "Charge (2)", 2135805)
local timerCharge3 = mod:NewTimer(15, "Charge (3)", 2135805)
local timerNextFury = mod:NewNextTimer(45, 2135837)
local timerNextRoar = mod:NewNextTimer(2135829, 14) -- HC 2135830 , ASC 10Man 2135831, ASC25man 2135832 --2136323 is ZUL'JIN ROAR!!!
local timerNextRend = mod:NewNextTimer(10, 2135833) --timer seems to not be constant, need to find out
local timerSpirit = mod:NewTargetTimer(15, 2135881)
local warnSpiritYou = mod:NewSpecialWarningYou(2135881)
local berserkTimer = mod:NewBerserkTimer(600)
local roarSpam = 0
@@ -46,6 +51,8 @@ local roarTimer = 0
function mod:OnCombatStart(delay)
berserkTimer:Start(-delay)
timerNextFury:Start()
timerCharge:Start(12)
-- timerCharge2:Start(13)
roarSpam = 0
roarCount = 0
roarTimer = 0
@@ -66,19 +73,28 @@ function mod:SPELL_AURA_APPLIED(args)
timerNextFury:Start()
elseif args:IsSpellID(2135837) then
specWarnFury:Show()
elseif args:IsSpellID(2135804, 2135805, 2135806, 2135807) and AntiSpam(5) then
timerCharge1:Start()
timerCharge2:Start()
timerCharge3:Start()
elseif args:IsSpellID(2135804, 2135805, 2135806, 2135807) and DBM:AntiSpam(5) then
timerCharge:Start()
-- timerCharge1:Start()
-- timerCharge2:Start()
-- timerCharge3:Start()
-- chargeCount = chargeCount+1
-- if chargeCount == 3 then
-- self:bearCharge()
-- end
if args:IsPlayer() and (args.amount and args.amount > 1) then
specWarnCharge:Show()
end
elseif args:IsSpellID(2135833, 2135834, 2135835, 2135836) then
specWarnRend:Show(args.destName)
timerNextRend:Start()
elseif args:IsSpellID(2135824, 2135825, 2135826, 2135827) then
warnImpale:Show(args.destName)
elseif args:IsSpellID(2135881) then
timerSpirit:Start(args.destName)
if args:IsPlayer() then
warnSpiritYou:Show()
end
end
end
@@ -98,7 +114,7 @@ function mod:SPELL_AURA_REMOVED(args)
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2135829, 2135830, 2135831, 2135832) and AntiSpam() then
if args:IsSpellID(2135829, 2135830, 2135831, 2135832) and DBM:AntiSpam() then
roarCount = roarCount + 1
roarTimer = math.max(3, 14-roarCount)
timerNextRoar:Start(roarTimer)
@@ -112,7 +128,7 @@ function mod:SPELL_CAST_START(args)
end
function mod:SPELL_SUMMON(args)
if args:IsSpellID(2135814) and AntiSpam() then
if args:IsSpellID(2135814) and DBM:AntiSpam() then
timerNextWhirling:Start()
end
end
+31 -29
View File
@@ -48,9 +48,9 @@ local timerNextScorchingBreath = mod:NewNextTimer(26, 2136358) --2136358, 213635
local timerNextArmageddon = mod:NewNextTimer(23, 2136372) --2136372, 2136373, 2136374, 2136375
local specWarnBomb = mod:NewSpecialWarningSpell(2136404) --2136402, 2136403, 2136404, 2136405, 2136406, 2136407
local timerNextBomb = mod:NewNextTimer(37, 2136404) --2136402, 2136403, 2136404, 2136405, 2136406, 2136407
local bombCast = mod:NewCastTimer(7, 2136402) --2136402, 2136403, 2136404, 2136405, 2136406, 2136407
local timerBombCast = mod:NewCastTimer(7, 2136402) --2136402, 2136403, 2136404, 2136405, 2136406, 2136407
local timerNextFlameWhirl = mod:NewNextTimer(50, 2135908)
local flameWhirlCast = mod:NewCastTimer(6, 2135908)
local timerFlameWhirlCast = mod:NewCastTimer(6, 2135908)
@@ -67,8 +67,6 @@ local eosSpam = 0
function mod:PhaseIncrease()
self.vb.phase = self.vb.phase + 1
if self.vb.phase == 2 then
warnPhase2:Show()
elseif self.vb.phase == 3 then
@@ -130,20 +128,24 @@ function mod:SPELL_AURA_APPLIED(args)
timerNextWhirlwind:Start(33)
elseif args:IsSpellID(2136436, 2136196) then --Phase 6-7-8-9
if args.sourceName == "Akil'zon" then
self.vb.phase = self.vb.phase + 1
self:PhaseIncrease()
warnPhaseEagle:Show()
nextLightningStrike:Start(21)
self:ScheduleMethod(21,"LightningStrike")
timerNextStorm:Start(5)
elseif args.sourceName == "Nalorakk" then
self.vb.phase = self.vb.phase + 1
self:PhaseIncrease()
warnPhaseBear:Show()
elseif args.sourceName == "Jan'alai" then
self.vb.phase = self.vb.phase + 1
self:PhaseIncrease()
warnPhaseDragonhawk:Show()
timerNextBomb:Start(7)
timerNextScorchingBreath:Start(22)
elseif args.sourceName == "Halazzi" then
self.vb.phase = self.vb.phase + 1
self:PhaseIncrease()
warnPhaseLynx:Show()
end
@@ -175,10 +177,10 @@ function mod:SPELL_CAST_SUCCESS(args)
elseif args:IsSpellID(2136316) then
timerNextWhirlwind:Start()
elseif args:IsSpellID(2136402) then
bombCast:Start()
timerBombCast:Start()
specWarnBomb:Show()
elseif args:IsSpellID(2136363) then
flameWhirlCast:Start()
timerFlameWhirlCast:Start()
timerNextFlameWhirl:Start() -- timer is probably wrong
end
end
@@ -192,26 +194,26 @@ function mod:SPELL_CAST_START(args)
end
function mod:SPELL_DAMAGE(args)
if args:IsSpellID(2135829, 2135830, 2135831, 2135832) and AntiSpam() then
if args:IsSpellID(2135829, 2135830, 2135831, 2135832) and DBM:AntiSpam() then
timerNextDeafeningRoar:Start()
elseif args:IsSpellID(2136414, 2136415, 2136416, 2136417) and args:IsPlayer() and AntiSpam(1) then --2136413, 2136414, 2136415, 2136416, 2136417
elseif args:IsSpellID(2136414, 2136415, 2136416, 2136417) and args:IsPlayer() and DBM:AntiSpam(1) then --2136413, 2136414, 2136415, 2136416, 2136417
specWarnSpiritLink:Show()
end
end
function mod:UNIT_AURA(unit)
local Name = UnitName(unit)
if (UnitDebuff(unit, "Eye of the storm")) and (GetTime() - eosSpam) > 15 then
eosSpam = GetTime()
timerStorm:Start()
warnStorm:Show(Name)
specWarnStorm:Show()
-- timerNextStorm:Start()
if Name == UnitName("player") then
SendChatMessage(L.DBM_EOS_PLAYER, "YELL")
end
end
end
-- function mod:UNIT_AURA(unit) -- triggers from Akilzon (same code)
-- local Name = UnitName(unit)
-- if (UnitDebuff(unit, "Eye of the storm")) and (GetTime() - eosSpam) > 15 then
-- eosSpam = GetTime()
-- timerStorm:Start()
-- warnStorm:Show(Name)
-- specWarnStorm:Show()
-- -- timerNextStorm:Start()
-- if Name == UnitName("player") then
-- SendChatMessage(L.DBM_EOS_PLAYER, "YELL")
-- end
-- end
-- end
function mod:OnCombatEnd()
if self.Options.RangeFrame then
@@ -221,14 +223,14 @@ function mod:OnCombatEnd()
end
function mod:UNIT_DIED(args)
if args.destName == "Akil'zon" and self.vb.phase == 9 then
self.vb.phase = 10
elseif args.destName == "Nalorakk" and self.vb.phase == 9 then
self.vb.phase = 10
elseif args.destName == "Jan'alai" and self.vb.phase == 9 then
self.vb.phase = 10
elseif args.destName == "Halazzi" and self.vb.phase == 9 then
self.vb.phase = 10
if args.destName == "Akil'zon" then
self.vb.phase = self.vb.phase + 1
elseif args.destName == "Nalorakk" then
self.vb.phase = self.vb.phase + 1
elseif args.destName == "Jan'alai" then
self.vb.phase = self.vb.phase + 1
elseif args.destName == "Halazzi" then
self.vb.phase = self.vb.phase + 1
else
return
end
+4 -2
View File
@@ -87,13 +87,15 @@ L:SetGeneralLocalization{
L:SetWarningLocalization{
WarnSpirit = "Spirit Phase",
WarnNormal = "Normal Phase"
WarnNormal = "Normal Phase",
WarnMerge = "Normal Phase"
}
L:SetOptionLocalization{
WarnSpirit = "Show warning for Spirit phase",
WarnNormal = "Show warning for Normal phase",
ShockYellOpt = "Yell when you are affected by $spell:2136003 , $spell:2136024 or $spell:2136016",
WarnMerge = "Show warning for Merge phase",
ShockYellOpt = "Yell when you are affected by $spell:2136002 , $spell:2136023 or $spell:2136015",
}
L:SetMiscLocalization{