vanilla-wow-addons – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Majordomo_OnLoad"); |
2 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_BaronGeddon_OnLoad"); |
||
3 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Magmadar_OnLoad"); |
||
4 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Gehennas_OnLoad"); |
||
5 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Ragnaros_OnLoad"); |
||
6 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Shazzrah_OnLoad"); |
||
7 | tinsert(CT_RABoss_ModsToLoad, "CT_RABoss_Lucifron_OnLoad"); |
||
8 | |||
9 | -- Majordomo |
||
10 | function CT_RABoss_Majordomo_OnLoad() |
||
11 | -- This adds the mod to the listing. The first parameter is the mod name, the second is the description, and the third is the initial status (nil for off, 1 for on). |
||
12 | -- The fourth parameter is for the zone, which is used to sort the mods into categories in the Boss Mods menu. |
||
13 | CT_RABoss_AddMod("Majordomo", CT_RABOSS_DOMO_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
14 | |||
15 | -- This adds an event to the mod. The second parameter is obviously the event, and the third is the function which should be called when the event is called. |
||
16 | CT_RABoss_AddEvent("Majordomo", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_Majordomo_EventHandler); |
||
17 | CT_RABoss_AddEvent("Majordomo", "CHAT_MSG_SPELL_AURA_GONE_OTHER", CT_RABoss_Majordomo_EventHandler); |
||
18 | |||
19 | -- This adds a dropdown button when you right-click the mod in the boss mod listing. |
||
20 | -- The second parameter is either 1) a table, where the first index is the title of the button, and the second the tooltip description, or 2) just the title as a string. |
||
21 | -- The third parameter is a function or variable which is called to check if the button should be checked or not. Look up the function "CT_RABoss_ModInfo" for info on how that works. If it's a variable, it will just check that value (nil/false = unchecked, other = checked) |
||
22 | -- The fourth parameter is the parameter which is sent as the second parameter to the third parameter in case it is a function, and to the fifth parameter as the second parameter too. |
||
23 | -- The fifth parameter is the function called when you press the button. The parameters passed to this function is the same as the third parameter (in case that is a function), #1 being modName and #2 being the optional third parameter (below "announce"). |
||
24 | CT_RABoss_AddDropDownButton("Majordomo", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
25 | CT_RABoss_AddDropDownButton("Majordomo", { "Hide 5 second warning", "Hides the 5 second warning from being announced." }, "CT_RABoss_ModInfo", "priorWarning", "CT_RABoss_SetInfo"); |
||
26 | end |
||
27 | |||
28 | function CT_RABoss_Majordomo_EventHandler(event) |
||
29 | if ( not CT_RABoss_Mods["Majordomo"] or not CT_RABoss_Mods["Majordomo"]["status"] or not CT_RABoss_Mods["Majordomo"].enabled ) then |
||
30 | return; |
||
31 | end |
||
32 | if ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" ) then |
||
33 | if ( string.find(arg1, CT_RABOSS_DOMO_REFLECT_GAIN) and not CT_RABoss_Mods["Majordomo"]["AurasUp"] ) then |
||
34 | CT_RABoss_Mods["Majordomo"]["AurasUp"] = 1; |
||
35 | CT_RABoss_Announce("*** MAGIC REFLECTION FOR 10 SECONDS ***", CT_RABoss_Mods["Majordomo"]["announce"]); |
||
36 | CT_RABoss_PlaySound(3); |
||
37 | CT_RABoss_Schedule("CT_RABoss_Majordomo_EventHandler", 25, "priorWarning"); |
||
38 | elseif ( string.find(arg1, CT_RABOSS_DOMO_DMGSHIELD_GAIN) and not CT_RABoss_Mods["Majordomo"]["AurasUp"] ) then |
||
39 | CT_RABoss_Mods["Majordomo"]["AurasUp"] = 2; |
||
40 | CT_RABoss_Announce(CT_RABOSS_DOMO_DMGSHIELDWARN, CT_RABoss_Mods["Majordomo"]["announce"]); |
||
41 | CT_RABoss_PlaySound(3); |
||
42 | CT_RABoss_Schedule("CT_RABoss_Majordomo_EventHandler", 25, "priorWarning"); |
||
43 | end |
||
44 | elseif ( event == "CHAT_MSG_SPELL_AURA_GONE_OTHER" and CT_RABoss_Mods["Majordomo"]["AurasUp"] ) then |
||
45 | if ( string.find(arg1, CT_RABOSS_DOMO_REFLECT_FADE) or string.find(arg1, CT_RABOSS_DOMO_DMGSHIELD_FADE) ) then |
||
46 | CT_RABoss_Announce("*** " .. CT_RABOSS_DOMO_SHIELDS[CT_RABoss_Mods["Majordomo"]["AurasUp"]] .. CT_RABOSS_DOMO_SHIELD_DOWN, CT_RABoss_Mods["Majordomo"]["announce"]); |
||
47 | CT_RABoss_PlaySound(2); |
||
48 | CT_RABoss_Mods["Majordomo"]["AurasUp"] = nil; |
||
49 | end |
||
50 | elseif ( event == "priorWarning" and not CT_RABoss_Mods["Majordomo"]["priorWarning"] ) then |
||
51 | CT_RABoss_Announce(CT_RABOSS_DOMO_5SECWARN, CT_RABoss_Mods["Majordomo"]["announce"]); |
||
52 | CT_RABoss_PlaySound(3); |
||
53 | end |
||
54 | end |
||
55 | |||
56 | -- Baron Geddon |
||
57 | function CT_RABoss_BaronGeddon_OnLoad() |
||
58 | CT_RABoss_AddMod("Baron Geddon", CT_RABOSS_BARON_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
59 | CT_RABoss_AddEvent("Baron Geddon", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_BaronGeddon_EventHandler); |
||
60 | CT_RABoss_AddEvent("Baron Geddon", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_BaronGeddon_EventHandler); |
||
61 | CT_RABoss_AddEvent("Baron Geddon", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_BaronGeddon_EventHandler); |
||
62 | |||
63 | CT_RABoss_AddDropDownButton("Baron Geddon", { CT_RABOSS_BARON_ALERT_NEARBY, CT_RABOSS_BARON_ALERT_NEARBY_INFO }, "CT_RABoss_ModInfo", "alertNearby", "CT_RABoss_SetInfo"); |
||
64 | CT_RABoss_AddDropDownButton("Baron Geddon", { CT_RABOSS_BARON_TELL_TARGET, CT_RABOSS_BARON_TELL_TARGET_INFO }, "CT_RABoss_ModInfo", "sendTell", "CT_RABoss_SetInfo"); |
||
65 | |||
66 | CT_RABoss_SetVar("Baron Geddon", "alertNearby", 1); |
||
67 | end |
||
68 | |||
69 | function CT_RABoss_BaronGeddon_EventHandler(event) |
||
70 | if ( not CT_RABoss_Mods["Baron Geddon"] or not CT_RABoss_Mods["Baron Geddon"]["status"] or not CT_RABoss_Mods["Baron Geddon"].enabled ) then |
||
71 | return; |
||
72 | end |
||
73 | if ( event == "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" or ( ( event == "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" or event == "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" ) and CT_RABoss_Mods["Baron Geddon"]["alertNearby"] ) ) then |
||
74 | local iStart, iEnd, sPlayer, sType = string.find(arg1, CT_RABOSS_BARON_AFFLICT_BOMB); |
||
75 | if ( sPlayer and sType ) then |
||
76 | if ( sPlayer == CT_RABOSS_BARON_AFFLICT_SELF_MATCH1 and sType == CT_RABOSS_BARON_AFFLICT_SELF_MATCH2 ) then |
||
77 | CT_RABoss_Announce(CT_RABOSS_BARON_BOMBWARNYOU); |
||
78 | CT_RABoss_Announce(CT_RABOSS_BARON_BOMBWARNYOU); |
||
79 | CT_RABoss_PlaySound(2); |
||
80 | elseif ( CT_RABoss_Mods["Baron Geddon"]["alertNearby"] or CT_RABoss_Mods["Baron Geddon"]["sendTell"] ) then |
||
81 | if ( CT_RABoss_Mods["Baron Geddon"]["sendTell"] ) then |
||
82 | SendChatMessage(CT_RABOSS_BARON_BOMBWARNTELL, "WHISPER", nil, sPlayer); |
||
83 | end |
||
84 | if ( CT_RABoss_Mods["Baron Geddon"]["alertNearby"] ) then |
||
85 | CT_RABoss_Announce(sPlayer .. CT_RABOSS_BARON_BOMBWARNRAID); |
||
86 | CT_RABoss_PlaySound(2); |
||
87 | end |
||
88 | end |
||
89 | end |
||
90 | end |
||
91 | end |
||
92 | |||
93 | -- Magmadar |
||
94 | function CT_RABoss_Magmadar_OnLoad() |
||
95 | CT_RABoss_AddMod("Magmadar", CT_RABOSS_MAGMADAR_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
96 | CT_RABoss_AddEvent("Magmadar", "CHAT_MSG_MONSTER_EMOTE", CT_RABoss_Magmadar_EventHandler); -- Frenzy |
||
97 | CT_RABoss_AddEvent("Magmadar", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Magmadar_EventHandler); -- Fear |
||
98 | CT_RABoss_AddEvent("Magmadar", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Magmadar_EventHandler); -- Fear |
||
99 | CT_RABoss_AddEvent("Magmadar", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Magmadar_EventHandler); -- Fear |
||
100 | CT_RABoss_AddDropDownButton("Magmadar", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
101 | CT_RABoss_AddDropDownButton("Magmadar", { "Frenzy Alert", "When enabled, alerts you of Magmadar's Frenzy as well as the Fear." }, "CT_RABoss_ModInfo", "frenzyAlert", "CT_RABoss_SetInfo"); |
||
102 | end |
||
103 | |||
104 | function CT_RABoss_Magmadar_EventHandler(event) |
||
105 | if ( not CT_RABoss_Mods["Magmadar"] or not CT_RABoss_Mods["Magmadar"]["status"] or not CT_RABoss_Mods["Magmadar"].enabled ) then |
||
106 | return; |
||
107 | end |
||
108 | if ( (event == "CHAT_MSG_MONSTER_EMOTE") and (arg1 == CT_RABOSS_MAGMADAR_FRENZY) and (CT_RABoss_Mods["Magmadar"]["frenzyAlert"]) ) then |
||
109 | CT_RABoss_Announce(CT_RABOSS_MAGMADAR_TRANQSHOT, CT_RABoss_Mods["Magmadar"]["announce"]); |
||
110 | CT_RABoss_PlaySound(2); |
||
111 | |||
112 | elseif ( event == "preFearWarning" ) then |
||
113 | CT_RABoss_Mods["Magmadar"]["FearTrip"] = false; |
||
114 | CT_RABoss_Announce(CT_RABOSS_MAGMADAR_5SECWARN, CT_RABoss_Mods["Magmadar"]["announce"]); |
||
115 | CT_RABoss_PlaySound(3); |
||
116 | |||
117 | elseif ( (string.find(arg1, CT_RABOSS_MAGMADAR_PANIC)) and not CT_RABoss_Mods["Magmadar"]["FearTrip"] ) then |
||
118 | CT_RABoss_Mods["Magmadar"]["FearTrip"] = true; |
||
119 | CT_RABoss_Announce(CT_RABOSS_MAGMADAR_30SECWARN, CT_RABoss_Mods["Magmadar"]["announce"]); |
||
120 | CT_RABoss_PlaySound(2); |
||
121 | CT_RABoss_Schedule("CT_RABoss_Magmadar_EventHandler", 25, "preFearWarning"); |
||
122 | end |
||
123 | end |
||
124 | |||
125 | -- Gehennas |
||
126 | function CT_RABoss_Gehennas_OnLoad() |
||
127 | CT_RABoss_AddMod("Gehennas", CT_RABOSS_GEHENNAS_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
128 | CT_RABoss_AddEvent("Gehennas", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Gehennas_EventHandler); |
||
129 | CT_RABoss_AddEvent("Gehennas", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Gehennas_EventHandler); |
||
130 | CT_RABoss_AddEvent("Gehennas", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Gehennas_EventHandler); |
||
131 | CT_RABoss_AddDropDownButton("Gehennas", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
132 | end |
||
133 | |||
134 | function CT_RABoss_Gehennas_EventHandler(event) |
||
135 | if ( not CT_RABoss_Mods["Gehennas"] or not CT_RABoss_Mods["Gehennas"]["status"] or not CT_RABoss_Mods["Gehennas"].enabled ) then |
||
136 | return; |
||
137 | end |
||
138 | if ( event == "preCurseWarning" ) then |
||
139 | CT_RABoss_Mods["Gehennas"]["CurseTrip"] = false; |
||
140 | CT_RABoss_Announce(CT_RABOSS_GEHENNAS_5SECWARN, CT_RABoss_Mods["Gehennas"]["announce"]); |
||
141 | CT_RABoss_PlaySound(3); |
||
142 | |||
143 | elseif ( (string.find(arg1, CT_RABOSS_GEHENNAS_CURSE)) and not CT_RABoss_Mods["Gehennas"]["CurseTrip"] ) then |
||
144 | CT_RABoss_Mods["Gehennas"]["CurseTrip"] = true; |
||
145 | CT_RABoss_Announce(CT_RABOSS_GEHENNAS_30SECWARN, CT_RABoss_Mods["Gehennas"]["announce"]); |
||
146 | CT_RABoss_PlaySound(2); |
||
147 | CT_RABoss_Schedule("CT_RABoss_Gehennas_EventHandler", 25, "preCurseWarning"); |
||
148 | end |
||
149 | end |
||
150 | |||
151 | -- Ragnaros |
||
152 | -- TODO: missing autostart for non-first attempts and detection of early son kills (use ragnaros melee/spell events to trigger) |
||
153 | function CT_RABoss_Ragnaros_OnLoad() |
||
154 | CT_RABoss_AddMod("Ragnaros", CT_RABOSS_RAGNAROS_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
155 | CT_RABoss_AddEvent("Ragnaros", "CHAT_MSG_MONSTER_YELL", CT_RABoss_Ragnaros_EventHandler); |
||
156 | CT_RABoss_AddDropDownButton("Ragnaros", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
157 | |||
158 | CT_RA_RegisterSlashCmd("/ragstart", "Starts the Ragnaros boss mod timer. This needs to be used when you engage after the first attempt, should you wipe.", 30, "RAGSTART", function() |
||
159 | CT_RABoss_UnSchedule("CT_RABoss_Ragnaros_EventHandler"); |
||
160 | CT_RABoss_Ragnaros_EventHandler("RagUp") |
||
161 | end, "/ragstart"); |
||
162 | end |
||
163 | |||
164 | function CT_RABoss_Ragnaros_EventHandler(event) |
||
165 | if ( not CT_RABoss_Mods["Ragnaros"] or not CT_RABoss_Mods["Ragnaros"]["status"] or not CT_RABoss_Mods["Ragnaros"].enabled ) then |
||
166 | return; |
||
167 | end |
||
168 | -- Rag Emerge |
||
169 | if ( event == "RagUp" or ( (event == "CHAT_MSG_MONSTER_YELL") and (string.find(arg1, CT_RABOSS_RAGNAROS_START)) ) ) then |
||
170 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_EMERGE, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
171 | CT_RABoss_PlaySound(1); |
||
172 | CT_RABoss_UnSchedule("CT_RABoss_Ragnaros_EventHandler"); -- Remove outstanding RagUpWarn if all sons die before 15 second warning |
||
173 | CT_RABoss_Schedule("CT_RABoss_Ragnaros_EventHandler", 120, "RagWarn1"); |
||
174 | CT_RABoss_Schedule("CT_RABoss_Ragnaros_EventHandler", 160, "RagWarn2"); |
||
175 | |||
176 | elseif ( event == "RagWarn1" ) then |
||
177 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_60SECSSONS, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
178 | CT_RABoss_PlaySound(1); |
||
179 | |||
180 | elseif ( event == "RagWarn2" ) then |
||
181 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_20SECSSONS, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
182 | CT_RABoss_PlaySound(1); |
||
183 | |||
184 | -- WOR Warning |
||
185 | elseif ( event == "preRagKB" ) then |
||
186 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_5SECSKNOCKB, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
187 | CT_RABoss_PlaySound(3); |
||
188 | |||
189 | -- WOR |
||
190 | elseif ( (event == "CHAT_MSG_MONSTER_YELL") and (string.find(arg1, CT_RABOSS_RAGNAROS_KNOCKBACK)) ) then |
||
191 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_KNOCKB, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
192 | CT_RABoss_PlaySound(2); |
||
193 | CT_RABoss_Schedule("CT_RABoss_Ragnaros_EventHandler", 23, "preRagKB"); |
||
194 | |||
195 | -- Rag Submerge |
||
196 | elseif ( (event == "CHAT_MSG_MONSTER_YELL") and (string.find(arg1, CT_RABOSS_RAGNAROS_SONS)) ) then |
||
197 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_SUBMERGE, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
198 | CT_RABoss_PlaySound(1); |
||
199 | CT_RABoss_UnSchedule("CT_RABoss_Ragnaros_EventHandler"); -- remove outstanding WOR warning |
||
200 | CT_RABoss_Schedule("CT_RABoss_Ragnaros_EventHandler", 75, "RagUpWarn"); |
||
201 | CT_RABoss_Schedule("CT_RABoss_Ragnaros_EventHandler", 90, "RagUp"); |
||
202 | |||
203 | elseif ( event == "RagUpWarn" ) then |
||
204 | CT_RABoss_Announce(CT_RABOSS_RAGNAROS_15SECSUP, CT_RABoss_Mods["Ragnaros"]["announce"]); |
||
205 | CT_RABoss_PlaySound(1); |
||
206 | end |
||
207 | end |
||
208 | |||
209 | -- Shazzrah |
||
210 | function CT_RABoss_Shazzrah_OnLoad() |
||
211 | CT_RABoss_AddMod("Shazzrah", CT_RABOSS_SHAZZRAH_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
212 | CT_RABoss_AddEvent("Shazzrah", "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", CT_RABoss_Shazzrah_EventHandler); |
||
213 | CT_RABoss_AddDropDownButton("Shazzrah", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
214 | end |
||
215 | |||
216 | function CT_RABoss_Shazzrah_EventHandler(event) |
||
217 | if ( not CT_RABoss_Mods["Shazzrah"] or not CT_RABoss_Mods["Shazzrah"]["status"] or not CT_RABoss_Mods["Shazzrah"].enabled ) then |
||
218 | return; |
||
219 | end |
||
220 | if ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" and string.find(arg1, CT_RABOSS_SHAZZRAH_BLINK) ) then |
||
221 | CT_RABoss_Announce(CT_RABOSS_SHAZZRAH_30SECSBLINK, CT_RABoss_Mods["Shazzrah"]["announce"]); |
||
222 | CT_RABoss_PlaySound(2); |
||
223 | CT_RABoss_Schedule("CT_RABoss_Shazzrah_EventHandler", 25, "preBlink"); |
||
224 | elseif ( event == "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" and string.find(arg1, CT_RABOSS_SHAZZRAH_DEADENMAGIC) ) then |
||
225 | CT_RABoss_Announce(CT_RABOSS_SHAZZRAH_SELFBUFF, CT_RABoss_Mods["Shazzrah"]["announce"]); |
||
226 | CT_RABoss_PlaySound(1); |
||
227 | elseif ( event == "preBlink" ) then |
||
228 | CT_RABoss_Announce(CT_RABOSS_SHAZZRAH_5SECSBLINK, CT_RABoss_Mods["Shazzrah"]["announce"]); |
||
229 | CT_RABoss_PlaySound(3); |
||
230 | end |
||
231 | end |
||
232 | |||
233 | -- Lucifron |
||
234 | function CT_RABoss_Lucifron_OnLoad() |
||
235 | CT_RABoss_AddMod("Lucifron", CT_RABOSS_LUCIFRON_INFO, 1, CT_RABOSS_LOCATIONS_MOLTENCORE); |
||
236 | CT_RABoss_AddEvent("Lucifron", "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", CT_RABoss_Lucifron_EventHandler); |
||
237 | CT_RABoss_AddEvent("Lucifron", "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", CT_RABoss_Lucifron_EventHandler); |
||
238 | CT_RABoss_AddEvent("Lucifron", "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", CT_RABoss_Lucifron_EventHandler); |
||
239 | CT_RABoss_AddDropDownButton("Lucifron", { CT_RABOSS_ANNOUNCE, CT_RABOSS_ANNOUNCE_INFO .. CT_RABOSS_REQ_LEADER_OR_PROM }, "CT_RABoss_ModInfo", "announce", "CT_RABoss_SetInfo"); |
||
240 | CT_RABoss_AddDropDownButton("Lucifron", { CT_RABOSS_LUCIFRON_DOOMMENU, CT_RABOSS_LUCIFRON_DOOMMENU_INFO }, "CT_RABoss_ModInfo", "enableDoom", "CT_RABoss_SetInfo"); |
||
241 | end |
||
242 | |||
243 | function CT_RABoss_Lucifron_EventHandler(event) |
||
244 | if ( not CT_RABoss_Mods["Lucifron"] or not CT_RABoss_Mods["Lucifron"]["status"] or not CT_RABoss_Mods["Lucifron"].enabled ) then |
||
245 | return; |
||
246 | end |
||
247 | if ( event == "preCurseWarning" ) then |
||
248 | CT_RABoss_Mods["Lucifron"]["CurseTrip"] = false; |
||
249 | CT_RABoss_Announce(CT_RABOSS_LUCIFRON_5SECSCURSE, CT_RABoss_Mods["Lucifron"]["announce"]); |
||
250 | CT_RABoss_PlaySound(3); |
||
251 | elseif ( event == "impendingWarning" and CT_RABoss_Mods["Lucifron"]["enableDoom"] ) then |
||
252 | CT_RABoss_Mods["Lucifron"]["ImpendingTrip"] = false; |
||
253 | CT_RABoss_Announce(CT_RABOSS_LUCIFRON_5SECSDOOM, CT_RABoss_Mods["Lucifron"]["announce"]); |
||
254 | CT_RABoss_PlaySound(3); |
||
255 | elseif ( ( string.find(arg1, CT_RABOSS_LUCIFRON_CURSE) ) and not CT_RABoss_Mods["Lucifron"]["CurseTrip"] ) then |
||
256 | CT_RABoss_Mods["Lucifron"]["CurseTrip"] = true; |
||
257 | CT_RABoss_Announce(CT_RABOSS_LUCIFRON_30SECSCURSE, CT_RABoss_Mods["Lucifron"]["announce"]); |
||
258 | CT_RABoss_PlaySound(2); |
||
259 | CT_RABoss_Schedule("CT_RABoss_Lucifron_EventHandler", 15, "preCurseWarning"); |
||
260 | elseif ( ( string.find(arg1, CT_RABOSS_LUCIFRON_DOOM) ) and not CT_RABoss_Mods["Lucifron"]["ImpendingTrip"] and CT_RABoss_Mods["Lucifron"]["enableDoom"] ) then |
||
261 | CT_RABoss_Mods["Lucifron"]["ImpendingTrip"] = true; |
||
262 | CT_RABoss_Announce(CT_RABOSS_LUCIFRON_30SECSDOOM, CT_RABoss_Mods["Lucifron"]["announce"]); |
||
263 | CT_RABoss_PlaySound(1); |
||
264 | CT_RABoss_Schedule("CT_RABoss_Lucifron_EventHandler", 15, "impendingWarning"); |
||
265 | end |
||
266 | end |