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")["Grand Widow Faerlina"] |
||
6 | local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss) |
||
7 | |||
8 | local started = nil |
||
9 | |||
10 | ---------------------------- |
||
11 | -- Localization -- |
||
12 | ---------------------------- |
||
13 | |||
14 | L:RegisterTranslations("enUS", function() return { |
||
15 | cmd = "Faerlina", |
||
16 | |||
17 | silence_cmd = "silence", |
||
18 | silence_name = "Silence Alert", |
||
19 | silence_desc = "Warn for silence", |
||
20 | |||
21 | enrage_cmd = "enrage", |
||
22 | enrage_name = "Enrage Alert", |
||
23 | enrage_desc = "Warn for Enrage", |
||
24 | |||
25 | starttrigger1 = "Kneel before me, worm!", |
||
26 | starttrigger2 = "Slay them in the master's name!", |
||
27 | starttrigger3 = "You cannot hide from me!", |
||
28 | starttrigger4 = "Run while you still can!", |
||
29 | |||
30 | silencetrigger = "Grand Widow Faerlina is afflicted by Widow's Embrace.", -- EDITED it affects her too. |
||
31 | enragetrigger = "Grand Widow Faerlina gains Enrage.", |
||
32 | enragefade = "Enrage fades from Grand Widow Faerlina.", |
||
33 | |||
34 | startwarn = "Grand Widow Faerlina engaged, 60 seconds to enrage!", |
||
35 | enragewarn15sec = "15 seconds until enrage!", |
||
36 | enragewarn = "Enrage!", |
||
37 | enrageremovewarn = "Enrage removed! %d seconds until next!", -- added |
||
38 | silencewarn = "Silence! Delaying Enrage!", |
||
39 | silencewarnnodelay = "Silence!", |
||
40 | silencewarn5sec = "Silence ends in 5 sec", |
||
41 | |||
42 | enragebar = "Enrage", |
||
43 | silencebar = "Silence", |
||
44 | } end ) |
||
45 | |||
46 | L:RegisterTranslations("deDE", function() return { |
||
47 | silence_name = "Stille", |
||
48 | silence_desc = "Warnung vor Stille", |
||
49 | |||
50 | enrage_name = "Wutanfall", |
||
51 | enrage_desc = "Warnung, wenn Gro\195\159witwe Faerlina w\195\188tend wird.", |
||
52 | |||
53 | starttrigger1 = "Kniet nieder, Wurm!", |
||
54 | starttrigger2 = "T\195\182tet sie im Namen des Meisters!", |
||
55 | starttrigger3 = "Ihr k\195\182nnt euch nicht vor mir verstecken!", |
||
56 | starttrigger4 = "Flieht, solange ihr noch k\195\182nnt", |
||
57 | |||
58 | silencetrigger = "Gro\195\159witwe Faerlina ist von Umarmung der Witwe betroffen.", -- EDITED it affects her too. |
||
59 | enragetrigger = "Gro\195\159witwe Faerlina bekommt 'Wutanfall'.", |
||
60 | enragefade = "Wutanfall schwindet von Gro\195\159witwe Faerlina", |
||
61 | |||
62 | startwarn = "Gro\195\159witwe Faerlina angegriffen! Wutanfall in 60 Sekunden!", |
||
63 | enragewarn15sec = "Wutanfall in 15 Sekunden!", |
||
64 | enragewarn = "Wutanfall!", |
||
65 | enrageremovewarn = "Wutanfall vorbei! N\195\164chster in %d Sekunden!", |
||
66 | silencewarn = "Stille! Wutanfall verz\195\182gert!", |
||
67 | silencewarnnodelay = "Stille!", |
||
68 | silencewarn5sec = "Stille endet in 5 Sekunden", |
||
69 | |||
70 | enragebar = "Wutanfall", |
||
71 | silencebar = "Stille", |
||
72 | } end ) |
||
73 | |||
74 | L:RegisterTranslations("koKR", function() return { |
||
75 | |||
76 | silence_name = "침묵 경고", |
||
77 | silence_desc = "침묵에 대한 경고", |
||
78 | |||
79 | enrage_name = "격노 경고", |
||
80 | enrage_desc = "격노에 대한 경고", |
||
81 | |||
82 | starttrigger1 = "내 앞에 무릎을 꿇어라, 벌레들아!", |
||
83 | starttrigger2 = "주인님의 이름으로 처단하라!", |
||
84 | starttrigger3 = "나에게서 도망칠 수는 없다!", |
||
85 | starttrigger4 = "두 발이 성할 때 도망쳐라!", |
||
86 | |||
87 | silencetrigger = "낙스라마스 숭배자|1이;가; 귀부인의 은총에 걸렸습니다.", -- EDITED it affects her too. |
||
88 | enragetrigger = "귀부인 팰리나|1이;가; 격노 효과를 얻었습니다.", |
||
89 | enragefade = "귀부인 펠리나 격노 사라짐", |
||
90 | |||
91 | startwarn = "귀부인 팰리나 전투 시작! 60초 후 격노!", |
||
92 | enragewarn15sec = "15초후 격노!", |
||
93 | enragewarn = "격노!", |
||
94 | enrageremovewarn = "격노 사라짐! 다음 격노 %d초 후", -- added |
||
95 | silencewarn = "침묵! 격노 지연!", |
||
96 | silencewarnnodelay = "침묵!", |
||
97 | silencewarn5sec = "5초후 침묵 종료!", |
||
98 | |||
99 | enragebar = "격노", |
||
100 | silencebar = "침묵", |
||
101 | } end ) |
||
102 | |||
103 | L:RegisterTranslations("zhCN", function() return { |
||
104 | silence_name = "沉默警报", |
||
105 | silence_desc = "沉默警报", |
||
106 | |||
107 | enrage_name = "激怒警报", |
||
108 | enrage_desc = "激怒警报", |
||
109 | |||
110 | starttrigger1 = "跪下求饶吧,懦夫!", |
||
111 | starttrigger2 = "以主人之名,杀了他们!", |
||
112 | starttrigger3 = "休想从我面前逃掉!", |
||
113 | starttrigger4 = "逃啊!有本事就逃啊!", |
||
114 | |||
115 | silencetrigger = "黑女巫法琳娜受到了黑女巫的拥抱效果的影响。", -- EDITED it affects her too. |
||
116 | enragetrigger = "黑女巫法琳娜获得了激怒的效果。", |
||
117 | enragefade = "激怒效果从黑女巫法琳娜身上消失。", |
||
118 | |||
119 | startwarn = "黑女巫法琳娜已激活 - 60秒后激怒!", |
||
120 | enragewarn15sec = "15秒后激怒!", |
||
121 | enragewarn = "激怒!", |
||
122 | enrageremovewarn = "激怒已移除 - %d后再次激怒", -- added |
||
123 | silencewarn = "沉默!延缓了激怒!", |
||
124 | silencewarnnodelay = "沉默!", |
||
125 | silencewarn5sec = "5秒后沉默结束!", |
||
126 | |||
127 | enragebar = "激怒", |
||
128 | silencebar = "沉默", |
||
129 | } end ) |
||
130 | |||
131 | L:RegisterTranslations("zhTW", function() return { |
||
132 | -- Grand Widow Faerlina 大寡婦費琳娜 |
||
133 | silence_name = "沉默警報", |
||
134 | silence_desc = "沉默警報", |
||
135 | |||
136 | enrage_name = "狂怒警報", |
||
137 | enrage_desc = "狂怒警報", |
||
138 | |||
139 | starttrigger1 = "跪下求饒吧,懦夫!", |
||
140 | starttrigger2 = "以主人之名,殺了他們!", |
||
141 | starttrigger3 = "休想從我面前逃掉!", |
||
142 | starttrigger4 = "逃啊!有本事就逃啊!", |
||
143 | |||
144 | silencetrigger = "大寡婦費琳娜受到寡婦之擁的傷害。", -- EDITED it affects her too. |
||
145 | enragetrigger = "大寡婦費琳娜獲得了狂怒的效果。", |
||
146 | enragefade = "狂怒效果從大寡婦費琳娜身上消失。", |
||
147 | |||
148 | startwarn = "大寡婦費琳娜已進入戰鬥 - 60 秒後狂怒!", |
||
149 | enragewarn15sec = "15 秒後狂怒!", |
||
150 | enragewarn = "狂怒!", |
||
151 | enrageremovewarn = "狂怒已移除 - %d 秒後再次狂怒", -- added |
||
152 | silencewarn = "沉默!延緩了狂怒!", |
||
153 | silencewarnnodelay = "沉默!", |
||
154 | silencewarn5sec = "5 秒後沉默結束!", |
||
155 | |||
156 | enragebar = "狂怒", |
||
157 | silencebar = "沉默", |
||
158 | } end ) |
||
159 | |||
160 | L:RegisterTranslations("frFR", function() return { |
||
161 | starttrigger1 = "genoux, vermisseau !", |
||
162 | starttrigger2 = "Tuez%-les au nom du ma\195\174tre !", |
||
163 | starttrigger3 = "Vous ne pouvez pas m'\195\169chapper !", |
||
164 | starttrigger4 = "Fuyez tant que vous le pouvez !", |
||
165 | |||
166 | silencetrigger = "Grande veuve Faerlina subit les effets de Etreinte de la veuve.", -- EDITED it affects her too. |
||
167 | enragetrigger = "Grande veuve Faerlina gagne Enrager.", |
||
168 | enragefade = "Enrager sur Grande veuve Faerlina vient de se dissiper.", |
||
169 | } end ) |
||
170 | |||
171 | ---------------------------------- |
||
172 | -- Module Declaration -- |
||
173 | ---------------------------------- |
||
174 | |||
175 | BigWigsFaerlina = BigWigs:NewModule(boss) |
||
176 | BigWigsFaerlina.zonename = AceLibrary("Babble-Zone-2.2")["Naxxramas"] |
||
177 | BigWigsFaerlina.enabletrigger = boss |
||
178 | BigWigsFaerlina.toggleoptions = {"silence", "enrage", "bosskill"} |
||
179 | BigWigsFaerlina.revision = tonumber(string.sub("$Revision: 15233 $", 12, -3)) |
||
180 | |||
181 | ------------------------------ |
||
182 | -- Initialization -- |
||
183 | ------------------------------ |
||
184 | |||
185 | function BigWigsFaerlina:OnEnable() |
||
186 | self.enragetime = 60 |
||
187 | self.enrageTimerStarted = 0 |
||
188 | self.silencetime = 30 |
||
189 | self.enraged = nil |
||
190 | |||
191 | started = nil |
||
192 | |||
193 | self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath") |
||
194 | self:RegisterEvent("CHAT_MSG_MONSTER_YELL") |
||
195 | self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS") |
||
196 | self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE") |
||
197 | self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe") |
||
198 | |||
199 | self:RegisterEvent("BigWigs_RecvSync") |
||
200 | self:TriggerEvent("BigWigs_ThrottleSync", "FaerlinaEnrage", 5) |
||
201 | self:TriggerEvent("BigWigs_ThrottleSync", "FaerlinaSilence", 5) |
||
202 | end |
||
203 | |||
204 | function BigWigsFaerlina:CHAT_MSG_MONSTER_YELL( msg ) |
||
205 | if not started and msg == L["starttrigger1"] or msg == L["starttrigger2"] or msg == L["starttrigger3"] or msg == L["starttrigger4"] then |
||
206 | self:TriggerEvent("BigWigs_Message", L["startwarn"], "Orange") |
||
207 | if self.db.profile.enrage then |
||
208 | self:ScheduleEvent("bwfaerlinaenrage15", "BigWigs_Message", self.enragetime - 15, L["enragewarn15sec"], "Important") |
||
209 | self:TriggerEvent("BigWigs_StartBar", self, L["enragebar"], self.enragetime, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy") |
||
210 | end |
||
211 | self.enrageTimerStarted = GetTime() |
||
212 | started = true |
||
213 | end |
||
214 | end |
||
215 | |||
216 | function BigWigsFaerlina:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS( msg ) |
||
217 | if msg == L["enragetrigger"] then |
||
218 | self:TriggerEvent("BigWigs_SendSync", "FaerlinaEnrage") |
||
219 | end |
||
220 | end |
||
221 | |||
222 | function BigWigsFaerlina:CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE( msg ) |
||
223 | if msg == L["silencetrigger"] then |
||
224 | self:TriggerEvent("BigWigs_SendSync", "FaerlinaSilence") |
||
225 | end |
||
226 | end |
||
227 | |||
228 | function BigWigsFaerlina:BigWigs_RecvSync( sync ) |
||
229 | if sync == "FaerlinaEnrage" then |
||
230 | if self.db.profile.enrage then |
||
231 | self:TriggerEvent("BigWigs_Message", L["enragewarn"], "Urgent") |
||
232 | end |
||
233 | self:TriggerEvent("BigWigs_StopBar", self, L["enragebar"]) |
||
234 | self:CancelScheduledEvent("bwfaerlinaenrage15") |
||
235 | if self.db.profile.enrage then |
||
236 | self:TriggerEvent("BigWigs_StartBar", self, L["enragebar"], self.enragetime, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy") |
||
237 | self:ScheduleEvent("bwfaerlinaenrage15", "BigWigs_Message", self.enragetime - 15, L["enragewarn15sec"], "Important") |
||
238 | end |
||
239 | self.enrageTimerStarted = GetTime() |
||
240 | self.enraged = true |
||
241 | elseif sync == "FaerlinaSilence" then |
||
242 | if not self.enraged then -- preemptive, 30s silence |
||
243 | |||
244 | --[[ The enrage timer should only be reset if it's less than 30sec |
||
245 | to her next enrage, because if you silence her when there's 30+ |
||
246 | sec to the enrage, it won't actually stop her from enraging. ]] |
||
247 | |||
248 | local currentTime = GetTime() |
||
249 | |||
250 | if self.db.profile.silence then |
||
251 | if (self.enrageTimerStarted + 30) < currentTime then |
||
252 | self:TriggerEvent("BigWigs_Message", L["silencewarnnodelay"], "Urgent") |
||
253 | else |
||
254 | self:TriggerEvent("BigWigs_Message", L["silencewarn"], "Urgent") |
||
255 | end |
||
256 | self:TriggerEvent("BigWigs_StartBar", self, L["silencebar"], self.silencetime, "Interface\\Icons\\Spell_Holy_Silence") |
||
257 | self:ScheduleEvent("bwfaerlinasilence5", "BigWigs_Message", self.silencetime -5, L["silencewarn5sec"], "Urgent") |
||
258 | end |
||
259 | if (self.enrageTimerStarted + 30) < currentTime then |
||
260 | if self.db.profile.enrage then |
||
261 | -- We SHOULD reset the enrage timer, since it's more than 30 |
||
262 | -- sec since enrage started. This is only visuals ofcourse. |
||
263 | self:TriggerEvent("BigWigs_StopBar", self, L["enragebar"]) |
||
264 | self:CancelScheduledEvent("bwfaerlinaenrage15") |
||
265 | self:ScheduleEvent( "bwfaerlinaenrage15", "BigWigs_Message", self.silencetime - 15, L["enragewarn15sec"], "Important") |
||
266 | self:TriggerEvent("BigWigs_StartBar", self, L["enragebar"], self.silencetime, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy") |
||
267 | end |
||
268 | self.enrageTimerStarted = currentTime |
||
269 | end |
||
270 | |||
271 | else -- Reactive enrage removed |
||
272 | if self.db.profile.enrage then |
||
273 | self:TriggerEvent("BigWigs_Message", string.format(L["enrageremovewarn"], self.enragetime), "Urgent") |
||
274 | end |
||
275 | if self.db.profile.silence then |
||
276 | self:TriggerEvent("BigWigs_StartBar", self, L["silencebar"], self.silencetime, "Interface\\Icons\\Spell_Holy_Silence") |
||
277 | self:ScheduleEvent("bwfaerlinasilence5", "BigWigs_Message", self.silencetime -5, L["silencewarn5sec"], "Urgent") |
||
278 | end |
||
279 | self.enraged = nil |
||
280 | end |
||
281 | end |
||
282 | end |
||
283 |