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")["Noth the Plaguebringer"]
6 local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
7  
8 ----------------------------
9 -- Localization --
10 ----------------------------
11  
12 L:RegisterTranslations("enUS", function() return {
13 cmd = "Noth",
14  
15 blink_cmd = "blink",
16 blink_name = "Blink Alert",
17 blink_desc = "Warn for blink",
18  
19 teleport_cmd = "teleport",
20 teleport_name = "Teleport Alert",
21 teleport_desc = "Warn for teleport",
22  
23 curse_cmd = "curse",
24 curse_name = "Curse Alert",
25 curse_desc = "Warn for curse",
26  
27 wave_cmd = "wave",
28 wave_name = "Wave Alert",
29 wave_desc = "Warn for waves",
30  
31 starttrigger1 = "Die, trespasser!",
32 starttrigger2 = "Glory to the master!",
33 starttrigger3 = "Your life is forfeit!",
34 startwarn = "Noth the Plaguebringer engaged! 90 seconds till teleport",
35  
36 addtrigger = "Rise, my soldiers! Rise and fight once more!",
37  
38 blinktrigger = "Noth the Plaguebringer gains Blink.",
39 blinkwarn = "Blink!",
40 blinkwarn2 = "Blink in ~5 seconds!",
41 blinkbar = "Blink",
42  
43 teleportwarn = "Teleport! He's on the balcony!",
44 teleportwarn2 = "Teleport in 10 seconds!",
45  
46 teleportbar = "Teleport!",
47 backbar = "Back in room!",
48  
49 backwarn = "He's back in the room for %d seconds!",
50 backwarn2 = "10 seconds until he's back in the room!",
51  
52 cursetrigger = "afflicted by Curse of the Plaguebringer",
53 cursewarn = "Curse! next in ~55 seconds",
54 curse10secwarn = "Curse in ~10 seconds",
55  
56 cursebar = "Next Curse",
57  
58 wave1bar = "Wave 1",
59 wave2bar = "Wave 2",
60 wave2_message = "Wave 2 in 10sec",
61 } end )
62  
63 L:RegisterTranslations("deDE", function() return {
64 blink_name = "Blinzeln",
65 blink_desc = "Warnung, wenn Noth Blinzeln wirkt.",
66  
67 teleport_name = "Teleport",
68 teleport_desc = "Warnung vor Teleport.",
69  
70 curse_name = "Fluch",
71 curse_desc = "Warnung, wenn Noth Fluch des Seuchenf\195\188rsten wirkt.",
72  
73 wave_name = "Wellen",
74 wave_desc = "Warnung vor den ankommenden Gegner Wellen.",
75  
76 starttrigger1 = "Sterbt, Eindringling!",
77 starttrigger2 = "Ehre unserem Meister!",
78 starttrigger3 = "Euer Leben ist verwirkt!",
79 startwarn = "Noth der Seuchenf\195\188rst angegriffen! Teleport in 90 Sekunden!",
80  
81 addtrigger = "Erhebt euch, Soldaten! Erhebt euch und k\195\164mpft erneut!",
82  
83 blinktrigger = "Noth der Seuchenf\195\188rst bekommt 'Blinzeln'.",
84 blinkwarn = "Blinzeln!",
85 blinkwarn2 = "Blinzeln in ~5 Sekunden!",
86 blinkbar = "Blinzeln",
87  
88 teleportwarn = "Teleport! Noth auf dem Balkon!",
89 teleportwarn2 = "Teleport in 10 Sekunden!",
90  
91 teleportbar = "Teleport",
92 backbar = "R\195\188ckteleport",
93  
94 backwarn = "Noth zur\195\188ck im Raum f\195\188r %d Sekunden.",
95 backwarn2 = "R\195\188ckteleport in 10 Sekunden!",
96  
97 cursetrigger = "von Fluch des Seuchenf\195\188rsten betroffen",
98 cursewarn = "Fluch! N\195\164chster in ~55 Sekunden",
99 curse10secwarn = "Fluch in ~10 Sekunden",
100  
101 cursebar = "N\195\164chster Fluch",
102  
103 wave1bar = "Welle 1",
104 wave2bar = "Welle 2",
105 } end )
106  
107  
108 L:RegisterTranslations("koKR", function() return {
109  
110 blink_name = "점멸 경고",
111 blink_desc = "점멸에 대한 경고",
112  
113 teleport_name = "순간이동 경고",
114 teleport_desc = "순간이동에 대한 경고",
115  
116 curse_name = "저주 경고",
117 curse_desc = "저주에 대한 경고",
118  
119 wave_name = "웨이브 알림",
120 wave_desc = "웨이브에 대한 알림",
121  
122 starttrigger1 = "죽어라, 침입자들아!",
123 starttrigger2 = "주인님께 영광을!",
124 starttrigger3 = "너희 생명은 끝이다!",
125 startwarn = "역병술사 노스와 전투 시작! 90초후 순간이동",
126  
127 addtrigger = "일어나라,병사들이여! 다시 일어나 싸워라!",
128  
129 blinktrigger = "역병술사 노스|1이;가; 점멸 효과를 얻었습니다.",
130 blinkwarn = "점멸! 공격 금지!",
131 blinkwarn2 = "점멸 약 5초후!",
132 blinkbar = "점멸",
133  
134 teleportwarn = "순간이동! 발코니에 위치!",
135 teleportwarn2 = "순간이동 10초후!",
136  
137 teleportbar = "순간이동!",
138 backbar = "방으로 복귀!",
139  
140 backwarn = "방으로 복귀! %d 초간 최대한 공격!!",
141 backwarn2 = "10초후 방으로 복귀!",
142  
143 cursetrigger = "(.+)|1이;가; 역병술사의 저주에 걸렸습니다.",
144 cursewarn = "저주! 다음 저주 약 55초후",
145 curse10secwarn = "저주 약 10초후",
146  
147 cursebar = "다음 저주",
148  
149 wave1bar = "웨이브 1",
150 wave2bar = "웨이브 2",
151 wave2_message = "10초 내 웨이브 2",
152 } end )
153  
154 L:RegisterTranslations("zhCN", function() return {
155 blink_name = "闪现术警报",
156 blink_desc = "闪现术警报",
157  
158 teleport_name = "传送警报",
159 teleport_desc = "传送警报",
160  
161 curse_name = "诅咒警报",
162 curse_desc = "诅咒警报",
163  
164 wave_name = "小骷髅警报",
165 wave_desc = "警报数波小骷髅",
166  
167 starttrigger1 = "死吧,入侵者!",
168 starttrigger2 = "荣耀归于我主!",
169 starttrigger3 = "我要没收你的生命!",
170 startwarn = "瘟疫使者诺斯已激活 - 90秒后传送",
171  
172 addtrigger = "起来吧,我的战士们!起来,再为主人尽忠一次!",
173  
174 blinktrigger = "瘟疫使者诺斯获得了闪现术的效果。",
175 blinkwarn = "闪现术!停止攻击!",
176 blinkwarn2 = "5秒后发动闪现术!",
177 blinkbar = "闪现术",
178  
179 teleportwarn = "传送发动!",
180 teleportwarn2 = "10秒后发动传送!",
181  
182 teleportbar = "传送!",
183 backbar = "回到房间!",
184  
185 backwarn = "诺斯回到房间 - %d后再次传送",
186 backwarn2 = "10秒后诺斯回到房间!",
187  
188 cursetrigger = "受到了瘟疫使者的诅咒效果的影响",
189 cursewarn = "诅咒 - 55秒后再次发动",
190 curse10secwarn = "10秒后发动诅咒!",
191  
192 cursebar = "下一次诅咒",
193  
194 wave1bar = "第一波",
195 wave2bar = "第二波",
196 wave2_message = "10秒后第二波",
197 } end )
198  
199 L:RegisterTranslations("zhTW", function() return {
200 --Noth the Plaguebringer 瘟疫者諾斯
201 blink_name = "閃現術警報",
202 blink_desc = "閃現術警報",
203  
204 teleport_name = "傳送警報",
205 teleport_desc = "傳送警報",
206  
207 curse_name = "詛咒警報",
208 curse_desc = "詛咒警報",
209  
210 wave_name = "小骷髏警報",
211 wave_desc = "警報數波小骷髏",
212  
213 starttrigger1 = "死吧,入侵者!",
214 starttrigger2 = "榮耀歸於我主!",
215 starttrigger3 = "我要沒收你的生命!",
216 startwarn = "瘟疫者諾斯已進入戰動 - 90 秒後傳送",
217  
218 addtrigger = "起來吧,我的戰士們!起來,再為主人盡忠一次!",
219  
220 blinktrigger = "瘟疫者諾斯獲得了閃現的效果。",
221 blinkwarn = "閃現術!停止攻擊!",
222 blinkwarn2 = "5 秒後發動閃現術!",
223 blinkbar = "閃現術",
224  
225 teleportwarn = "傳送發動!",
226 teleportwarn2 = "10 秒後發動傳送!",
227  
228 teleportbar = "傳送!",
229 backbar = "回到房間!",
230  
231 backwarn = "諾斯回到房間 - %d後再次傳送",
232 backwarn2 = "10 秒後諾斯回到房間!",
233  
234 cursetrigger = "瘟疫者詛咒",
235 cursewarn = "詛咒 - 55秒後再次發動",
236 curse10secwarn = "10 秒後發動詛咒!",
237  
238 cursebar = "下一次詛咒",
239  
240 wave1bar = "第一波",
241 wave2bar = "第二波",
242 wave2_message = "10 秒後第二波",
243 } end )
244  
245 L:RegisterTranslations("frFR", function() return {
246 starttrigger1 = "Mourez, intrus !",
247 starttrigger2 = "Gloire au ma\195\174tre !",
248 starttrigger3 = "Vos vies ne valent plus rien !",
249  
250 addtrigger = "Rise, my soldiers! Rise and fight once more!", -- TO TRANSLATE need /chatlog
251  
252 blinktrigger = "Noth le Porte%-peste gagne Transfert.",
253  
254 cursetrigger = "les effets de Mal\195\169diction de Porte%-peste.",
255 } end )
256  
257 ----------------------------------
258 -- Module Declaration --
259 ----------------------------------
260  
261 BigWigsNoth = BigWigs:NewModule(boss)
262 BigWigsNoth.zonename = AceLibrary("Babble-Zone-2.2")["Naxxramas"]
263 BigWigsNoth.enabletrigger = boss
264 BigWigsNoth.toggleoptions = {"blink", "teleport", "curse", "wave", "bosskill"}
265 BigWigsNoth.revision = tonumber(string.sub("$Revision: 15520 $", 12, -3))
266  
267 ------------------------------
268 -- Initialization --
269 ------------------------------
270  
271 function BigWigsNoth:OnEnable()
272 self.timeroom = 90
273 self.timebalcony = 70
274 self.cursetime = 55
275 self.wave1time = 10
276 self.wave2time = 41
277 self.prior = nil
278  
279 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
280 self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
281 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
282  
283 self:RegisterEvent("BigWigs_RecvSync")
284 self:TriggerEvent("BigWigs_ThrottleSync", "NothBlink", 5)
285 self:TriggerEvent("BigWigs_ThrottleSync", "NothCurse", 5)
286  
287 self:RegisterEvent("BigWigs_Message")
288 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "Curse")
289 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "Curse")
290 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "Curse")
291 end
292  
293  
294 function BigWigsNoth:Curse( msg )
295 if string.find(msg, L["cursetrigger"]) and not self.prior then
296 self:TriggerEvent("BigWigs_SendSync", "NothCurse")
297 end
298 end
299  
300 function BigWigsNoth:CHAT_MSG_MONSTER_YELL( msg )
301 if msg == L["starttrigger1"] or msg == L["starttrigger2"] or msg == L["starttrigger3"] then
302 self.timeroom = 90
303 self.timebalcony = 70
304  
305 if self.db.profile.teleport then
306 self:TriggerEvent("BigWigs_Message", L["startwarn"], "Important")
307 self:ScheduleEvent("BigWigs_Message", self.timeroom-10, L["teleportwarn2"], "Urgent")
308 self:TriggerEvent("BigWigs_StartBar", self, L["teleportbar"], self.timeroom, "Interface\\Icons\\Spell_Magic_LesserInvisibilty")
309 end
310 self:ScheduleEvent("bwnothtobalcony", self.teleportToBalcony, self.timeroom, self)
311 end
312 end
313  
314 function BigWigsNoth:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS( msg )
315 if msg == L["blinktrigger"] then
316 self:TriggerEvent("BigWigs_SendSync", "NothBlink")
317 end
318 end
319  
320 function BigWigsNoth:BigWigs_RecvSync( sync )
321 if sync == "NothCurse" then
322 if self.db.profile.curse then
323 self:TriggerEvent("BigWigs_Message", L["cursewarn"], "Important", nil, "Alarm")
324 self:ScheduleEvent("bwnothcurse", "BigWigs_Message", self.cursetime-10, L["curse10secwarn"], "Urgent")
325 self:TriggerEvent("BigWigs_StartBar", self, L["cursebar"], self.cursetime, "Interface\\Icons\\Spell_Shadow_AnimateDead")
326 end
327 self.prior = true
328 elseif sync == "NothBlink" then
329 if self.db.profile.blink then
330 self:TriggerEvent("BigWigs_Message", L["blinkwarn"], "Important")
331 self:ScheduleEvent("bwnothblink", "BigWigs_Message", 25, L["blinkwarn2"], "Attention")
332 self:TriggerEvent("BigWigs_StartBar", self, L["blinkbar"], 30, "Interface\\Icons\\Spell_Arcane_Blink")
333 end
334 end
335 end
336  
337 function BigWigsNoth:BigWigs_Message(text)
338 if text == L["curse10secwarn"] then self.prior = nil end
339 end
340  
341 function BigWigsNoth:teleportToBalcony()
342 if self.timeroom == 90 then
343 self.timeroom = 110
344 elseif self.timeroom == 110 then
345 self.timeroom = 180
346 end
347  
348 self:CancelScheduledEvent("bwnothblink")
349 self:CancelScheduledEvent("bwnothcurse")
350 self:TriggerEvent("BigWigs_StopBar", self, L["blinkbar"])
351 self:TriggerEvent("BigWigs_StopBar", self, L["cursebar"])
352  
353 if self.db.profile.teleport then
354 self:TriggerEvent("BigWigs_Message", L["teleportwarn"], "Important")
355 self:TriggerEvent("BigWigs_StartBar", self, L["backbar"], self.timebalcony, "Interface\\Icons\\Spell_Magic_LesserInvisibilty")
356 self:ScheduleEvent("bwnothback", "BigWigs_Message", self.timebalcony - 10, L["backwarn2"], "Urgent")
357 end
358 if self.db.profile.wave then
359 self:TriggerEvent("BigWigs_StartBar", self, L["wave1bar"], self.wave1time, "Interface\\Icons\\Spell_ChargePositive" )
360 self:TriggerEvent("BigWigs_StartBar", self, L["wave2bar"], self.wave2time, "Interface\\Icons\\Spell_ChargePositive" )
361 self:ScheduleEvent("bwnothwave2inc", "BigWigs_Message", self.wave2time - 10, L["wave2_message"], "Urgent")
362 end
363 self:ScheduleEvent("bwnothtoroom", self.teleportToRoom, self.timebalcony, self)
364 self.wave2time = self.wave2time + 15
365 end
366  
367 function BigWigsNoth:teleportToRoom()
368 if self.timebalcony == 70 then
369 self.timebalcony = 95
370 elseif self.timebalcony == 95 then
371 self.timebalcony = 120
372 end
373  
374 if self.db.profile.teleport then
375 self:TriggerEvent("BigWigs_Message", string.format(L["backwarn"], self.timeroom), "Important")
376 self:TriggerEvent("BigWigs_StartBar", self, L["teleportbar"], self.timeroom, "Interface\\Icons\\Spell_Magic_LesserInvisibilty")
377 self:ScheduleEvent("bwnothteleport", "BigWigs_Message", self.timeroom - 10, L["teleportwarn2"], "Urgent")
378 end
379 self.prior = nil
380 self:ScheduleEvent("bwnothtobalcony", self.teleportToBalcony, self.timeroom, self)
381 end
382