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 veklor = AceLibrary("Babble-Boss-2.2")["Emperor Vek'lor"]
6 local veknilash = AceLibrary("Babble-Boss-2.2")["Emperor Vek'nilash"]
7 local boss = AceLibrary("Babble-Boss-2.2")["The Twin Emperors"]
8 local L = AceLibrary("AceLocale-2.2"):new("BigWigs" .. boss)
9  
10 local started = nil
11  
12 ----------------------------
13 -- Localization --
14 ----------------------------
15  
16 L:RegisterTranslations("enUS", function() return {
17 cmd = "Twins",
18  
19 bug_cmd = "bug",
20 bug_name = "Exploding Bug Alert",
21 bug_desc = "Warn for exploding bugs",
22  
23 teleport_cmd = "teleport",
24 teleport_name = "Teleport Alert",
25 teleport_desc = "Warn for Teleport",
26  
27 enrage_cmd = "enrage",
28 enrage_name = "Enrage Alert",
29 enrage_desc = "Warn for Enrage",
30  
31 heal_cmd = "heal",
32 heal_name = "Heal Alert",
33 heal_desc = "Warn for Twins Healing",
34  
35 porttrigger = "casts Twin Teleport.",
36 portwarn = "Teleport!",
37 portdelaywarn = "Teleport in ~5 seconds!",
38 portdelaywarn2 = "Teleport in ~10 seconds!",
39 bartext = "Teleport",
40 explodebugtrigger = "gains Explode Bug%.$",
41 explodebugwarn = "Bug exploding nearby!",
42 enragetrigger = "becomes enraged.",
43 enragewarn = "Twins are enraged",
44 healtrigger1 = "'s Heal Brother heals",
45 healtrigger2 = " Heal Brother heals",
46 healwarn = "Casting Heal!",
47 startwarn = "Twin Emperors engaged! Enrage in 15 minutes!",
48 enragebartext = "Enrage",
49 warn1 = "Enrage in 10 minutes",
50 warn2 = "Enrage in 5 minutes",
51 warn3 = "Enrage in 3 minutes",
52 warn4 = "Enrage in 90 seconds",
53 warn5 = "Enrage in 60 seconds",
54 warn6 = "Enrage in 30 seconds",
55 warn7 = "Enrage in 10 seconds",
56 } end )
57  
58 L:RegisterTranslations("deDE", function() return {
59 bug_name = "Explodierende K\195\164fer",
60 bug_desc = "Warnung vor explodierenden K\195\164fern.",
61  
62 teleport_name = "Teleport",
63 teleport_desc = "Warnung, wenn die Zwillings Imperatoren sich teleportieren.",
64  
65 enrage_name = "Wutanfall",
66 enrage_desc = "Warnung, wenn die Zwillings Imperatoren w\195\188tend werden.",
67  
68 heal_name = "Heilung",
69 heal_desc = "Warnung, wenn die Zwillings Imperatoren sich heilen.",
70  
71 porttrigger = "wirkt Zwillingsteleport.",
72 portwarn = "Teleport!",
73 portdelaywarn = "Teleport in ~5 Sekunden!",
74 portdelaywarn2 = "Teleport in ~10 Sekunden!",
75 bartext = "Teleport",
76 explodebugtrigger = "bekommt 'K\195\164fer explodieren lassen'",
77 explodebugwarn = "K\195\164fer explodiert!",
78 enragetrigger = "wird w\195\188tend.", -- ? "bekommt 'Wutanfall'"
79 enragewarn = "Zwillings Imperatoren sind w\195\188tend!",
80 healtrigger1 = "'s Bruder heilen heilt",
81 healtrigger2 = " Bruder heilen heilt",
82 healwarn = "Heilung gewirkt!",
83 startwarn = "Zwillings Imperatoren angegriffen! Wutanfall in 15 Minuten!",
84 enragebartext = "Wutanfall",
85 warn1 = "Wutanfall in 10 Minuten",
86 warn2 = "Wutanfall in 5 Minuten",
87 warn3 = "Wutanfall in 3 Minuten",
88 warn4 = "Wutanfall in 90 Sekunden",
89 warn5 = "Wutanfall in 60 Sekunden",
90 warn6 = "Wutanfall in 30 Sekunden",
91 warn7 = "Wutanfall in 10 Sekunden",
92 } end )
93  
94 L:RegisterTranslations("zhCN", function() return {
95 bug_name = "爆炸虫警报",
96 bug_desc = "爆炸虫警报",
97  
98 teleport_name = "传送警报",
99 teleport_desc = "传送警报",
100  
101 enrage_name = "激怒警报",
102 enrage_desc = "激怒警报",
103  
104 heal_name = "治疗警报",
105 heal_desc = "双子皇帝互相治疗时发出警报",
106  
107 porttrigger = "施放了双子传送。",
108 portwarn = "双子传送发动!",
109 portdelaywarn = "5秒后发动双子传送!",
110 portdelaywarn2 = "10秒后发动双子传送!",
111 bartext = "双子传送",
112 explodebugtrigger = "(.+)获得了爆炸虫",
113 explodebugwarn = "爆炸虫即将出现!",
114 enragetrigger = "获得了激怒的效果。",
115 enragewarn = "双子皇帝获得了激怒的效果!",
116 healtrigger1 = "的治疗兄弟为",
117 healtrigger2 = "的治疗兄弟为",
118 healwarn = "正在施放治疗兄弟 - 快将他们分开!",
119 startwarn = "双子皇帝已激活 - 15分钟后进入激怒状态",
120 enragebartext = "激怒",
121 warn1 = "10分钟后激怒",
122 warn2 = "5分钟后激怒",
123 warn3 = "3分钟后激怒",
124 warn4 = "90秒后激怒",
125 warn5 = "60秒后激怒",
126 warn6 = "30秒后激怒",
127 warn7 = "10秒后激怒",
128 } end )
129  
130 L:RegisterTranslations("zhTW", function() return {
131 -- Twin Emperors 雙子皇帝
132 bug_name = "爆炸蟲警報",
133 bug_desc = "雙子皇帝施放爆炸蟲時發出警報",
134  
135 teleport_name = "傳送警報",
136 teleport_desc = "雙子皇帝施放雙子傳送時發出警報",
137  
138 enrage_name = "狂怒警報",
139 enrage_desc = "雙子皇帝的狂怒倒數計時與時警報",
140  
141 heal_name = "治療警報",
142 heal_desc = "雙子皇帝互相治療時發出警報",
143  
144 porttrigger = "施放了雙子傳送。",
145 portwarn = "雙子傳送發動!",
146 portdelaywarn = "5 秒後發動雙子傳送!",
147 portdelaywarn2 = "10 秒後發動雙子傳送!",
148 bartext = "雙子傳送",
149 explodebugtrigger = "(.+)獲得了爆炸蟲的效果。$",
150 explodebugwarn = "爆炸蟲即將出現!",
151 enragetrigger = "獲得了狂怒的效果。",
152 enragewarn = "開始狂怒!",
153 healtrigger1 = "的治療兄弟為",
154 healtrigger2 = "的治療兄弟為",
155 healwarn = "正在施放治療兄弟 - 快拉開!",
156 startwarn = "雙子皇帝已進入戰鬥 - 15分鐘後進入狂怒狀態",
157 enragebartext = "狂怒",
158 warn1 = "10 分鐘後狂怒",
159 warn2 = "5 分鐘後狂怒",
160 warn3 = "3 分鐘後狂怒",
161 warn4 = "90 秒後狂怒",
162 warn5 = "60 秒後狂怒",
163 warn6 = "30 秒後狂怒",
164 warn7 = "10 秒後狂怒",
165 } end )
166  
167 L:RegisterTranslations("koKR", function() return {
168 bug_name = "벌레 폭발 경고",
169 bug_desc = "벌레 폭발에 대한 경고",
170  
171 teleport_name = "순간이동 경고",
172 teleport_desc = "순간이동에 대한 경고",
173  
174 enrage_name = "격노 경고",
175 enrage_desc = "격노에 대한 경고",
176  
177 heal_name = "치유 경고",
178 heal_desc = "형제 치유에 대한 경고",
179  
180 porttrigger = "쌍둥이 순간이동|1을;를; 시전합니다.",
181 portwarn = "순간 이동!",
182 portdelaywarn = "약 5초후 순간 이동!",
183 portdelaywarn2 = "약 10초후 순간 이동!",
184 bartext = "순간 이동",
185 explodebugtrigger = "(.+)|1이;가; 벌레 폭발 효과를 얻었습니다.",
186 explodebugwarn = "벌레 폭발!",
187 enragetrigger = "%s|1이;가; 격노 효과를 얻었습니다.", -- CHECK
188 enragewarn = "쌍둥이 격노!!",
189 healtrigger1 = "(.+)|1이;가; 형제 치유|1을;를;",
190 healtrigger2 = "(.+)의 형제 치유|1으로;로;",
191  
192 healwarn = "형제 치유 시전중 - 쌍둥이 분리!",
193 startwarn = "쌍둥이 제왕 전투 시작! 15분 후 격노!",
194 enragebartext = "격노",
195 warn1 = "격노 - 10 분전",
196 warn2 = "격노 - 5 분전",
197 warn3 = "격노 - 3 분전",
198 warn4 = "격노 - 90 초전",
199 warn5 = "격노 - 60 초전",
200 warn6 = "격노 - 30 초전",
201 warn7 = "격노 - 10 초전",
202 } end )
203  
204 L:RegisterTranslations("frFR", function() return {
205 bug_name = "Alerte explosion d'insecte",
206 bug_desc = "Pr\195\169viens de l'explosion des insectes.",
207  
208 teleport_name = "Alerte T\195\169l\195\169portation",
209 teleport_desc = "Pr\195\169viens des t\195\169l\195\169portations.",
210  
211 enrage_name = "Alerte Enrag\195\169s",
212 enrage_desc = "Pr\195\169viens quand les jumeaux sont enrag\195\169s.",
213  
214 heal_name = "Alerte soins",
215 heal_desc = "Pr\195\169viens quand les jumeaux se soignent.",
216  
217 portwarn = "T\195\169l\195\169portation !",
218 portdelaywarn = "T\195\169l\195\169portation dans ~5 secondes !",
219 portdelaywarn2 = "T\195\169l\195\169portation dans ~10 secondes !",
220 bartext = "T\195\169l\195\169portation",
221 explodebugwarn = "Explosion d'insecte proche !",
222 enragewarn = "Les jumeaux sont enrag\195\169s !",
223 healwarn = "Incantation de soins !",
224 startwarn = "Les empereurs jumeaux engag\195\169s ! Enrag\195\169s dans 15 minutes",
225 enragebartext = "Enrag\195\169s",
226 warn1 = "Enrag\195\169s dans 10 minutes",
227 warn2 = "Enrag\195\169s dans 5 minutes",
228 warn3 = "Enrag\195\169s dans 3 minutes",
229 warn4 = "Enrag\195\169s dans 90 secondes",
230 warn5 = "Enrag\195\169s dans 60 secondes",
231 warn6 = "Enrag\195\169s dans 30 secondes",
232 warn7 = "Enrag\195\169s dans 10 secondes",
233  
234 porttrigger = "lance T\195\169l\195\169portation des jumeaux.",
235 explodebugtrigger = "gagne Explosion de l'insecte%.$",
236 enragetrigger = "devient fou furieux.",-- not sure at all
237 healtrigger1 = "Soigner fr\195\168re (.+) gu\195\169rit",
238 healtrigger2 = "Soigner fr\195\168re (.+) soigne",
239 } end )
240  
241 ----------------------------------
242 -- Module Declaration --
243 ----------------------------------
244  
245 BigWigsTwins = BigWigs:NewModule(boss)
246 BigWigsTwins.zonename = AceLibrary("Babble-Zone-2.2")["Ahn'Qiraj"]
247 BigWigsTwins.enabletrigger = {veklor, veknilash}
248 BigWigsTwins.toggleoptions = {"bug", "teleport", "enrage", "heal", "bosskill"}
249 BigWigsTwins.revision = tonumber(string.sub("$Revision: 16970 $", 12, -3))
250  
251 ------------------------------
252 -- Initialization --
253 ------------------------------
254  
255 function BigWigsTwins:OnEnable()
256 started = nil
257 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH")
258 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
259 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE")
260 self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF")
261 self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe")
262 self:RegisterEvent("PLAYER_REGEN_DISABLED", "CheckForEngage")
263 self:RegisterEvent("BigWigs_RecvSync")
264 self:TriggerEvent("BigWigs_ThrottleSync", "TwinsTeleport", 10)
265 end
266  
267 ------------------------------
268 -- Event Handlers --
269 ------------------------------
270  
271 function BigWigsTwins:CHAT_MSG_COMBAT_HOSTILE_DEATH(msg)
272 if msg == string.format(UNITDIESOTHER, veklor) or msg == string.format(UNITDIESOTHER, veknilash) then
273 if self.db.profile.bosskill then self:TriggerEvent("BigWigs_Message", string.format(AceLibrary("AceLocale-2.2"):new("BigWigs")["%s have been defeated"], boss), "Bosskill", nil, "Victory") end
274 self.core:ToggleModuleActive(self, false)
275 end
276 end
277  
278 function BigWigsTwins:BigWigs_RecvSync(sync, rest, nick)
279 if sync == self:GetEngageSync() and rest and rest == boss and not started then
280 started = true
281 if self:IsEventRegistered("PLAYER_REGEN_DISABLED") then
282 self:UnregisterEvent("PLAYER_REGEN_DISABLED")
283 end
284 if self.db.profile.teleport then
285 self:ScheduleEvent("BigWigs_Message", 20, L["portdelaywarn2"], "Urgent")
286 self:ScheduleEvent("BigWigs_Message", 25, L["portdelaywarn"], "Important")
287 self:TriggerEvent("BigWigs_StartBar", self, L["bartext"], 30, "Interface\\Icons\\Spell_Arcane_Blink")
288 end
289 if self.db.profile.enrage then
290 self:TriggerEvent("BigWigs_Message", L["startwarn"], "Important")
291 self:TriggerEvent("BigWigs_StartBar", self, L["enragebartext"], 900, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy")
292 self:ScheduleEvent("bwtwinswarn1", "BigWigs_Message", 300, L["warn1"], "Attention")
293 self:ScheduleEvent("bwtwinswarn2", "BigWigs_Message", 600, L["warn2"], "Attention")
294 self:ScheduleEvent("bwtwinswarn3", "BigWigs_Message", 720, L["warn3"], "Attention")
295 self:ScheduleEvent("bwtwinswarn4", "BigWigs_Message", 810, L["warn4"], "Urgent")
296 self:ScheduleEvent("bwtwinswarn5", "BigWigs_Message", 840, L["warn5"], "Urgent")
297 self:ScheduleEvent("bwtwinswarn6", "BigWigs_Message", 870, L["warn6"], "Important")
298 self:ScheduleEvent("bwtwinswarn7", "BigWigs_Message", 890, L["warn7"], "Important")
299 end
300 elseif sync == "TwinsTeleport" and self.db.profile.teleport then
301 self:TriggerEvent("BigWigs_Message", L["portwarn"], "Attention")
302 self:ScheduleEvent("BigWigs_Message", 20, L["portdelaywarn2"], "Urgent")
303 self:ScheduleEvent("BigWigs_Message", 25, L["portdelaywarn"], "Important")
304 self:TriggerEvent("BigWigs_StartBar", self, L["bartext"], 30, "Interface\\Icons\\Spell_Arcane_Blink")
305 end
306 end
307  
308 function BigWigsTwins:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE(msg)
309 if (string.find(msg, L["porttrigger"])) then
310 self:TriggerEvent("BigWigs_SendSync", "TwinsTeleport")
311 end
312 end
313  
314 function BigWigsTwins:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS(msg)
315 if (string.find(msg, L["explodebugtrigger"]) and self.db.profile.bug) then
316 self:TriggerEvent("BigWigs_Message", L["explodebugwarn"], "Personal", true)
317 end
318 end
319  
320 function BigWigsTwins:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF(msg)
321 if (not self.prior and (string.find(msg, L["healtrigger1"]) or string.find(msg, L["healtrigger2"])) and self.db.profile.heal) then
322 self:TriggerEvent("BigWigs_Message", L["healwarn"], "Important")
323 self.prior = true
324 self:ScheduleEvent(function() BigWigsTwins.prior = nil end, 10)
325 end
326 end
327  
328 function BigWigsTwins:CHAT_MSG_MONSTER_EMOTE(msg)
329 if (string.find(msg, L["enragetrigger"]) and self.db.profile.enrage) then
330 self:TriggerEvent("BigWigs_Message", L["enragewarn"], "Important")
331 end
332 end