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")["Hakkar"]
6 local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
7  
8 ----------------------------
9 -- Localization --
10 ----------------------------
11  
12 L:RegisterTranslations("enUS", function() return {
13 -- Chat message triggers
14 engage_trigger = "FACE THE WRATH OF THE SOULFLAYER!",
15 drain_trigger = "^Hakkar suffers (.+) from (.+) Blood Siphon",
16 mindcontrol_trigger = "(.*) (.*) afflicted by Cause Insanity",
17  
18 you = "You",
19 are = "are",
20  
21 flee = "Fleeing will do you no good, mortals!",
22  
23 -- Warnings and bar texts
24 start_message = "Hakkar engaged - 90sec to drain - 10min to enrage!",
25 drain_warning = "%d sec to Life Drain!",
26 drain_message = "Life Drain - 90 sec to next!",
27  
28 mindcontrol_message = "%s is mindcontrolled!",
29 mindcontrol_bar = "MC: %s",
30  
31 ["Enrage"] = true,
32 ["Life Drain"] = true,
33  
34 cmd = "Hakkar",
35  
36 drain_cmd = "drain",
37 drain_name = "Drain Alerts",
38 drain_desc = "Warn for Drains",
39  
40 enrage_cmd = "enrage",
41 enrage_name = "Enrage Alerts",
42 enrage_desc = "Warn for Enrage",
43  
44 mc_cmd = "mc",
45 mc_name = "Mind Control",
46 mc_desc = "Alert when someone is mind controlled.",
47  
48 icon_cmd = "icon",
49 icon_name = "Place Icon",
50 icon_desc = "Place a skull icon on the mind controlled person (requires promoted or higher)",
51 } end)
52  
53 L:RegisterTranslations("deDE", function() return {
54 engage_trigger = "^EURE \195\156BERHEBLICHKEIT K\195\156NDET BEREITS VOM ENDE DIESER WELT!", -- ?
55 drain_trigger = "^Hakkar erleidet (.+) Naturschaden von (.+) %(durch Bluttrinker%).",
56 mindcontrol_trigger = "(.*) (.*) von Wahnsinn verursachen betroffen.",
57  
58 you = "Ihr",
59 are = "seid",
60  
61 flee = "Es ist sinnlos zu fl\195\188chten, Sterbliche!",
62  
63 start_message = "Hakkar angegriffen! Bluttrinker in 90 Sekunden! Wutanfall in 10 Minuten!",
64 drain_warning = "Bluttrinker in %d Sekunden!",
65 drain_message = "Bluttrinker! N\195\164chster in 90 Sekunden!",
66  
67 mindcontrol_message = "%s steht unter Gedankenkontrolle!",
68 mindcontrol_bar = "MC: %s",
69  
70 ["Enrage"] = "Wutanfall",
71 ["Life Drain"] = "Bluttrinker",
72  
73 drain_name = "Bluttrinker",
74 drain_desc = "Warnung, wenn Hakkar Bluttrinker wirkt.",
75  
76 enrage_name = "Wutanfall",
77 enrage_desc = "Warnung, wenn Hakkar w\195\188tend wird.",
78  
79 mc_name = "Gedankenkontrolle",
80 mc_desc = "Warnung wenn jemand unter Gedankenkontrolle steht.",
81  
82 icon_name = "Symbol",
83 icon_desc = "Platziert ein Symbol \195\188ber dem Spieler, der unter Gedankenkontrolle steht. (Ben\195\182tigt Anf\195\188hrer oder Bef\195\182rdert Status.)",
84 } end)
85  
86 L:RegisterTranslations("frFR", function() return {
87 -- Chat message triggers
88 engage_trigger = "ANNONCE LA FIN DE VOTRE MONDE",
89 drain_trigger = "^Siphon de sang .+ (.+) inflige \195\160 Hakkar (.+).",
90 mindcontrol_trigger = "(.*) (.*) les effets de Rendre fou.",
91  
92 you = "Vous",
93 are = "subissez",
94  
95 flee = "Fuir ne vous servira \195\160 rien, mortels !",
96  
97 -- Warnings and bar texts
98 start_message = "Hakkar engag\195\169 - 90 sec. avant Drain - 10 min. avant Enrager",
99 drain_warning = "%d sec. avant le Drain de vie !",
100 drain_message = "Drain de vie - 90 sec. avant le prochain !",
101  
102 mindcontrol_message = "%s est devenu fou !",
103 mindcontrol_bar = "CM: %s",
104  
105 ["Enrage"] = "Enrager",
106 ["Life Drain"] = "Drain de vie",
107  
108 drain_name = "Alerte Drain",
109 drain_desc = "Pr\195\169viens quand Hakkar fait ses drains de vie.",
110  
111 enrage_name = "Alerte Enrager",
112 enrage_desc = "Pr\195\169viens quand Hakkar devient enrag\195\169.",
113  
114 mc_name = "Alerte Contr\195\180le Mental",
115 mc_desc = "Pr\195\169viens quand quelqu'un est sous le contr\195\180le d'Hakkar.",
116  
117 icon_name = "Placer une ic\195\180ne",
118 icon_desc = "Place une ic\195\180ne de raid sur la personne sous contr\195\180le mental (n\195\169cessite d'\195\170tre promu ou mieux).",
119 } end)
120  
121 L:RegisterTranslations("koKR", function() return {
122 -- Chat message triggers
123 engage_trigger = "자만심은 세상의 종말을 불러올 뿐이다. 오너라! 건방진 피조물들이여! 와서 신의 진노에 맞서 보아라!",
124 drain_trigger = "학카르|1이;가; (.+)의 피의 착취에 의해 (.+)의 자연 피해를 입었습니다.",
125 mindcontrol_trigger = "^([^|;%s]*)(.*)정신 착란에 걸렸습니다%.$", -- "(.*) (.*) afflicted by Cause Insanity", -- CHECK
126  
127 you = "",
128 are = "",
129  
130 flee = "도망쳐 봐야 소용없다, 어리석은 생명체여!", -- by turtl
131  
132 -- Warnings and bar texts
133 start_message = "학카르 시작 - 90초후 생명력 흡수 - 10분후 격노",
134 drain_warning = "생명력 흡수 %d초전",
135 drain_message = "생명력 흡수 - 다음 시전은 90초후",
136  
137 mindcontrol_message = "%s|1이;가; 정신 지배되었습니다!",
138 mindcontrol_bar = "정신지배: %s",
139  
140 ["Enrage"] = "격노",
141 ["Life Drain"] = "생명력 흡수",
142  
143 drain_name = "흡수 경고",
144 drain_desc = "흡수에 대한 경고",
145  
146 enrage_name = "격노 경고",
147 enrage_desc = "격노에 대한 경고",
148  
149 mc_name = "정신 지배",
150 mc_desc = "정신 지배 되었을 때 경고",
151  
152 icon_name = "아이콘 지정",
153 icon_desc = "정신 지배된 사람에게 해골 아이콘 지정 (승급자 이상 필요)",
154 } end)
155  
156  
157 L:RegisterTranslations("zhCN", function() return {
158 -- Chat message triggers
159 engage_trigger = "^骄傲会将你送上绝路",
160 drain_trigger = "^(.+)的酸性血液虹吸使哈卡受到了(.+)",
161 mindcontrol_trigger = "^(.+)受(.+)疯狂效果的影响",
162  
163 you = "你",
164 are = "到",
165  
166 flee = "逃跑",
167  
168 -- Warnings and bar texts
169 start_message = "哈卡已经激活 - 90秒后开始生命吸取 - 10分钟后进入激怒状态",
170 drain_warning = "%d秒后发动生命吸取",
171 drain_message = "血液虹吸 - 90秒后再次发动",
172  
173 mindcontrol_message = "%s 被控制了",
174 mindcontrol_bar = "MC: %s",
175  
176 ["Enrage"] = "激怒",
177 ["Life Drain"] = "生命吸取",
178  
179 drain_name = "生命吸取警报",
180 drain_desc = "生命吸取警报",
181  
182 enrage_name = "激怒警报",
183 enrage_desc = "激怒警报",
184  
185 mc_name = "精神控制警报",
186 mc_desc = "哈卡使用精神控制时警报。",
187  
188 icon_name = "标记精神控制",
189 icon_desc = "团队标记被精神控制者 (需要助力或更高权限)",
190 } end)
191  
192 L:RegisterTranslations("zhTW", function() return {
193 -- Hakkar 哈卡
194 -- Chat message triggers
195 engage_trigger = "^驕傲會將你送上絕路",
196 drain_trigger = "^(.+)的血液虹吸使哈卡受到了(.+)點自然傷害。$",
197 mindcontrol_trigger = "^(.+)受到(.*)導致瘋狂",
198  
199 you = "你",
200 are = "了",
201  
202 flee = "逃跑",
203  
204 -- Warnings and bar texts
205 start_message = "哈卡已經進入戰鬥 - 90秒後開始血液虹吸 - 10分鐘後進入狂怒狀態",
206 drain_warning = "%d 秒後開始生命吸取",
207 drain_message = "血液虹吸 - 90秒後再次發動",
208  
209 mindcontrol_message = "%s 被控制了,法師快羊",
210 mindcontrol_bar = "MC: %s",
211  
212 ["Enrage"] = "狂怒",
213 ["Life Drain"] = "血液虹吸",
214  
215 drain_name = "血液虹吸警報",
216 drain_desc = "血液虹吸警報",
217  
218 enrage_name = "狂怒警報",
219 enrage_desc = "狂怒警報",
220  
221 mc_name = "精神控制警報",
222 mc_desc = "哈卡使用精神控制時警報。",
223  
224 icon_name = "標記被精神控制的隊友",
225 icon_desc = "在被精神控制的隊友頭上設置標記 (需要助手或領隊權限)",
226 } end)
227  
228 ----------------------------------
229 -- Module Declaration --
230 ----------------------------------
231  
232 BigWigsHakkar = BigWigs:NewModule(boss)
233 BigWigsHakkar.zonename = AceLibrary("Babble-Zone-2.2")["Zul'Gurub"]
234 BigWigsHakkar.enabletrigger = boss
235 BigWigsHakkar.toggleoptions = { "drain", "enrage", -1, "mc", "icon", "bosskill" }
236 BigWigsHakkar.revision = tonumber(string.sub("$Revision: 17555 $", 12, -3))
237  
238 ------------------------------
239 -- Initialization --
240 ------------------------------
241  
242 function BigWigsHakkar:OnEnable()
243 self.prior = nil
244 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE")
245 self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE")
246 self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
247 self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
248  
249 self:RegisterEvent("BigWigs_Message")
250 end
251  
252 ------------------------------
253 -- Event Handlers --
254 ------------------------------
255  
256 function BigWigsHakkar:CHAT_MSG_MONSTER_YELL(msg)
257 if string.find(msg, L["engage_trigger"]) then
258 self:TriggerEvent("BigWigs_Message", L["start_message"], "Important")
259 if self.db.profile.enrage then self:TriggerEvent("BigWigs_StartBar", self, L["Enrage"], 600, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy") end
260 self:BeginTimers(true)
261 elseif string.find(msg, L["flee"]) then
262 self:TriggerEvent("BigWigs_RebootModule", self)
263 end
264 end
265  
266 function BigWigsHakkar:CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE(msg)
267 if not self.prior and string.find(msg, L["drain_trigger"]) then
268 self.prior = true
269 self:BeginTimers()
270 end
271 end
272  
273 function BigWigsHakkar:CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE(msg)
274 local _,_, mcplayer, mctype = string.find(msg, L["mindcontrol_trigger"])
275 if mcplayer then
276 if mcplayer == L["you"] then
277 mcplayer = UnitName("player")
278 end
279 if self.db.profile.mc then
280 self:TriggerEvent("BigWigs_StartBar", self, string.format(L["mindcontrol_bar"], mcplayer), 9.5, "Interface\\Icons\\Spell_Shadow_ShadowWordDominate")
281 self:TriggerEvent("BigWigs_Message", string.format(L["mindcontrol_message"], mcplayer), "Urgent")
282 end
283 if self.db.profile.icon then
284 self:TriggerEvent("BigWigs_SetRaidIcon", mcplayer)
285 end
286 end
287 end
288  
289 function BigWigsHakkar:BigWigs_Message(text)
290 if text == string.format(L["drain_warning"], 60) then self.prior = nil end
291 end
292  
293 function BigWigsHakkar:BeginTimers(first)
294 if self.db.profile.drain then
295 if not first then self:TriggerEvent("BigWigs_Message", L["drain_message"], "Attention") end
296 self:ScheduleEvent("bwhakkarld60", "BigWigs_Message", 30, string.format(L["drain_warning"], 60), "Attention")
297 self:ScheduleEvent("bwhakkarld45", "BigWigs_Message", 45, string.format(L["drain_warning"], 45), "Attention")
298 self:ScheduleEvent("bwhakkarld30", "BigWigs_Message", 60, string.format(L["drain_warning"], 30), "Urgent")
299 self:ScheduleEvent("bwhakkarld15", "BigWigs_Message", 75, string.format(L["drain_warning"], 15), "Important")
300 self:TriggerEvent("BigWigs_StartBar", self, L["Life Drain"], 90, "Interface\\Icons\\Spell_Shadow_LifeDrain")
301 end
302 end
303