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")["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