Skip to content

Commit f5767e4

Browse files
committed
Throne of Thunder Update:
- Most alerts should now have voice pack support - More timers have default color by type assignments - Icon options should how honor the global disable for icons (if used) - Icon options should now show (within the GUI) which icons are used by that option - Many variables are now recoverable on midfight disconnect - Pruned some unneeded options (like range checks) or redundant alerts - Some spellids swapped to ones that have better description or icon (if available) - Fixed some lua errors that would occur on lei shen - Fixed a bug on Primordius where if you have multiple big oozes up. instead of using an unused icon it might move an existing icon to a different big ooze. - Council of elders mod will now sort boss mod options by council members.
1 parent 57a1207 commit f5767e4

File tree

14 files changed

+664
-724
lines changed

14 files changed

+664
-724
lines changed

DBM-Raids-MoP/ThroneofThunder/CouncilofElders.lua

Lines changed: 104 additions & 93 deletions
Large diffs are not rendered by default.

DBM-Raids-MoP/ThroneofThunder/DarkAnimus.lua

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ local warnAnimaRing = mod:NewTargetNoFilterAnnounce(136954, 3, nil, "Tank")
3030
local warnAnimaFont = mod:NewTargetAnnounce(138691, 3)
3131
local warnEmpowerGolem = mod:NewTargetNoFilterAnnounce(138780, 3)
3232

33-
local specWarnCrimsonWakeYou = mod:NewSpecialWarningRun(138480, nil, nil, nil, 4)--Kiter
34-
local specWarnCrimsonWake = mod:NewSpecialWarningMove(138485)--Standing in stuff left behind by kiter
35-
local yellCrimsonWake = mod:NewYell(138480)
36-
local specWarnMatterSwap = mod:NewSpecialWarningYou(138609)
37-
local specWarnExplosiveSlam = mod:NewSpecialWarningStack(138569, nil, 4)--Assumed value drycode, won't know until cd is observed
38-
local specWarnExplosiveSlamOther = mod:NewSpecialWarningTarget(138569, "Tank")--Not black and white, so not using Taunt type warning
33+
local specWarnCrimsonWakeYou = mod:NewSpecialWarningRun(138480, nil, nil, nil, 4, 2)--Kiter
34+
local specWarnCrimsonWake = mod:NewSpecialWarningGTFO(138485, nil, nil, nil, 1, 8)--Standing in stuff left behind by kiter
35+
local yellCrimsonWake = mod:NewShortYell(138480)
36+
local specWarnMatterSwap = mod:NewSpecialWarningYou(138609, nil, nil, nil, 1, 5)
37+
local specWarnExplosiveSlam = mod:NewSpecialWarningStack(138569, nil, 4, nil, nil, 1, 6)--Assumed value drycode, won't know until cd is observed
38+
local specWarnExplosiveSlamOther = mod:NewSpecialWarningTarget(138569, "Tank", nil, nil, 1, 2)--Not black and white, so not using Taunt type warning
3939
--Boss
40-
local specWarnAnimaRing = mod:NewSpecialWarningYou(136954)
41-
local specWarnAnimaRingOther = mod:NewSpecialWarningTarget(136954, false)
40+
local specWarnAnimaRing = mod:NewSpecialWarningYou(136954, nil, nil, nil, 1, 2)
41+
local specWarnAnimaRingOther = mod:NewSpecialWarningTarget(136954, false, nil, nil, 1, 2)
4242
local yellAnimaRing = mod:NewYell(136954)
43-
local specWarnAnimaFont = mod:NewSpecialWarningYou(138691)
44-
local specWarnInterruptingJolt = mod:NewSpecialWarningCount(138763, nil, nil, nil, 2)
43+
local specWarnAnimaFont = mod:NewSpecialWarningYou(138691, nil, nil, nil, 1, 17)
44+
local specWarnInterruptingJolt = mod:NewSpecialWarningCast(138763, "SpellCaster", nil, nil, 2, 2)
4545

4646
local timerMatterSwap = mod:NewTargetTimer(12, 138609)--If not dispelled, it ends after 12 seconds regardless
4747
local timerExplosiveSlam = mod:NewTargetTimer(25, 138569, nil, "Tank|Healer")
@@ -57,8 +57,8 @@ local timerEmpowerGolemCD = mod:NewCDTimer(15.7, 138780)
5757
local berserkTimer = mod:NewBerserkTimer(600)
5858

5959
local crimsonWake = DBM:GetSpellName(138485)--Debuff ID I believe, not cast one. Same spell name though
60-
local siphon = 0
61-
local jolt = 0
60+
mod.vb.siphon = 0
61+
mod.vb.jolt = 0
6262

6363
mod:AddBoolOption("SetIconOnFont", true)
6464

@@ -70,21 +70,24 @@ local function PowerDelay()
7070
end
7171

7272
function mod:AnimaRingTarget(targetname)
73-
warnAnimaRing:Show(targetname)
7473
if targetname == UnitName("player") then
7574
specWarnAnimaRing:Show()
75+
specWarnAnimaRing:Play("watchorb")
7676
yellAnimaRing:Yell()
77-
else
77+
elseif self.Options.SpecWarn136954target then
7878
specWarnAnimaRingOther:Show(targetname)
79+
specWarnAnimaRingOther:Play("watchorb")
80+
else
81+
warnAnimaRing:Show(targetname)
7982
end
8083
end
8184

8285
function mod:OnCombatStart(delay)
83-
siphon = 0
84-
jolt = 0
86+
self.vb.siphon = 0
87+
self.vb.jolt = 0
8588
berserkTimer:Start(-delay)
8689
self:RegisterShortTermEvents(
87-
"INSTANCE_ENCOUNTER_ENGAGE_UNIT"--We register here to prevent detecting first heads on pull before variables reset from first engage fire. We'll catch them on delayed engages fired couple seconds later
90+
"INSTANCE_ENCOUNTER_ENGAGE_UNIT"
8891
)
8992
end
9093

@@ -98,26 +101,27 @@ function mod:SPELL_CAST_START(args)
98101
self:BossTargetScanner(69427, "AnimaRingTarget", 0.02, 12)
99102
timerAnimaRingCD:Start()
100103
elseif args:IsSpellID(138763, 139867, 139869) then--Normal version is 2.2 sec cast. Heroic is 1.4 second cast. LFR is 3.8 sec cast (thus why it has different spellid)
101-
jolt = jolt + 1
102-
specWarnInterruptingJolt:Show(jolt)
104+
self.vb.jolt = self.vb.jolt + 1
105+
specWarnInterruptingJolt:Show()
106+
specWarnInterruptingJolt:Play("stopcast")
103107
if self:IsDifficulty("lfr25") then
104108
timerInterruptingJolt:Start(3.8)
105109
else
106110
timerInterruptingJolt:Start()
107111
end
108112
if self:IsHeroic() then
109-
timerInterruptingJoltCD:Start(nil, jolt+1)
113+
timerInterruptingJoltCD:Start(nil, self.vb.jolt+1)
110114
else
111-
timerInterruptingJoltCD:Start(23, jolt+1)
115+
timerInterruptingJoltCD:Start(23, self.vb.jolt+1)
112116
end
113117
end
114118
end
115119

116120
function mod:SPELL_CAST_SUCCESS(args)
117121
local spellId = args.spellId
118122
if spellId == 138644 and self:IsHeroic() then--Only start on heroic, on normal it's 6 second cd, not worth using timer there
119-
siphon = siphon + 1
120-
timerSiphonAnimaCD:Start(nil, siphon+1)
123+
self.vb.siphon = self.vb.siphon + 1
124+
timerSiphonAnimaCD:Start(nil, self.vb.siphon+1)
121125
self:Schedule(2, PowerDelay)
122126
end
123127
end
@@ -133,10 +137,12 @@ function mod:SPELL_AURA_APPLIED(args)
133137
if args:IsPlayer() then
134138
if amount >= 4 then
135139
specWarnExplosiveSlam:Show(amount)
140+
specWarnExplosiveSlam:Play("stackhigh")
136141
end
137142
else
138143
if amount >= 4 and not DBM:UnitDebuff("player", args.spellName) and not UnitIsDeadOrGhost("player") then
139144
specWarnExplosiveSlamOther:Show(args.destName)
145+
specWarnExplosiveSlamOther:Play("changemt")
140146
end
141147
end
142148
end
@@ -145,6 +151,7 @@ function mod:SPELL_AURA_APPLIED(args)
145151
timerMatterSwap:Start(args.destName)
146152
if args:IsPlayer() then
147153
specWarnMatterSwap:Show()
154+
specWarnMatterSwap:Play("teleyou")
148155
end
149156
elseif spellId == 138780 then
150157
warnEmpowerGolem:Show(args.destName)
@@ -153,10 +160,12 @@ function mod:SPELL_AURA_APPLIED(args)
153160
warnActivation:Show()
154161
timerAnimusActivation:Start()
155162
elseif spellId == 138691 then
156-
warnAnimaFont:Show(args.destName)
157163
timerAnimaFontCD:Start()
158164
if args:IsPlayer() then
159165
specWarnAnimaFont:Show()
166+
specWarnAnimaFont:Play("debuffyou")
167+
else
168+
warnAnimaFont:Show(args.destName)
160169
end
161170
if self.Options.SetIconOnFont then
162171
self:SetIcon(args.destName, 1)--star
@@ -178,9 +187,10 @@ end
178187

179188
function mod:SPELL_DAMAGE(sourceGUID, _, _, _, destGUID, _, _, _, spellId, spellName)
180189
if spellId == 138485 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then
181-
specWarnCrimsonWake:Show()
190+
specWarnCrimsonWake:Show(spellName)
191+
specWarnCrimsonWake:Play("watchfeet")
182192
elseif spellId == 138618 then
183-
if sourceGUID == destGUID then return end--Filter first event then grab both targets from second event, as seen from log example above
193+
if sourceGUID == destGUID then return end--Filter first event then grab both targets from second event
184194
warnMatterSwapped:Show(spellName, DBM:GetFullPlayerNameByGUID(sourceGUID), DBM:GetFullPlayerNameByGUID(destGUID))
185195
end
186196
end
@@ -191,6 +201,8 @@ function mod:RAID_BOSS_WHISPER(msg, npc)
191201
if npc == crimsonWake then--In case target scanning fails, personal warnings still always go off. Target scanning is just so everyone else in raid knows who it's on (since only target sees this emote)
192202
if self:AntiSpam(3, 1) then--This actually doesn't spam, but we ues same antispam here so that the MOVE warning doesn't fire at same time unless you fail to move for 2 seconds
193203
specWarnCrimsonWakeYou:Show()
204+
specWarnCrimsonWakeYou:Play("justrun")
205+
specWarnCrimsonWakeYou:ScheduleVoice(1.5, "keepmove")
194206
end
195207
if not self:IsDifficulty("lfr25") then
196208
yellCrimsonWake:Yell()

DBM-Raids-MoP/ThroneofThunder/Durumu.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ local warnLifeDrain = mod:NewTargetNoFilterAnnounce(133795, 3)--Some times n
3434
local warnDarkParasite = mod:NewTargetNoFilterAnnounce(133597, 3, nil, "Healer")--Heroic
3535
local warnIceWall = mod:NewSpellAnnounce(134587, 3, 111231)
3636

37-
local specWarnSeriousWound = mod:NewSpecialWarningStack(133767, nil, 5, nil, nil, 1, 2)--This we will use debuff on though.
37+
local specWarnSeriousWound = mod:NewSpecialWarningStack(133767, nil, 5, nil, nil, 1, 6)--This we will use debuff on though.
3838
local specWarnSeriousWoundOther = mod:NewSpecialWarningTaunt(133767, nil, nil, nil, 1, 2)
3939
local specWarnForceOfWill = mod:NewSpecialWarningDodge(136413, nil, nil, nil, 3, 2)
4040
local yellForceOfWill = mod:NewYell(136413)

0 commit comments

Comments
 (0)