vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 ------------------------------
2 -- Are you local? --
3 ------------------------------
4  
5 local boss = AceLibrary("Babble-Boss-2.2")["Thaddius"]
6 local feugen = AceLibrary("Babble-Boss-2.2")["Feugen"]
7 local stalagg = AceLibrary("Babble-Boss-2.2")["Stalagg"]
8 local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
9  
10 ----------------------------
11 -- Localization --
12 ----------------------------
13  
14 L:RegisterTranslations("enUS", function() return {
15 cmd = "Thaddius",
16  
17 enrage_cmd = "enrage",
18 enrage_name = "Enrage Alert",
19 enrage_desc = "Warn for Enrage",
20  
21 phase_cmd = "phase",
22 phase_name = "Phase Alerts",
23 phase_desc = "Warn for Phase transitions",
24  
25 polarity_cmd = "polarity",
26 polarity_name = "Polarity Shift Alert",
27 polarity_desc = "Warn for polarity shifts",
28  
29 power_cmd = "power",
30 power_name = "Power Surge Alert",
31 power_desc = "Warn for Stalagg's power surge",
32  
33 charge_cmd = "charge",
34 charge_name = "Charge Alert",
35 charge_desc = "Warn about Positive/Negative charge for yourself only.",
36  
37 throw_cmd = "throw",
38 throw_name = "Throw Alerts",
39 throw_desc = "Warn about tank platform swaps.",
40  
41 enragetrigger = "%s goes into a berserker rage!",
42 starttrigger = "Stalagg crush you!",
43 starttrigger1 = "Feed you to master!",
44 starttrigger2 = "Eat... your... bones...",
45 starttrigger3 = "Break... you!!",
46 starttrigger4 = "Kill...",
47  
48 adddeath = "%s dies.",
49 teslaoverload = "%s overloads!",
50  
51 pstrigger = "Now you feel pain...",
52 trigger1 = "Thaddius begins to cast Polarity Shift",
53 chargetrigger = "You are afflicted by (%w+) Charge.",
54 positivetype = "Interface\\Icons\\Spell_ChargePositive",
55 negativetype = "Interface\\Icons\\Spell_ChargeNegative",
56 stalaggtrigger = "Stalagg gains Power Surge.",
57  
58 you = "You",
59 are = "are",
60  
61 enragewarn = "Enrage!",
62 startwarn = "Thaddius Phase 1",
63 startwarn2 = "Thaddius Phase 2, Enrage in 5 minutes!",
64 addsdownwarn = "Thaddius incoming in 10-20sec!",
65 thaddiusincoming = "Thaddius incoming in 3 sec!",
66 pswarn1 = "Thaddius begins to cast Polarity Shift!",
67 pswarn2 = "30 seconds to Polarity Shift!",
68 pswarn3 = "3 seconds to Polarity Shift!",
69 poswarn = "You changed to a Positive Charge!",
70 negwarn = "You changed to a Negative Charge!",
71 nochange = "Your debuff did not change!",
72 polaritytickbar = "Polarity tick",
73 enragebartext = "Enrage",
74 warn1 = "Enrage in 3 minutes",
75 warn2 = "Enrage in 90 seconds",
76 warn3 = "Enrage in 60 seconds",
77 warn4 = "Enrage in 30 seconds",
78 warn5 = "Enrage in 10 seconds",
79 stalaggwarn = "Power Surge on Stalagg!",
80 powersurgebar = "Power Surge",
81  
82 bar1text = "Polarity Shift",
83  
84 throwbar = "Throw",
85 throwwarn = "Throw in ~5 seconds!",
86 } end )
87  
88 L:RegisterTranslations("koKR", function() return {
89  
90 enrage_name = "격노 경고",
91 enrage_desc = "격노에 대한 경고",
92  
93 phase_name = "단계 경고",
94 phase_desc = "단계 변경에 대한 경고",
95  
96 polarity_name = "극성 변환 경고",
97 polarity_desc = "극성 변환에 대한 경고",
98  
99 power_name = "마력의 쇄도 경고",
100 power_desc = "스탈라그의 마력의 쇄도에 대한 경고",
101  
102 charge_name = "대전 경고",
103 charge_desc = "당신에게 걸린 전하의 극성 종류에 대한 경고",
104  
105 throw_name = "던지기 경고",
106 throw_desc = "탱커 위치 변경에 대한 경고",
107  
108 enragetrigger = "%s|1이;가; 광폭해집니다!",
109 starttrigger = "스탈라그, 박살낸다!",
110 starttrigger1 = "너 주인님께 바칠꺼야!",
111 starttrigger2 = "잡아... 먹어주마...",
112 starttrigger3 = "박살을 내주겠다!", -- CHECK
113 starttrigger4 = "죽여주마...",
114  
115 adddeath = "%s|1이;가; 죽습니다.",
116 teslaoverload = "%s|1이;가; 과부하 상태가 됩니다.",
117  
118 pstrigger = "자, 고통을 느껴봐라...", -- CHECK
119 trigger1 = "타디우스|1이;가; 극성 변환|1을;를; 시전합니다.",
120 chargetrigger = "(%w+)전하에 걸렸습니다.",
121 positivetype = "Interface\\Icons\\Spell_ChargePositive",
122 negativetype = "Interface\\Icons\\Spell_ChargeNegative",
123 stalaggtrigger = "스탈라그|1이;가; 마력의 쇄도 효과를 얻었습니다.",
124  
125 you = "",
126 are = "",
127  
128 enragewarn = "격노!",
129 startwarn = "타디우스 1 단계",
130 startwarn2 = "타디우스 2 단계, 5분 후 격노!",
131 addsdownwarn = "2단계가 10~20초후에 시작됩니다!",
132 thaddiusincoming = "2단계가 3초후 시작됩니다!",
133 pswarn1 = "타디우스가 극성 변환을 시전합니다!",
134 pswarn2 = "30초후 극성 변환!",
135 pswarn3 = "3초후 극성 변환!",
136 poswarn = "양전하로 대전!! 반대로 이동!",
137 negwarn = "음전하로 대전!! 반대로 이동!",
138 nochange = "극성이 변하지 않았습니다! 제자리 대기!",
139 polaritytickbar = "극성 틱",
140 enragebartext = "격노",
141 warn1 = "3분후 격노",
142 warn2 = "90초후 격노",
143 warn3 = "60초후 격노",
144 warn4 = "30초후 격노",
145 warn5 = "10초후 격노",
146 stalaggwarn = "스탈라그 힘의 쇄도 발동, 탱커 폭힐!",
147 powersurgebar = "마력의 쇄도",
148  
149 bar1text = "극성 변환",
150  
151 throwbar = "던지기",
152 throwwarn = "약 5초 후 던지기!",
153 } end )
154  
155 L:RegisterTranslations("deDE", function() return {
156 enrage_name = "Wutanfall",
157 enrage_desc = "Warnung, wenn Thaddius w\195\188tend wird.",
158  
159 phase_name = "Phasen",
160 phase_desc = "Anzeige der Phasenwechsel.",
161  
162 polarity_name = "Polarit\195\164tsver\195\164nderung Warnung",
163 polarity_desc = "Warnung f\195\188r Polarit\195\164tsver\195\164nderung",
164  
165 power_name = "Energieschub Warnung",
166 power_desc = "Warnung f\195\188r Stalagg's Energieschub",
167  
168 charge_name = "Ladungs-Warnung",
169 charge_desc = "Warnung bei positiver/negativer Aufladung bei euch selbst.",
170  
171 enragetrigger = "verf\195\164llt in Berserkerwut",
172 starttrigger = "Stalagg zerquetschen!",
173 starttrigger1 = "Verf\195\188ttere euch an Meister!",
174 starttrigger2 = "Eure... Knochen... zermalmen...",
175 starttrigger3 = "Euch... zerquetschen!",
176 starttrigger4 = "T\195\182ten...",
177  
178 adddeath = "stirbt.",
179 teslaoverload = "\195\188berl\195\164dt!",
180  
181 pstrigger = "Jetzt sp\195\188rt ihr den Schmerz",
182 trigger1 = "Thaddius beginnt Polarit\195\164tsver\195\164nderung zu wirken.",
183 chargetrigger = "^([^%s]+) ([^%s]+) von ([^%s]+) Ladung betroffen",
184 stalaggtrigger = "Stalagg bekommt 'Energieschub'.",
185  
186 you = "Ihr",
187 are = "seid",
188  
189 enragewarn = "Wutanfall!",
190 startwarn = "Thaddius Phase 1",
191 startwarn2 = "Thaddius Phase 2, Wutanfall in 5 Minuten!",
192 addsdownwarn = "Thaddius kommt frei in 10-20s!",
193 thaddiusincoming = "Thaddius kommt frei in 3s!",
194 pswarn1 = "Thaddius beginnt Polarit\195\164tsver\195\164nderung zu wirken!",
195 pswarn2 = "30 Sekunden bis Polarit\195\164tsver\195\164nderung!",
196 pswarn3 = "3 Sekunden bis Polarit\195\164tsver\195\164nderung!",
197 poswarn = "Ihr seid eine positive Ladung!",
198 negwarn = "Ihr seid eine negative Ladung!",
199 enragebartext = "Wutanfall",
200 warn1 = "Wutanfall in 3 Minuten",
201 warn2 = "Wutanfall in 90 Sekunden",
202 warn3 = "Wutanfall in 60 Sekunden",
203 warn4 = "Wutanfall in 30 Sekunden",
204 warn5 = "Wutanfall in 10 Sekunden",
205 stalaggwarn = "Energieschub, Extra Heilung auf Krieger!",
206 powersurgebar = "Energieschub",
207  
208 bar1text = "Polarit\195\164tsver\195\164nderung",
209 } end )
210  
211 L:RegisterTranslations("zhCN", function() return {
212 enrage_name = "激怒警报",
213 enrage_desc = "激怒警报",
214  
215 phase_name = "阶段警报",
216 phase_desc = "阶段转换时发出警报",
217  
218 polarity_name = "极性转换警报",
219 polarity_desc = "极性转换警报",
220  
221 power_name = "力量振荡警报",
222 power_desc = "力量振荡警报",
223  
224 charge_name = "电荷警报",
225 charge_desc = "你身上的电荷效果发生变化时发出警报",
226  
227 enragetrigger = "变得极度狂暴而愤怒!",
228 starttrigger = "斯塔拉格要碾碎你!",
229 starttrigger1 = "主人要吃了你!",
230 starttrigger2 = "咬碎……你的……骨头……",
231 starttrigger3 = "打……烂……你!",
232 starttrigger4 = "杀……",
233  
234 adddeath = "%s死亡了。",
235 teslaoverload = "%s超负荷!",
236  
237 pstrigger = "你感受到痛苦的滋味了吧……",
238 trigger1 = "塔迪乌斯开始施放极性转化。",
239 chargetrigger = "^(.+)受(.+)了(.+)电荷",
240 stalaggtrigger = "斯塔拉格获得了能量涌动的效果。",
241  
242 you = "你",
243 are = "到",
244  
245 enragewarn = "激怒!",
246 startwarn = "塔迪乌斯第一阶段",
247 startwarn2 = "塔迪乌斯第二阶段,5分钟后激怒!",
248 addsdownwarn = "10-20秒后塔迪乌斯出现!",
249 thaddiusincoming = "3秒后塔迪乌斯出现!",
250 pswarn1 = "塔迪乌斯开始施放极性转化!",
251 pswarn2 = "30秒后发动极性转化!",
252 pswarn3 = "3秒后发动极性转化!",
253 poswarn = "你是正电荷!",
254 negwarn = "你是负电荷!",
255 nochange = "你的电荷没有改变!",
256 polaritytickbar = "极性 Tick",
257 enragebartext = "激怒",
258 warn1 = "3分钟后激怒",
259 warn2 = "90秒后激怒",
260 warn3 = "60秒后激怒",
261 warn4 = "30秒后激怒",
262 warn5 = "10秒后激怒",
263 stalaggwarn = "力量振荡!加大对坦克的治疗!",
264 powersurgebar = "力量振荡",
265  
266 bar1text = "极性转化",
267 } end )
268  
269 L:RegisterTranslations("zhTW", function() return {
270 --Thaddius 泰迪斯
271 enrage_name = "狂怒警報",
272 enrage_desc = "狂怒警報",
273  
274 phase_name = "階段警報",
275 phase_desc = "階段轉換時發出警報",
276  
277 polarity_name = "極性轉換警報",
278 polarity_desc = "極性轉換警報",
279  
280 power_name = "力量澎湃警報",
281 power_desc = "力量澎湃警報",
282  
283 charge_name = "電荷警報",
284 charge_desc = "你身上的電荷效果發生變化時發出警報",
285  
286 enragetrigger = "變得極度狂暴而憤怒!",
287 starttrigger = "斯塔拉格要碾碎你!",
288 starttrigger1 = "主人要吃了你!",
289 starttrigger2 = "咬碎……你的……骨頭……",
290 starttrigger3 = "打……爛……你!",
291 starttrigger4 = "殺……",
292  
293 adddeath = "%s死亡了。",
294 teslaoverload = "%s超負荷!",
295  
296 pstrigger = "你感受到痛苦的滋味了吧……",
297 trigger1 = "泰迪斯開始施放兩極移形。",
298 chargetrigger = "^(.+)受到(.+)(.+)電荷",
299 stalaggtrigger = "斯塔拉格獲得了力量澎湃的效果。",
300  
301 you = "你",
302 are = "了",
303  
304 enragewarn = "狂怒!",
305 startwarn = "泰迪斯第一階段",
306 startwarn2 = "泰迪斯第二階段 - 5 分鍾後狂怒!",
307 addsdownwarn = "10-20秒後泰迪斯出現!",
308 thaddiusincoming = "3 秒後泰迪斯出現!",
309 pswarn1 = "泰迪斯開始施放兩極移形!",
310 pswarn2 = "30 秒後發動兩極移形!",
311 pswarn3 = "3 秒後發動兩極移形!",
312 poswarn = "你是正電荷!",
313 negwarn = "你是負電荷!",
314 nochange = "你的電荷沒有改變!",
315 polaritytickbar = "極性狀態",
316 enragebartext = "狂怒",
317 warn1 = "3 分鐘後狂怒",
318 warn2 = "90 秒後狂怒",
319 warn3 = "60 秒後狂怒",
320 warn4 = "30 秒後狂怒",
321 warn5 = "10 秒後狂怒",
322 stalaggwarn = "力量澎湃!加大對坦克的治療!",
323 powersurgebar = "力量澎湃",
324  
325 bar1text = "兩極移形",
326 } end )
327  
328 L:RegisterTranslations("frFR", function() return {
329 enragetrigger = "%s entre dans une rage d\195\169mente !",
330 starttrigger = "Stalagg \195\169craser toi !",
331  
332 starttrigger1 = "manger pour maitre !",
333 starttrigger2 = "Manger.. tes... os...", -- CHECK
334 starttrigger3 = "Casser... toi !", -- CHECK
335 starttrigger4 = "Tuer...", -- CHECK
336  
337 adddeath = "%s meurt.",
338 teslaoverload = "%s entre en surcharge !",
339  
340 pstrigger = "Maintenant toi sentir douleur...",
341 trigger1 = "Thaddius commence \195\160 lancer Changement de polarit\195\169.",
342 chargetrigger = "Vous subissez les effets de Charge (%w+).",
343 stalaggtrigger = "Stalagg gagne Vague de puissance.",
344  
345 you = "Vous",
346 are = "subissez",
347  
348 stalaggwarn = "Vague de Puissance sur Stalagg",
349 powersurgebar = "Vague de Puissance",
350 bar1text = "Changement de polarit\195\169",
351 } end )
352  
353  
354 ----------------------------------
355 -- Module Declaration --
356 ----------------------------------
357  
358 BigWigsThaddius = BigWigs:NewModule(boss)
359 BigWigsThaddius.zonename = AceLibrary("Babble-Zone-2.2")["Naxxramas"]
360 BigWigsThaddius.enabletrigger = { boss, feugen, stalagg }
361 BigWigsThaddius.toggleoptions = {"enrage", "charge", "polarity", -1, "power", "throw", "phase", "bosskill"}
362 BigWigsThaddius.revision = tonumber(string.sub("$Revision: 17540 $", 12, -3))
363  
364 ------------------------------
365 -- Initialization --
366 ------------------------------
367  
368 function BigWigsThaddius:OnEnable()
369 self.enrageStarted = nil
370 self.addsdead = 0
371 self.teslawarn = nil
372 self.stage1warn = nil
373 self.previousCharge = ""
374  
375 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
376  
377 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
378 self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
379 self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe")
380 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", "PolarityCast")
381 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF", "PolarityCast")
382 self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE")
383  
384 self:RegisterEvent("BigWigs_RecvSync")
385 self:TriggerEvent("BigWigs_ThrottleSync", "ThaddiusPolarity", 10)
386 self:TriggerEvent("BigWigs_ThrottleSync", "StalaggPower", 4)
387 end
388  
389 function BigWigsThaddius:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS( msg )
390 if msg == L["stalaggtrigger"] then
391 self:TriggerEvent("BigWigs_SendSync", "StalaggPower")
392 end
393 end
394  
395 function BigWigsThaddius:CHAT_MSG_MONSTER_YELL( msg )
396 if string.find(msg, L["pstrigger"]) then
397 self:TriggerEvent("BigWigs_SendSync", "ThaddiusPolarity")
398 elseif msg == L["starttrigger"] or msg == L["starttrigger1"] then
399 if self.db.profile.phase and not self.stage1warn then
400 self:TriggerEvent("BigWigs_Message", L["startwarn"], "Important")
401 end
402 self.stage1warn = true
403 self:Throw()
404 self:ScheduleRepeatingEvent( "bwthaddiusthrow", self.Throw, 21, self )
405 elseif string.find(msg, L["starttrigger2"]) or string.find(msg, L["starttrigger3"]) or string.find(msg, L["starttrigger4"]) then
406 if self.db.profile.phase then self:TriggerEvent("BigWigs_Message", L["startwarn2"], "Important") end
407 if self.db.profile.enrage then
408 self:TriggerEvent("BigWigs_StartBar", self, L["enragebartext"], 300, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
409 self:ScheduleEvent("bwthaddiuswarn1", "BigWigs_Message", 120, L["warn1"], "Attention")
410 self:ScheduleEvent("bwthaddiuswarn2", "BigWigs_Message", 210, L["warn2"], "Attention")
411 self:ScheduleEvent("bwthaddiuswarn3", "BigWigs_Message", 240, L["warn3"], "Urgent")
412 self:ScheduleEvent("bwthaddiuswarn4", "BigWigs_Message", 270, L["warn4"], "Important")
413 self:ScheduleEvent("bwthaddiuswarn5", "BigWigs_Message", 290, L["warn5"], "Important")
414 end
415 end
416 end
417  
418 function BigWigsThaddius:CHAT_MSG_MONSTER_EMOTE( msg )
419 if msg == L["enragetrigger"] then
420 if self.db.profile.enrage then self:TriggerEvent("BigWigs_Message", L["enragewarn"], "Important") end
421 self:TriggerEvent("BigWigs_StopBar", self, L["enragebartext"])
422 self:CancelScheduledEvent("bwthaddiuswarn1")
423 self:CancelScheduledEvent("bwthaddiuswarn2")
424 self:CancelScheduledEvent("bwthaddiuswarn3")
425 self:CancelScheduledEvent("bwthaddiuswarn4")
426 self:CancelScheduledEvent("bwthaddiuswarn5")
427 elseif msg == L["adddeath"] then
428 self.addsdead = self.addsdead + 1
429 if self.addsdead == 2 then
430 if self.db.profile.phase then self:TriggerEvent("BigWigs_Message", L["addsdownwarn"], "Attention") end
431 self:CancelScheduledEvent("bwthaddiusthrow")
432 self:CancelScheduledEvent("bwthaddiusthrowwarn")
433 end
434 elseif msg == L["teslaoverload"] and self.db.profile.phase and not self.teslawarn then
435 self.teslawarn = true
436 self:TriggerEvent("BigWigs_Message", L["thaddiusincoming"], "Important")
437 end
438 end
439  
440 function BigWigsThaddius:PolarityCast( msg )
441 if self.db.profile.polarity and string.find(msg, L["trigger1"]) then
442 self:TriggerEvent("BigWigs_Message", L["pswarn1"], "Important")
443 end
444 end
445  
446 function BigWigsThaddius:PLAYER_AURAS_CHANGED( msg )
447 local chargetype = nil
448 local iIterator = 1
449 while UnitDebuff("player", iIterator) do
450 local texture, applications = UnitDebuff("player", iIterator)
451 if texture == L["positivetype"] or texture == L["negativetype"] then
452 -- If we have a debuff with this texture that has more
453 -- than one application, it means we still have the
454 -- counter debuff, and thus nothing has changed yet.
455 -- (we got a PW:S or Renew or whatever after he casted
456 -- PS, but before we got the new debuff)
457 if applications > 1 then return end
458 chargetype = texture
459 -- Note that we do not break out of the while loop when
460 -- we found a debuff, since we still have to check for
461 -- debuffs with more than 1 application.
462 end
463 iIterator = iIterator + 1
464 end
465 if not chargetype then return end
466  
467 self:UnregisterEvent("PLAYER_AURAS_CHANGED")
468  
469 if self.db.profile.charge then
470 if self.previousCharge and self.previousCharge == chargetype then
471 self:TriggerEvent("BigWigs_Message", L["nochange"], "Urgent", true, "Alarm")
472 elseif chargetype == L["positivetype"] then
473 self:TriggerEvent("BigWigs_Message", L["poswarn"], "Positive", true, "Alarm")
474 elseif chargetype == L["negativetype"] then
475 self:TriggerEvent("BigWigs_Message", L["negwarn"], "Important", true, "Alarm")
476 end
477 self:TriggerEvent("BigWigs_StartBar", self, L["polaritytickbar"], 6, chargetype, "Important")
478 end
479 self.previousCharge = chargetype
480 end
481  
482 function BigWigsThaddius:BigWigs_RecvSync( sync )
483 if sync == "ThaddiusPolarity" and self.db.profile.polarity then
484 self:RegisterEvent("PLAYER_AURAS_CHANGED")
485 self:ScheduleEvent("BigWigs_Message", 27, L["pswarn3"], "Important")
486 self:TriggerEvent("BigWigs_StartBar", self, L["bar1text"], 30, "Interface\\Icons\\Spell_Nature_Lightning")
487 elseif sync == "StalaggPower" and self.db.profile.power then
488 self:TriggerEvent("BigWigs_Message", L["stalaggwarn"], "Important")
489 self:TriggerEvent("BigWigs_StartBar", self, L["powersurgebar"], 10, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
490 end
491 end
492  
493 function BigWigsThaddius:Throw()
494 if self.db.profile.throw then
495 self:TriggerEvent("BigWigs_StartBar", self, L["throwbar"], 20, "Interface\\Icons\\Ability_Druid_Maul")
496 self:ScheduleEvent("bwthaddiusthrowwarn", "BigWigs_Message", 15, L["throwwarn"], "Urgent")
497 end
498 end