vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 -- Are you local? --
2 ------------------------------
3  
4 local boss = AceLibrary("Babble-Boss-2.2")["Ouro"]
5 local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
6  
7 local berserkannounced
8 local started
9  
10 ----------------------------
11 -- Localization --
12 ----------------------------
13  
14 L:RegisterTranslations("enUS", function() return {
15 cmd = "Ouro",
16  
17 sweep_cmd = "sweep",
18 sweep_name = "Sweep Alert",
19 sweep_desc = "Warn for Sweeps",
20  
21 sandblast_cmd = "sandblast",
22 sandblast_name = "Sandblast Alert",
23 sandblast_desc = "Warn for Sandblasts",
24  
25 emerge_cmd = "emerge",
26 emerge_name = "Emerge Alert",
27 emerge_desc = "Warn for Emerge",
28  
29 submerge_cmd = "submerge",
30 submerge_name = "Submerge Alert",
31 submerge_desc = "Warn for Submerge",
32  
33 scarab_cmd = "scarab",
34 scarab_name = "Scarab Despawn Alert",
35 scarab_desc = "Warn for Scarab Despawn",
36  
37 berserk_cmd = "berserk",
38 berserk_name = "Berserk",
39 berserk_desc = "Warn for when Ouro goes berserk",
40  
41 sweeptrigger = "Ouro begins to cast Sweep",
42 sweepannounce = "Sweep!",
43 sweepwarn = "5 seconds until Sweep!",
44 sweepbartext = "Sweep",
45  
46 sandblasttrigger = "Ouro begins to perform Sand Blast",
47 sandblastannounce = "Incoming Sand Blast!",
48 sandblastwarn = "5 seconds until Sand Blast!",
49 sandblastbartext = "Sand Blast",
50  
51 engage_message = "Ouro engaged! Possible Submerge in 90sec!",
52 possible_submerge_bar = "Possible submerge",
53  
54 emergetrigger = "Dirt Mound casts Summon Ouro Scarabs.",
55 emergeannounce = "Ouro has emerged!",
56 emergewarn = "15 sec to possible submerge!",
57 emergewarn2 = "15 sec to Ouro sumberge!",
58 emergebartext = "Ouro submerge",
59  
60 scarabdespawn = "Scarabs despawn in 10 Seconds",
61 scarabbar = "Scarabs despawn",
62  
63 submergetrigger = "Ouro casts Summon Ouro Mounds.",
64 submergeannounce = "Ouro has submerged!",
65 submergewarn = "5 seconds until Ouro Emerges!",
66 submergebartext = "Ouro Emerge",
67  
68 berserktrigger = "%s goes into a berserker rage!",
69 berserkannounce = "Berserk - Berserk!",
70 berserksoonwarn = "Berserk Soon - Get Ready!",
71 } end )
72  
73 L:RegisterTranslations("deDE", function() return {
74 sweep_name = "Feger",
75 sweep_desc = "Warnung, wenn Ouro Feger wirkt.",
76  
77 sandblast_name = "Sandsto\195\159",
78 sandblast_desc = "Warnung, wenn Ouro Sandsto\195\159 wirkt.",
79  
80 emerge_name = "Auftauchen",
81 emerge_desc = "Warnung, wenn Ouro auftaucht.",
82  
83 submerge_name = "Untertauchen",
84 submerge_desc = "Warnung, wenn Ouro untertaucht.",
85  
86 scarab_name = "Scarab Despawn Alert", -- ?
87 scarab_desc = "Warn for Scarab Despawn", -- ?
88  
89 berserk_name = "Berserk",
90 berserk_desc = "Warn for when Ouro goes berserk",
91  
92 sweeptrigger = "Ouro begins to cast Sweep", -- ?
93 sweepannounce = "Feger!",
94 sweepwarn = "5 Sekunden bis Feger!",
95 sweepbartext = "Feger",
96  
97 sandblasttrigger = "Ouro begins to perform Sand Blast", -- ?
98 sandblastannounce = "Sandsto\195\159 in K\195\188rze!",
99 sandblastwarn = "5 Sekunden bis Sandsto\195\159!",
100 sandblastbartext = "Sandsto\195\159",
101  
102 engage_message = "Ouro engaged! Possible Submerge in 90sec!",
103 possible_submerge_bar = "Possible submerge",
104  
105 emergetrigger = "Dirt Mound casts Summon Ouro Scarabs.", -- ?
106 emergeannounce = "Ouro ist aufgetaucht!",
107 emergewarn = "15 sec to possible submerge!",
108 emergewarn2 = "15 sec to Ouro sumberge!",
109 emergebartext = "Untertauchen",
110  
111 scarabdespawn = "Scarabs verschwinden in 10 Sekunden", -- ?
112 scarabbar = "Scarabs despawn", -- ?
113  
114 submergetrigger = "Ouro casts Summon Ouro Mounds.", -- ?
115 submergeannounce = "Ouro ist aufgetaucht!",
116 submergewarn = "5 Sekunden bis Ouro auftaucht!",
117 submergebartext = "Auftauchen",
118  
119 berserktrigger = "%s goes into a berserker rage!",
120 berserkannounce = "Berserk - Berserk!",
121 berserksoonwarn = "Berserkerwut in K\195\188rze - Bereit machen!",
122 } end )
123  
124 L:RegisterTranslations("koKR", function() return {
125 sweep_name = "휩쓸기 경고",
126 sweep_desc = "휩쓸기에 대한 경고",
127  
128 sandblast_name = "모래돌풍 경고",
129 sandblast_desc = "모래돌풍에 대한 경고",
130  
131 emerge_name = "등장 경고",
132 emerge_desc = "등장에 대한 경고",
133  
134 submerge_name = "잠수 경고",
135 submerge_desc = "잠수에 대한 경고",
136  
137 scarab_name = "스카라베 소환 경고",
138 scarab_desc = "스카라베 소환에 대한 경고",
139  
140 berserk_name = "광폭화",
141 berserk_desc = "아우로 광폭화 경고",
142  
143 sweeptrigger = "아우로|1이;가; 휩쓸기|1을;를; 시전합니다.",
144 sweepannounce = "휩쓸기!",
145 sweepwarn = "5초후 휩쓸기! 대피",
146 sweepbartext = "휩쓸기",
147  
148 sandblasttrigger = "아우로|1이;가; 모래 돌풍|1을;를; 사용합니다.",
149 sandblastannounce = "모래 돌풍 경보!",
150 sandblastwarn = "5초후 모래 돌풍",
151 sandblastbartext = "모래 돌풍",
152  
153 engage_message = "아우로 전투개시! 90초후 잠수 가능!",
154 possible_submerge_bar = "잠수 가능",
155  
156 emergetrigger = "흙더미|1이;가; 아우로 스카라베 소환|1을;를; 시전합니다.",
157 emergeannounce = "아우로 등장! 벌레들 제거!",
158 emergewarn = "15초후 아우로 잠수 가능!",
159 emergewarn2 = "15초 후 아우로 잠수!",
160 emergebartext = "아우로 잠수",
161  
162 scarabdespawn = "스카라베 소환 10초전",
163 scarabbar = "스카라베 소환",
164  
165 submergetrigger = "아우로|1이;가; 아우로 흙더미 소환|1을;를; 시전합니다.",
166 submergeannounce = "아우로 잠수!",
167 submergewarn = "5초후 아우로 재등장!",
168 submergebartext = "아우로 재등장",
169  
170 berserktrigger = "%s goes into a berserker rage!",
171 berserkannounce = "Berserk - Berserk!",
172 berserksoonwarn = "광폭화 예고 - 준비하세요!",
173 } end )
174  
175 L:RegisterTranslations("zhCN", function() return {
176 sweep_name = "横扫警报",
177 sweep_desc = "横扫警报",
178  
179 sandblast_name = "沙尘爆裂警报",
180 sandblast_desc = "沙尘爆裂警报",
181  
182 emerge_name = "钻地警报",
183 emerge_desc = "钻地警报",
184  
185 submerge_name = "钻出警报",
186 submerge_desc = "钻出警报",
187  
188 scarab_name = "甲虫消失警报",
189 scarab_desc = "甲虫消失警报",
190  
191 berserk_name = "狂暴警报",
192 berserk_desc = "当奥罗变得狂暴发出警报",
193  
194 sweeptrigger = "奥罗开始施放横扫。",
195 sweepannounce = "横扫发动!",
196 sweepwarn = "5秒后发动横扫!快退!",
197 sweepbartext = "横扫",
198  
199 sandblasttrigger = "奥罗开始施展沙尘爆裂。",
200 sandblastannounce = "沙尘爆裂发动!",
201 sandblastwarn = "5秒后发动沙尘爆裂!",
202 sandblastbartext = "沙尘爆裂",
203  
204 engage_message = "奥罗激活!可能90秒后潜入地下!",
205 possible_submerge_bar = "潜入地下",
206  
207 emergetrigger = "土堆施放了召唤奥罗甲虫。",
208 emergeannounce = "奥罗钻出了地面!",
209 emergewarn = "15秒后潜入地下",
210 emergewarn2 = "15 sec to Ouro sumberge!",
211 emergebartext = "钻出地面",
212  
213 scarabdespawn = "10秒后甲虫消失", --Translate me
214 scarabbar = "甲虫消失", -- Translate Me
215  
216 submergetrigger = "奥罗施放了召唤奥罗土堆。",
217 submergeannounce = "奥罗潜入地下!杀光虫子!",
218 submergewarn = "5秒后奥罗将钻出地面!",
219 submergebartext = "潜入地下",
220  
221 berserktrigger = "%s goes into a berserker rage!",
222 berserkannounce = "Berserk - Berserk!",
223 berserksoonwarn = "即将狂暴 - 做好准备!",
224 } end )
225  
226 L:RegisterTranslations("zhTW", function() return {
227 sweep_name = "橫掃警報",
228 sweep_desc = "奧羅施放橫掃時發出警報",
229  
230 sandblast_name = "沙塵爆裂警報",
231 sandblast_desc = "奧羅施放沙塵爆裂時發出警報",
232  
233 emerge_name = "鑽地警報",
234 emerge_desc = "奧羅鑽地時發出警報",
235  
236 submerge_name = "鑽出警報",
237 submerge_desc = "奧羅鑽出時發出警報",
238  
239 scarab_name = "甲蟲消失警報",
240 scarab_desc = "甲蟲消失時發出警報",
241  
242 berserk_name = "狂暴警報",
243 berserk_desc = "當奧羅變得狂暴發出警報",
244  
245 sweeptrigger = "奧羅開始施放橫掃。",
246 sweepannounce = "橫掃發動!",
247 sweepwarn = "5 秒後發動橫掃!快退!",
248 sweepbartext = "橫掃",
249  
250 sandblasttrigger = "奧羅開始施展沙塵爆裂。",
251 sandblastannounce = "沙塵爆裂!",
252 sandblastwarn = "5 秒後發動沙塵爆裂!",
253 sandblastbartext = "沙塵爆裂",
254  
255 engage_message = "奧羅已進入戰鬥 - 90 秒後可能潛入地下!",
256 possible_submerge_bar = "潛入地下",
257  
258 emergetrigger = "土堆施放了召喚奧羅甲蟲。",
259 emergeannounce = "奧羅鑽出了地面!",
260 emergewarn = "15 秒後潛入地下",
261 emergewarn2 = "15 sec to Ouro sumberge!",
262 emergebartext = "鑽出地面",
263  
264 scarabdespawn = "10 秒後甲蟲消失", --Translate me
265 scarabbar = "甲蟲消失", -- Translate Me
266  
267 submergetrigger = "奧羅施放了召喚奧羅土堆。",
268 submergeannounce = "奧羅潛入地下!殺光蟲子!",
269 submergewarn = "5 秒後將鑽出地面!",
270 submergebartext = "潛入地下",
271  
272 berserktrigger = "%s goes into a berserker rage!",
273 berserkannounce = "Berserk - Berserk!",
274 berserksoonwarn = "即將狂暴 - 做好準備!",
275 } end )
276  
277 L:RegisterTranslations("frFR", function() return {
278 sweep_name = "Sweep Alert",
279 sweep_desc = "Warn for Sweeps",
280  
281 sandblast_name = "Sandblast Alert",
282 sandblast_desc = "Warn for Sandblasts",
283  
284 emerge_name = "Emerge Alert",
285 emerge_desc = "Warn for Emerge",
286  
287 submerge_name = "Submerge Alert",
288 submerge_desc = "Warn for Submerge",
289  
290 scarab_name = "Scarab Despawn Alert",
291 scarab_desc = "Warn for Scarab Despawn",
292  
293 berserk_name = "Berserk",
294 berserk_desc = "Warn for when Ouro goes berserk",
295  
296 sweeptrigger = "Ouro commence \195\160 lancer Balayer.",
297 sweepannounce = "balayage!",
298 sweepwarn = "balayage dans 5 sec!",
299 sweepbartext = "Sweep",
300  
301 sandblasttrigger = "Ouro commence \195\160 ex\195\169cuter Explosion de sable.",
302 sandblastannounce = "explosion de sable!",
303 sandblastwarn = "5 seconds until Sand Blast!",
304 sandblastbartext = "Sand Blast",
305  
306 engage_message = "Ouro engaged! Possible Submerge in 90sec!",
307 possible_submerge_bar = "Possible submerge",
308  
309 emergetrigger = "Tas de terre lance Invocation de Scarab\195\169es d'Ouro.",
310 emergeannounce = "Ouro apparait!",
311 emergewarn = "15 sec to possible submerge!",
312 emergewarn2 = "15 sec to Ouro sumberge!",
313 emergebartext = "Ouro submerge",
314  
315 scarabdespawn = "Depop des scarab\195\169s dans 10 sec",
316 scarabbar = "Scarabs despawn",
317  
318 submergetrigger = "Ouro lance Invocation de Monticules d'Ouro.",
319 submergeannounce = "Ouro disparait!",
320 submergewarn = "5 seconds until Ouro Emerges!",
321 submergebartext = "Ouro Emerge",
322  
323 berserktrigger = "%s goes into a berserker rage!",
324 berserkannounce = "Berserk - Berserk!",
325 berserksoonwarn = "Berserk Soon - Get Ready!",
326 } end )
327  
328 ----------------------------------
329 -- Module Declaration --
330 ----------------------------------
331  
332 BigWigsOuro = BigWigs:NewModule(boss)
333 BigWigsOuro.zonename = AceLibrary("Babble-Zone-2.2")["Ahn'Qiraj"]
334 BigWigsOuro.enabletrigger = boss
335 BigWigsOuro.toggleoptions = {"sweep", "sandblast", "scarab", -1, "emerge", "submerge", -1, "berserk", "bosskill"}
336 BigWigsOuro.revision = tonumber(string.sub("$Revision: 17592 $", 12, -3))
337  
338 ------------------------------
339 -- Initialization --
340 ------------------------------
341  
342 function BigWigsOuro:OnEnable()
343 berserkannounced = nil
344 started = nil
345  
346 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE")
347 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF")
348 self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE")
349 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
350  
351 self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe")
352 self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckForEngage")
353  
354 self:RegisterEvent("UNIT_HEALTH")
355  
356 self:RegisterEvent("BigWigs_RecvSync")
357  
358 self:TriggerEvent("BigWigs_ThrottleSync", "OuroSweep", 10)
359 self:TriggerEvent("BigWigs_ThrottleSync", "OuroSandblast", 10)
360 self:TriggerEvent("BigWigs_ThrottleSync", "OuroEmerge", 10)
361 self:TriggerEvent("BigWigs_ThrottleSync", "OuroSubmerge", 10)
362 self:TriggerEvent("BigWigs_ThrottleSync", "OuroBerserk", 10)
363 end
364  
365 function BigWigsOuro:UNIT_HEALTH( msg )
366 if UnitName(msg) == boss then
367 local health = UnitHealth(msg)
368 if health > 20 and health <= 23 and not berserkannounced then
369 if self.db.profile.berserk then
370 self:TriggerEvent("BigWigs_Message", L["berserksoonwarn"], "Important")
371 end
372 berserkannounced = true
373 elseif health > 30 and berserkannounced then
374 berserkannounced = nil
375 end
376 end
377 end
378  
379 function BigWigsOuro:BigWigs_RecvSync( sync, rest, nick )
380 if sync == self:GetEngageSync() and rest and rest == boss and not started then
381 started = true
382 if self:IsEventRegistered("PLAYER_REGEN_DISABLED") then self:UnregisterEvent("PLAYER_REGEN_DISABLED") end
383 if self.db.profile.emerge then
384 self:TriggerEvent("BigWigs_Message", L["engage_message"], "Attention")
385 self:PossibleSubmerge()
386 end
387 elseif sync == "OuroSweep" then
388 self:Sweep()
389 elseif sync == "OuroSandblast" then
390 self:Sandblast()
391 elseif sync == "OuroEmerge" then
392 self:Emerge()
393 elseif sync == "OuroSubmerge" then
394 self:Submerge()
395 elseif sync == "OuroBerserk" then
396 self:Berserk()
397 end
398 end
399  
400 function BigWigsOuro:PossibleSubmerge()
401 if self.db.profile.emerge then
402 self:ScheduleEvent("bwouroemergewarn", "BigWigs_Message", 75, L["emergewarn"], "Important")
403 self:TriggerEvent("BigWigs_StartBar", self, L["possible_submerge_bar"], 90, "Interface\\Icons\\Spell_Nature_Earthquake")
404 self:ScheduleEvent("bwouroemergewarn2", "BigWigs_Message", 165, L["emergewarn2"], "Important")
405 self:TriggerEvent("BigWigs_StartBar", self, L["emergebartext"], 180, "Interface\\Icons\\Spell_Nature_Earthquake")
406 end
407 end
408  
409 function BigWigsOuro:Berserk()
410 self:CancelScheduledEvent("bwouroemergewarn")
411 self:CancelScheduledEvent("bwouroemergewarn2")
412 self:TriggerEvent("BigWigs_StopBar", self, L["emergebartext"])
413 self:TriggerEvent("BigWigs_StopBar", self, L["possible_submerge_bar"])
414  
415 if self.db.profile.berserk then
416 self:TriggerEvent("BigWigs_Message", L["berserkannounce"], "Important")
417 end
418 end
419  
420 function BigWigsOuro:Sweep()
421 if self.db.profile.sweep then
422 self:TriggerEvent("BigWigs_Message", L["sweepannounce"], "Important")
423 self:ScheduleEvent("bwourosweepwarn", "BigWigs_Message", 16, L["sweepwarn"], "Important")
424 self:TriggerEvent("BigWigs_StartBar", self, L["sweepbartext"], 21, "Interface\\Icons\\Spell_Nature_Thorns")
425 end
426 end
427  
428 function BigWigsOuro:Sandblast()
429 if self.db.profile.sandblast then
430 self:TriggerEvent("BigWigs_Message", L["sandblastannounce"], "Important")
431 self:ScheduleEvent("bwouroblastwarn", "BigWigs_Message", 17, L["sandblastwarn"], "Important")
432 self:TriggerEvent("BigWigs_StartBar", self, L["sandblastbartext"], 22, "Interface\\Icons\\Spell_Nature_Cyclone")
433 end
434 end
435  
436 function BigWigsOuro:Emerge()
437 if self.db.profile.emerge then
438 self:TriggerEvent("BigWigs_Message", L["emergeannounce"], "Important")
439 self:PossibleSubmerge()
440 end
441  
442 if self.db.profile.sweep then
443 self:ScheduleEvent("bwourosweepwarn", "BigWigs_Message", 16, L["sweepwarn"], "Important")
444 self:TriggerEvent("BigWigs_StartBar", self, L["sweepbartext"], 21, "Interface\\Icons\\Spell_Nature_Thorns")
445 end
446  
447 if self.db.profile.sandblast then
448 self:ScheduleEvent("bwouroblastwarn", "BigWigs_Message", 17, L["sandblastwarn"], "Important")
449 self:TriggerEvent("BigWigs_StartBar", self, L["sandblastbartext"], 22, "Interface\\Icons\\Spell_Nature_Cyclone")
450 end
451  
452 if self.db.profile.scarab then
453 self:ScheduleEvent("bwscarabdespawn", "BigWigs_Message", 50, L["scarabdespawn"], "Important")
454 self:TriggerEvent("BigWigs_StartBar", self, L["scarabbar"], 60, "Interface\\Icons\\INV_Scarab_Clay")
455 end
456 end
457  
458 function BigWigsOuro:Submerge()
459 self:CancelScheduledEvent("bwourosweepwarn")
460 self:CancelScheduledEvent("bwouroblastwarn")
461 self:CancelScheduledEvent("bwouroemergewarn")
462 self:CancelScheduledEvent("bwouroemergewarn2")
463  
464 self:TriggerEvent("BigWigs_StopBar", self, L["sweepbartext"])
465 self:TriggerEvent("BigWigs_StopBar", self, L["sandblastbartext"])
466 self:TriggerEvent("BigWigs_StopBar", self, L["emergebartext"])
467 self:TriggerEvent("BigWigs_StopBar", self, L["possible_submerge_bar"])
468  
469 if self.db.profile.submerge then
470 self:TriggerEvent("BigWigs_Message", L["submergeannounce"], "Important")
471 self:ScheduleEvent("bwsubmergewarn", "BigWigs_Message", 25, L["submergewarn"], "Important" )
472 self:TriggerEvent("BigWigs_StartBar", self, L["submergebartext"], 30, "Interface\\Icons\\Spell_Nature_Earthquake")
473 end
474 end
475  
476 function BigWigsOuro:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF( msg )
477 if string.find(msg, L["emergetrigger"]) then
478 self:TriggerEvent("BigWigs_SendSync", "OuroEmerge")
479 elseif string.find(msg, L["submergetrigger"]) then
480 self:TriggerEvent("BigWigs_SendSync", "OuroSubmerge")
481 end
482 end
483  
484 function BigWigsOuro:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE( msg )
485 if string.find(msg, L["sweeptrigger"]) then
486 self:TriggerEvent("BigWigs_SendSync", "OuroSweep")
487 elseif string.find(msg, L["sandblasttrigger"]) then
488 self:TriggerEvent("BigWigs_SendSync", "OuroSandblast")
489 elseif string.find(msg, L["submergetrigger"]) then
490 self:TriggerEvent("BigWigs_SendSync", "OuroSubmerge")
491 end
492 end
493  
494 function BigWigsOuro:CHAT_MSG_MONSTER_EMOTE( msg )
495 if msg == L["berserktrigger"] then
496 self:TriggerEvent("BigWigs_SendSync", "OuroBerserk")
497 end
498 end