vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | ------------------------------ |
2 | -- Are you local? -- |
||
3 | ------------------------------ |
||
4 | |||
5 | local boss = AceLibrary("Babble-Boss-2.2")["Chromaggus"] |
||
6 | local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss) |
||
7 | local twenty |
||
8 | |||
9 | ---------------------------- |
||
10 | -- Localization -- |
||
11 | ---------------------------- |
||
12 | |||
13 | L:RegisterTranslations("enUS", function() return { |
||
14 | cmd = "Chromaggus", |
||
15 | |||
16 | enrage_cmd = "enrage", |
||
17 | enrage_name = "Enrage", |
||
18 | enrage_desc = "Warn before Enrage at 20%", |
||
19 | |||
20 | frenzy_cmd = "frenzy", |
||
21 | frenzy_name = "Frenzy Alert", |
||
22 | frenzy_desc = "Warn for Frenzy", |
||
23 | |||
24 | breath_cmd = "breath", |
||
25 | breath_name = "Breath Alerts", |
||
26 | breath_desc = "Warn for Breaths", |
||
27 | |||
28 | vulnerability_cmd = "vulnerability", |
||
29 | vulnerability_name = "Vulnerability Alerts", |
||
30 | vulnerability_desc = "Warn for Vulnerability changes", |
||
31 | |||
32 | breath_trigger = "^Chromaggus begins to cast ([%w ]+)\.", |
||
33 | vulnerability_test = "^[%w']+ [%w' ]+ ([%w]+) Chromaggus for ([%d]+) ([%w ]+) damage%..*", |
||
34 | frenzy_trigger = "%s goes into a killing frenzy!", |
||
35 | vulnerability_trigger = "%s flinches as its skin shimmers.", |
||
36 | |||
37 | hit = "hits", |
||
38 | crit = "crits", |
||
39 | |||
40 | breath_warning = "%s in 10 seconds!", |
||
41 | breath_message = "%s is casting!", |
||
42 | vulnerability_message = "Vulnerability: %s!", |
||
43 | vulnerability_warning = "Spell vulnerability changed!", |
||
44 | frenzy_message = "Frenzy Alert!", |
||
45 | enrage_warning = "Enrage soon!", |
||
46 | |||
47 | breath1 = "Time Lapse", |
||
48 | breath2 = "Corrosive Acid", |
||
49 | breath3 = "Ignite Flesh", |
||
50 | breath4 = "Incinerate", |
||
51 | breath5 = "Frost Burn", |
||
52 | |||
53 | iconunknown = "Interface\\Icons\\INV_Misc_QuestionMark", |
||
54 | icon1 = "Interface\\Icons\\Spell_Arcane_PortalOrgrimmar", |
||
55 | icon2 = "Interface\\Icons\\Spell_Nature_Acid_01", |
||
56 | icon3 = "Interface\\Icons\\Spell_Fire_Fire", |
||
57 | icon4 = "Interface\\Icons\\Spell_Shadow_ChillTouch", |
||
58 | icon5 = "Interface\\Icons\\Spell_Frost_ChillingBlast", |
||
59 | |||
60 | castingbar = "Cast %s", |
||
61 | |||
62 | } end ) |
||
63 | |||
64 | L:RegisterTranslations("deDE", function() return { |
||
65 | enrage_name = "Wutanfall", |
||
66 | enrage_desc = "Warnung, wenn Chromaggus w\195\188tend wird. (ab 20%).", |
||
67 | |||
68 | frenzy_name = "Raserei", |
||
69 | frenzy_desc = "Warnung, wenn Chromaggus in Raserei ger\195\164t.", |
||
70 | |||
71 | breath_name = "Atem", |
||
72 | breath_desc = "Warnung, wenn Chromaggus seinen Atem wirkt.", |
||
73 | |||
74 | vulnerability_name = "Zauber-Verwundbarkeiten", |
||
75 | vulnerability_desc = "Warnung, wenn Chromagguss Zauber-Verwundbarkeit sich \195\164ndert.", |
||
76 | |||
77 | breath_trigger = "^Chromaggus beginnt (.+) zu wirken%.", |
||
78 | vulnerability_test = "^[^%s]+ .* trifft Chromaggus(.+)f\195\188r ([%d]+) ([%w ]+)'schaden%..*", -- ? |
||
79 | frenzy_trigger = "%s ger\195\164t in t\195\182dliche Raserei!", |
||
80 | vulnerability_trigger = "%s weicht zur\195\188ck, als die Haut schimmert.", |
||
81 | |||
82 | hit = "trifft", |
||
83 | crit = "kritisch", |
||
84 | |||
85 | breath_warning = "%s in 10 Sekunden!", |
||
86 | breath_message = "Chromaggus wirkt: %s Atem!", |
||
87 | vulnerability_message = "Neue Zauber-Verwundbarkeit: %s", |
||
88 | vulnerability_warning = "Zauber-Verwundbarkeit ge\195\164ndert!", |
||
89 | frenzy_message = "Raserei - Einlullender Schuss!", |
||
90 | enrage_warning = "Wutanfall steht kurz bevor!", |
||
91 | |||
92 | breath1 = "Zeitraffer", |
||
93 | breath2 = "\195\132tzende S\195\164ure", |
||
94 | breath3 = "Fleisch entz\195\188nden", |
||
95 | breath4 = "Verbrennen", |
||
96 | breath5 = "Frostbeulen", |
||
97 | |||
98 | castingbar = "Wirkt %s", |
||
99 | } end ) |
||
100 | |||
101 | L:RegisterTranslations("zhCN", function() return { |
||
102 | enrage_name = "激怒警报", |
||
103 | enrage_desc = "20%生命激怒前发出警报。", |
||
104 | |||
105 | frenzy_name = "狂暴警报", |
||
106 | frenzy_desc = "狂暴警报", |
||
107 | |||
108 | breath_name = "吐息警报", |
||
109 | breath_desc = "吐息警报", |
||
110 | |||
111 | vulnerability_name = "弱点警报", |
||
112 | vulnerability_desc = "克洛玛古斯弱点改变时发出警报", |
||
113 | |||
114 | breath_trigger = "^克洛玛古斯开始施放(.+)。", |
||
115 | vulnerability_test = "^.+的.+(.+)克洛玛古斯.+(%d+)点(.+)伤害。", |
||
116 | |||
117 | frenzy_trigger = "%s变得极为狂暴!", |
||
118 | vulnerability_trigger = "%s的皮肤闪着微光", |
||
119 | |||
120 | hit = "使", |
||
121 | crit = "致命一击对", |
||
122 | |||
123 | breath_warning = "%s - 10秒后施放!", |
||
124 | breath_message = "克洛玛古斯 %s!", |
||
125 | vulnerability_message = "克洛玛古斯新弱点:%s", |
||
126 | vulnerability_warning = "克洛玛古斯弱点改变", |
||
127 | frenzy_message = "狂暴警报 - 猎人立刻使用宁神射击!", |
||
128 | enrage_warning = "即将激怒!", |
||
129 | |||
130 | breath1 = "时间流逝", |
||
131 | breath2 = "腐蚀酸液", |
||
132 | breath3 = "点燃躯体", |
||
133 | breath4 = "焚烧", |
||
134 | breath5 = "冰霜灼烧", |
||
135 | |||
136 | castingbar = "施放 %s", |
||
137 | } end ) |
||
138 | |||
139 | L:RegisterTranslations("zhTW", function() return { |
||
140 | -- Chromaggus 克洛瑪古斯 |
||
141 | enrage_name = "狂暴警報", |
||
142 | enrage_desc = "當克洛瑪古斯生命值剩 20% ,狂暴時發出警報。", |
||
143 | |||
144 | frenzy_name = "狂怒警報", |
||
145 | frenzy_desc = "當克洛瑪古斯狂怒時發出警報", |
||
146 | |||
147 | breath_name = "吐息警報", |
||
148 | breath_desc = "當克洛瑪古斯吐息時發出警報", |
||
149 | |||
150 | vulnerability_name = "弱點改變警報", |
||
151 | vulnerability_desc = "當克洛瑪古斯弱點改變時發出警報", |
||
152 | |||
153 | breath_trigger = "^克洛瑪古斯開始施放(.+)。", |
||
154 | vulnerability_test = "^.+的.+克洛瑪古斯(.+)成(%d+)點(......)傷害。", |
||
155 | frenzy_trigger = "%s變得極為狂暴!", --完全比對 |
||
156 | vulnerability_trigger = "%s因皮膚閃著微光而驚訝退縮。", --完全比對 |
||
157 | |||
158 | hit = "造", |
||
159 | crit = "致命一擊造", |
||
160 | |||
161 | breath_warning = "%s - 10 秒後施放!", |
||
162 | breath_message = "克洛瑪古斯施放:%s !", |
||
163 | vulnerability_message = "克洛瑪古斯新弱點:%s !", |
||
164 | vulnerability_warning = "克洛瑪古斯弱點改變", |
||
165 | frenzy_message = "狂怒警報 - 獵人立刻使用寧神射擊!", |
||
166 | enrage_warning = "即將暴怒!", |
||
167 | |||
168 | breath1 = "時間流逝", |
||
169 | breath2 = "腐蝕酸液", |
||
170 | breath3 = "點燃軀體", |
||
171 | breath4 = "燒盡", |
||
172 | breath5 = "冰霜灼燒", |
||
173 | |||
174 | castingbar = "施放 %s", |
||
175 | -- about vulnerability_test |
||
176 | -- 誰的什麼法術擊中克洛瑪古斯 造 成 幾 點 哪種 傷害。 <-法術hit描述,空白為對照用 |
||
177 | -- 誰的什麼法術對 克洛瑪古斯致命一擊造成 幾 點 哪種 傷害。 <-法術crit描述,空白為對照用 |
||
178 | -- .+的 .+ 克洛瑪古斯 (.+) 成(%d+)點(......)傷害。 ,這樣修改可以不用動到程式。 |
||
179 | -- drop drop type dmg school 多抓一個"造"字是因type不能為空.又,判斷對跟擊中的話,要改程式碼(像koKR的做法) |
||
180 | -- 原判斷句型會誤判其他近戰的暴擊句型,造成school抓出"致命一擊"字樣。 |
||
181 | -- 最後一個變數從(.+)改為(......),法術傷害只有兩個中文字,編碼為utf8所以是6個"."。 |
||
182 | } end ) |
||
183 | |||
184 | L:RegisterTranslations("koKR", function() return { |
||
185 | |||
186 | enrage_name = "격노", |
||
187 | enrage_desc = "20% 격노 전 경고", |
||
188 | |||
189 | frenzy_name = "광폭화 경고", |
||
190 | frenzy_desc = "광폭화에 대한 경고", |
||
191 | |||
192 | breath_name = "브레스 경고", |
||
193 | breath_desc = "브레스에 대한 경고", |
||
194 | |||
195 | vulnerability_name = "약화 속성 경고", |
||
196 | vulnerability_desc = "약화 속성 변경에 대한 경고", |
||
197 | |||
198 | breath_trigger = "크로마구스|1이;가; (.+)|1을;를; 시전합니다.", |
||
199 | vulnerability_test = "(.+)|1으로;로; 크로마구스에게 (%d+)의 ([^%s]+) (.*)피해를 입혔습니다.", |
||
200 | frenzy_trigger = "%s|1이;가; 살기를 띤 듯한 광란의 상태에 빠집니다!", |
||
201 | vulnerability_trigger = "%s|1이;가; 주춤하면서 물러나면서 가죽이 빛납니다.", --"가죽이 점점 빛나면서 물러서기 시작합니다.", |
||
202 | |||
203 | hit = "", |
||
204 | crit = "치명상 ", |
||
205 | |||
206 | breath_warning = "%s 10초전!", |
||
207 | breath_message = "%s 시전!", |
||
208 | vulnerability_message = "새로운 취약 속성: %s", |
||
209 | vulnerability_warning = "취약 속성이 변경되었습니다!", |
||
210 | frenzy_message = "광폭화 - 평정 사격!", |
||
211 | enrage_warning = "격노 경고!", |
||
212 | |||
213 | breath1 = "시간의 쇠퇴", |
||
214 | breath2 = "부식성 산", |
||
215 | breath3 = "살점 태우기", |
||
216 | breath4 = "소각", |
||
217 | breath5 = "동결", |
||
218 | |||
219 | castingbar = "%s 시전", |
||
220 | } end ) |
||
221 | |||
222 | L:RegisterTranslations("frFR", function() return { |
||
223 | enrage_name = "Alerte Enrag\195\169", |
||
224 | enrage_desc = "Pr\195\169viens quand Chromaggus s'enrage (\195\160 20%).", |
||
225 | |||
226 | frenzy_name = "Alerte Fr\195\169n\195\169sie", |
||
227 | frenzy_desc = "Pr\195\169viens quand Chromaggus entre dans des fr\195\169n\195\169sies sanglantes.", |
||
228 | |||
229 | breath_name = "Alerte Souffles", |
||
230 | breath_desc = "Pr\195\169viens quand Chromaggus souffle ainsi que leurs types.", |
||
231 | |||
232 | vulnerability_name = "Alerte Vuln\195\169rabilit\195\169s", |
||
233 | vulnerability_desc = "Pr\195\169viens quand la vuln\195\169rabilit\195\169 de Chromaggus change.", |
||
234 | |||
235 | breath_trigger = "^Chromaggus commence \195\160 lancer (.+)%.", |
||
236 | vulnerability_test = "^.+ lance .+ et (.+) \195\160 Chromaggus %(([%d]+) points de d\195\169g\195\162ts .+ (.+)%)%."; |
||
237 | frenzy_trigger = "%s entre dans une fr\195\169n\195\169sie sanglante !", |
||
238 | vulnerability_trigger = "%s grimace lorsque sa peau se met \195\160 briller.", |
||
239 | |||
240 | hit = "lui inflige", |
||
241 | crit = "inflige un coup critique", |
||
242 | |||
243 | breath_warning = "%s dans 10 sec. !", |
||
244 | breath_message = "%s en cours d'incantation !", |
||
245 | vulnerability_message = "Vulnerabilit\195\169 : %s !", |
||
246 | vulnerability_warning = "Vuln\195\169rabilit\195\169 aux sorts modifi\195\169e !", |
||
247 | frenzy_message = "Alerte fr\195\169n\195\169sie !", |
||
248 | enrage_warning = "Enragement imminent !", |
||
249 | |||
250 | breath1 = "Trou de temps", |
||
251 | breath2 = "Acide corrosif", |
||
252 | breath3 = "Enflammer la chair", |
||
253 | breath4 = "Incin\195\169rer", |
||
254 | breath5 = "Br\195\187lure de givre", |
||
255 | } end ) |
||
256 | |||
257 | ---------------------------------- |
||
258 | -- Module Declaration -- |
||
259 | ---------------------------------- |
||
260 | |||
261 | BigWigsChromaggus = BigWigs:NewModule(boss) |
||
262 | BigWigsChromaggus.zonename = AceLibrary("Babble-Zone-2.2")["Blackwing Lair"] |
||
263 | BigWigsChromaggus.enabletrigger = boss |
||
264 | BigWigsChromaggus.toggleoptions = { "enrage", "frenzy", "breath", "vulnerability", "bosskill"} |
||
265 | BigWigsChromaggus.revision = tonumber(string.sub("$Revision: 16721 $", 12, -3)) |
||
266 | |||
267 | ------------------------------ |
||
268 | -- Initialization -- |
||
269 | ------------------------------ |
||
270 | |||
271 | function BigWigsChromaggus:OnEnable() |
||
272 | -- in the module itself for resetting via schedule |
||
273 | self.vulnerability = nil |
||
274 | twenty = nil |
||
275 | |||
276 | self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE") |
||
277 | self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE") |
||
278 | self:RegisterEvent("CHAT_MSG_SPELL_SELF_DAMAGE", "PlayerDamageEvents") |
||
279 | self:RegisterEvent("CHAT_MSG_SPELL_PET_DAMAGE", "PlayerDamageEvents") |
||
280 | self:RegisterEvent("CHAT_MSG_SPELL_PARTY_DAMAGE", "PlayerDamageEvents") |
||
281 | self:RegisterEvent("CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE", "PlayerDamageEvents") |
||
282 | self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath") |
||
283 | self:RegisterEvent("UNIT_HEALTH") |
||
284 | |||
285 | self:RegisterEvent("BigWigs_RecvSync") |
||
286 | self:TriggerEvent("BigWigs_ThrottleSync", "ChromaggusBreath", 10) |
||
287 | end |
||
288 | |||
289 | function BigWigsChromaggus:UNIT_HEALTH( msg ) |
||
290 | if self.db.profile.enrage and UnitName(msg) == boss then |
||
291 | local health = UnitHealth(msg) |
||
292 | if health > 20 and health <= 23 and not twenty then |
||
293 | if self.db.profile.enrage then self:TriggerEvent("BigWigs_Message", L["enrage_warning"], "Important") end |
||
294 | twenty = true |
||
295 | elseif health > 40 and twenty then |
||
296 | twenty = nil |
||
297 | end |
||
298 | end |
||
299 | end |
||
300 | |||
301 | function BigWigsChromaggus:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE( msg ) |
||
302 | local _,_, spellName = string.find(msg, L["breath_trigger"]) |
||
303 | if spellName then |
||
304 | local breath = L:HasReverseTranslation(spellName) and L:GetReverseTranslation(spellName) or nil |
||
305 | if not breath then return end |
||
306 | breath = string.sub(breath, -1) |
||
307 | self:TriggerEvent("BigWigs_SendSync", "ChromaggusBreath "..breath) |
||
308 | end |
||
309 | end |
||
310 | |||
311 | function BigWigsChromaggus:BigWigs_RecvSync(sync, spellId) |
||
312 | if sync ~= "ChromaggusBreath" or not spellId or not self.db.profile.breath then return end |
||
313 | |||
314 | local spellName = L:HasTranslation("breath"..spellId) and L["breath"..spellId] or nil |
||
315 | if not spellName then return end |
||
316 | |||
317 | self:TriggerEvent("BigWigs_StartBar", self, string.format( L["castingbar"], spellName), 2 ) |
||
318 | self:TriggerEvent("BigWigs_Message", string.format(L["breath_message"], spellName), "Important") |
||
319 | self:ScheduleEvent("bwchromaggusbreath"..spellName, "BigWigs_Message", 50, string.format(L["breath_warning"], spellName), "Important") |
||
320 | self:TriggerEvent("BigWigs_StartBar", self, spellName, 60, L["icon"..spellId]) |
||
321 | end |
||
322 | |||
323 | function BigWigsChromaggus:CHAT_MSG_MONSTER_EMOTE(msg) |
||
324 | if msg == L["frenzy_trigger"] and self.db.profile.frenzy then |
||
325 | self:TriggerEvent("BigWigs_Message", L["frenzy_message"], "Important") |
||
326 | elseif msg == L["vulnerability_trigger"] then |
||
327 | if self.db.profile.vulnerability then |
||
328 | self:TriggerEvent("BigWigs_Message", L["vulnerability_warning"], "Positive") |
||
329 | end |
||
330 | self:ScheduleEvent(function() BigWigsChromaggus.vulnerability = nil end, 2.5) |
||
331 | end |
||
332 | end |
||
333 | |||
334 | if (GetLocale() == "koKR") then |
||
335 | function BigWigsChromaggus:PlayerDamageEvents(msg) |
||
336 | if (not self.vulnerability) then |
||
337 | local _,_,_, dmg, school, type = string.find(msg, L["vulnerability_test"]) |
||
338 | if ( type == L["hit"] or type == L["crit"] ) and tonumber(dmg or "") and school then |
||
339 | if (tonumber(dmg) >= 550 and type == L["hit"]) or (tonumber(dmg) >= 1100 and type == L["crit"]) then |
||
340 | self.vulnerability = school |
||
341 | if self.db.profile.vulnerability then self:TriggerEvent("BigWigs_Message", format(L["vulnerability_message"], school), "Positive") end |
||
342 | end |
||
343 | end |
||
344 | end |
||
345 | end |
||
346 | else |
||
347 | function BigWigsChromaggus:PlayerDamageEvents(msg) |
||
348 | if (not self.vulnerability) then |
||
349 | local _,_, type, dmg, school = string.find(msg, L["vulnerability_test"]) |
||
350 | if ( type == L["hit"] or type == L["crit"] ) and tonumber(dmg or "") and school then |
||
351 | if (tonumber(dmg) >= 550 and type == L["hit"]) or (tonumber(dmg) >= 1100 and type == L["crit"]) then |
||
352 | self.vulnerability = school |
||
353 | if self.db.profile.vulnerability then self:TriggerEvent("BigWigs_Message", format(L["vulnerability_message"], school), "Positive") end |
||
354 | end |
||
355 | end |
||
356 | end |
||
357 | end |
||
358 | end |
||
359 |