SHOW:
|
|
- or go back to the newest paste.
1 | -- luacheck: globals Def GAMESTATE SCREENMAN | |
2 | ||
3 | local DefaultMods = '1.5x, overhead' | |
4 | ||
5 | -- format: { <beat>, 'len' or 'end', <len or end time>, <mod string>, <player number (optional, if not here, applies to all players)> } | |
6 | -- example: { 0, 'len', 9999, '*0.5 200% dizzy' } | |
7 | local SongMods = { | |
8 | { 0, 'end', 1, '*10 100% flip' }, | |
9 | { 1, 'end', 2, '*10 0% flip' }, | |
10 | { 2, 'end', 3, '*10 100% flip' }, | |
11 | { 3, 'end', 4, '*10 0% flip' }, | |
12 | { 4, 'end', 5, '*10 100% flip' }, | |
13 | { 5, 'end', 6, '*10 0% flip' }, | |
14 | { 6, 'end', 7, '*10 100% flip' }, | |
15 | { 7, 'end', 8, '*10 0% flip' }, | |
16 | { 8, 'end', 9, '*10 100% flip' }, | |
17 | { 9, 'end', 10, '*10 0% flip' }, | |
18 | { 10, 'end', 11, '*10 100% flip' }, | |
19 | { 11, 'end', 12, '*10 0% flip' }, | |
20 | { 12, 'end', 13, '*10 100% flip' }, | |
21 | { 13, 'end', 14, '*10 0% flip' }, | |
22 | { 14, 'end', 15, '*10 100% flip' }, | |
23 | { 15, 'end', 16, '*10 0% flip' }, | |
24 | { 16, 'end', 17, '*10 100% flip' }, | |
25 | { 17, 'end', 18, '*10 0% flip' }, | |
26 | { 18, 'end', 19, '*10 100% flip' }, | |
27 | { 19, 'end', 20, '*10 0% flip' }, | |
28 | { 20, 'end', 21, '*10 100% flip' }, | |
29 | { 21, 'end', 22, '*10 0% flip' }, | |
30 | { 22, 'end', 23, '*10 100% flip' }, | |
31 | { 23, 'end', 24, '*10 0% flip' }, | |
32 | { 24, 'end', 31, '*60 200% beat' }, | |
33 | { 30.5, 'end', 31.1, '*60000 0% beat' }, | |
34 | -- Post Flash | |
35 | { 30.75, 'end', 31, '*200 -800% mini' }, | |
36 | { 31, 'len', 1, '*245325313 15000% twirl' }, | |
37 | { 31.25, 'end', 33, '*50 0% mini' }, | |
38 | { 32, 'len', 1, '*24313 0% twirl' }, | |
39 | { 32.5, 'end', 32.6, '*554250 100% drunk' }, | |
40 | { 33.5, 'len', 5, '*1 -75% drunk' }, | |
41 | { 38.5, 'len', 0.5, '*8 50% split' }, | |
42 | { 38.5, 'len', 7, '*1 75% drunk' }, | |
43 | { 39, 'len', 0.5, '*8 0% split' }, | |
44 | { 39.5, 'len', 0.5, '*8 -50% split' }, | |
45 | { 39.5, 'len', 0.5, '*8 50% reverse' }, | |
46 | { 40, 'len', 0.5, '*8 0% split' }, | |
47 | { 40, 'len', 0.5, '*8 0% reverse' }, | |
48 | { 46.5, 'len', 0.5, '*8 50% reverse' }, | |
49 | { 46.5, 'len', 0.5, '*8 -50% split' }, | |
50 | { 47, 'len', 0.5, '*8 0% reverse' }, | |
51 | { 47, 'len', 0.5, '*8 0% split' }, | |
52 | { 47.5, 'len', 0.5, '*8 50% split' }, | |
53 | { 48, 'len', 0.5, '*8 0% split' }, | |
54 | { 48, 'len', 7, '*1 75% drunk' }, | |
55 | { 54.5, 'len', 0.5, '*8 50% split' }, | |
56 | { 55, 'len', 0.5, '*8 0% split' }, | |
57 | { 55, 'len', 3, '*1 -75% drunk' }, | |
58 | { 55.5, 'len', 0.5, '*8 -50% split' }, | |
59 | { 55.5, 'len', 0.5, '*8 50% reverse' }, | |
60 | { 56, 'len', 0.5, '*8 0% split' }, | |
61 | { 56, 'len', 0.5, '*8 0% reverse' }, | |
62 | -- First Intermission | |
63 | { 64.5, 'end', 72.5, '*1 100% reverse' }, | |
64 | { 66.5, 'len', 0.5, '*8 800% twirl' }, | |
65 | { 67, 'len', 2, '*8 0% twirl' }, | |
66 | { 66.5, 'len', 0.5, '*16 600% drunk' }, | |
67 | { 67, 'len', 0.5, '*16 0% drunk' }, | |
68 | { 67, 'len', 5, '*0.5 -100% mini' }, | |
69 | { 68, 'end', 71.7, '*6 200% beat' }, | |
70 | { 71.7, 'end', 72.5, '*50 0% beat' }, | |
71 | { 72, 'len', 1, '*3 0% mini' }, | |
72 | { 72.5, 'end', 74.5, '*1 0% reverse' }, | |
73 | { 74.5, 'len', 0.5, '*8 800% twirl' }, | |
74 | { 75, 'len', 2, '*8 0% twirl' }, | |
75 | { 75, 'len', 5, '*0.5 100% mini' }, | |
76 | { 74.5, 'len', 0.5, '*16 1600% drunk' }, | |
77 | { 75, 'len', 2, '*16 0% drunk' }, | |
78 | { 76, 'end', 79.7, '*6 200% beat' }, | |
79 | { 79.7, 'end', 80.5, '*50 0% beat' }, | |
80 | { 80, 'len', 1, '*3 0% mini' }, | |
81 | { 80.5, 'end', 88.5, '*1 100% reverse' }, | |
82 | { 82.5, 'len', 0.5, '*8 800% twirl' }, | |
83 | { 83, 'len', 2, '*8 0% twirl' }, | |
84 | { 82.5, 'len', 0.5, '*16 600% drunk' }, | |
85 | { 83, 'len', 0.5, '*16 0% drunk' }, | |
86 | { 83, 'len', 5, '*0.5 -100% mini' }, | |
87 | { 84, 'end', 87.7, '*6 200% beat' }, | |
88 | { 87.7, 'end', 88.5, '*50 0% beat' }, | |
89 | { 88, 'len', 1, '*3 0% mini' }, | |
90 | { 88.5, 'end', 90.5, '*1 0% reverse' }, | |
91 | { 92, 'len', 1, '*245325313 1500% twirl' }, | |
92 | { 93, 'len', 10, '*12 0% twirl' }, | |
93 | { 97, 'end', 155, '*1 20% bumpy' }, | |
94 | { 97, 'end', 155, '*0.1 150% distant' }, | |
95 | { 128, 'end', 154, '*0.3 1500% twirl' }, | |
96 | { 154, 'end', 160, '*2 0% distant' }, | |
97 | { 166, 'len', 1, '*8 800% drunk' }, | |
98 | { 167, 'len', 1, '*8 0% drunk' }, | |
99 | { 167, 'len', 1, '*8 100% flip' }, | |
100 | { 168, 'len', 1, '*8 0% flip' }, | |
101 | { 174, 'len', 1, '*8 800% drunk' }, | |
102 | { 175, 'len', 1, '*8 0% drunk' }, | |
103 | { 175, 'len', 1, '*8 100% flip' }, | |
104 | { 176, 'len', 1, '*8 0% flip' }, | |
105 | { 182, 'len', 1, '*8 800% drunk' }, | |
106 | { 183, 'len', 1, '*8 0% drunk' }, | |
107 | { 183, 'len', 1, '*8 100% flip' }, | |
108 | { 184, 'len', 1, '*8 0% flip' }, | |
109 | -- add flip code further down to work with the rest of the song | |
110 | { 192, 'end', 192.5, '*8 800% confusion' }, | |
111 | { 192.5, 'end', 193, '*8 0% confusion' }, | |
112 | { 193.5, 'end', 194, '*8 800% confusion' }, | |
113 | { 194, 'end', 194.5, '*8 0% confusion' }, | |
114 | { 195, 'end', 195.5, '*8 800% confusion' }, | |
115 | { 195.5, 'end', 196, '*8 0% confusion' }, | |
116 | { 196.5, 'end', 197, '*8 800% confusion' }, | |
117 | { 197, 'end', 197.5, '*8 0% confusion' }, | |
118 | { 198, 'len', 1, '*8 800% drunk' }, | |
119 | { 199, 'len', 1, '*8 0% drunk' }, | |
120 | { 199, 'len', 1, '*8 100% flip' }, | |
121 | { 200, 'len', 1, '*8 0% flip' }, | |
122 | { 200, 'end', 200.5, '*8 800% confusion' }, | |
123 | { 200.5, 'end', 201, '*8 0% confusion' }, | |
124 | { 201.5, 'end', 202, '*8 800% confusion' }, | |
125 | { 202, 'end', 202.5, '*8 0% confusion' }, | |
126 | { 203, 'end', 203.5, '*8 800% confusion' }, | |
127 | { 203.5, 'end', 204, '*8 0% confusion' }, | |
128 | { 204.5, 'end', 205, '*8 800% confusion' }, | |
129 | { 205, 'end', 205.5, '*8 0% confusion' }, | |
130 | { 206, 'len', 1, '*8 800% drunk' }, | |
131 | { 207, 'len', 1, '*8 0% drunk' }, | |
132 | { 207, 'len', 1, '*8 100% flip' }, | |
133 | { 208, 'len', 1, '*8 0% flip' }, | |
134 | { 208, 'len', 0.5, '*8 800% confusion' }, | |
135 | { 208.5, 'len', 0.5, '*8 0% confusion' }, | |
136 | { 209.5, 'end', 210, '*8 800% confusion' }, | |
137 | { 210, 'end', 210.5, '*8 0% confusion' }, | |
138 | { 211, 'end', 211.5, '*8 800% confusion' }, | |
139 | { 211.5, 'end', 212, '*8 0% confusion' }, | |
140 | { 212.5, 'end', 213, '*8 800% confusion' }, | |
141 | { 213, 'end', 213.5, '*8 0% confusion' }, | |
142 | { 214, 'len', 1, '*8 800% drunk' }, | |
143 | { 215, 'len', 1, '*8 0% drunk' }, | |
144 | { 215, 'len', 1, '*8 100% flip' }, | |
145 | { 216, 'len', 1, '*8 0% flip' }, | |
146 | { 216, 'len', 0.5, '*8 800% confusion' }, | |
147 | { 216.5, 'len', 0.5, '*8 0% confusion' }, | |
148 | { 217.5, 'len', 0.5, '*8 800% confusion' }, | |
149 | { 218, 'len', 0.5, '*8 0% confusion' }, | |
150 | { 219, 'len', 0.5, '*8 800% confusion' }, | |
151 | { 219.5, 'len', 0.5, '*8 0% confusion' }, | |
152 | { 220.5, 'len', 0.5, '*8 800% confusion' }, | |
153 | { 221, 'len', 0.5, '*8 0% confusion' }, | |
154 | { 221.5, 'len', 1, '*8 100% flip' }, | |
155 | { 222, 'len', 1, '*8 0% flip' }, | |
156 | { 222.5, 'len', 1, '*8 100% flip' }, | |
157 | { 223, 'len', 1, '*8 0% flip' }, | |
158 | { 224, 'end', 252, '*0.14 200% dizzy' }, | |
159 | { 256, 'end', 284, '*0.28 -200% dizzy' }, | |
160 | { 284, 'end', 320, '*1 50% bumpy' }, | |
161 | { 284, 'end', 320, '*1 50% drunk' }, | |
162 | { 320, 'end', 352, '*1 50% drunk' }, | |
163 | { 320, 'end', 352, '*1 100% tipsy' }, | |
164 | { 352, 'end', 380, '*1 100% wave' }, | |
165 | { 352, 'end', 380, '*1 25% drunk' }, | |
166 | { 352, 'end', 380, '*1 50% tipsy' }, | |
167 | { 352, 'end', 380, '*2 8000% dizzy' }, | |
168 | { 380, 'end', 385, '*40 0% dizzy' }, | |
169 | { 380, 'end', 385, '*40 0% confusion' }, | |
170 | { 384, 'end', 388, '*14324 75% drunk' }, | |
171 | { 388, 'end', 392, '*14324 -75% drunk' }, | |
172 | { 392, 'end', 396, '*14324 75% drunk' }, | |
173 | { 396, 'end', 400, '*14324 -75% drunk' }, | |
174 | { 400, 'end', 400.5, '*14324 75% drunk' }, | |
175 | { 400.5, 'end', 401.5, '*14324 -75% drunk' }, | |
176 | { 401.5, 'end', 402, '*14324 75% drunk' }, | |
177 | { 402, 'end', 404, '*14324 -75% drunk' }, | |
178 | { 404, 'end', 408, '*14324 75% drunk' }, | |
179 | { 408, 'end', 412, '*14324 -75% drunk' }, | |
180 | { 412, 'end', 414, '*14324 75% drunk' }, | |
181 | { 414, 'end', 416, '*14324 -75% drunk' }, | |
182 | { 420, 'end', 480, '*100 100% beat' }, | |
183 | -- Magnifier | |
184 | { 485, 'end', 544, '*0.15 -600% mini' }, | |
185 | { 485, 'end', 544, '*0.04 0.75x' }, | |
186 | { 485, 'len', 0.5, '*8 800% confusion' }, | |
187 | { 485.5, 'len', 0.5, '*8 0% confusion' }, | |
188 | { 487, 'len', 0.5, '*8 800% confusion' }, | |
189 | { 487.5, 'len', 0.5, '*8 0% confusion' }, | |
190 | { 489, 'len', 0.5, '*8 800% confusion' }, | |
191 | { 489.5, 'len', 0.5, '*8 0% confusion' }, | |
192 | { 491, 'len', 0.5, '*8 800% confusion' }, | |
193 | { 491.5, 'len', 0.5, '*8 0% confusion' }, | |
194 | { 493, 'len', 0.5, '*8 800% confusion' }, | |
195 | { 493.5, 'len', 0.5, '*8 0% confusion' }, | |
196 | { 495, 'len', 0.5, '*8 800% confusion' }, | |
197 | { 495.5, 'len', 0.5, '*8 0% confusion' }, | |
198 | { 497, 'len', 0.5, '*8 800% confusion' }, | |
199 | { 497.5, 'len', 0.5, '*8 0% confusion' }, | |
200 | { 499, 'len', 0.5, '*8 800% confusion' }, | |
201 | { 499.5, 'len', 0.5, '*8 0% confusion' }, | |
202 | { 501, 'len', 0.5, '*8 800% confusion' }, | |
203 | { 501.5, 'len', 0.5, '*8 0% confusion' }, | |
204 | { 503, 'len', 0.5, '*8 800% confusion' }, | |
205 | { 503.5, 'len', 0.5, '*8 0% confusion' }, | |
206 | { 505, 'len', 0.5, '*8 800% confusion' }, | |
207 | { 505.5, 'len', 0.5, '*8 0% confusion' }, | |
208 | { 507, 'len', 0.5, '*8 800% confusion' }, | |
209 | { 507.5, 'len', 0.5, '*8 0% confusion' }, | |
210 | { 509, 'len', 0.5, '*8 800% confusion' }, | |
211 | { 509.5, 'len', 0.5, '*8 0% confusion' }, | |
212 | { 511, 'len', 0.5, '*8 800% confusion' }, | |
213 | { 511.5, 'len', 0.5, '*8 0% confusion' }, | |
214 | { 513, 'len', 0.5, '*8 800% confusion' }, | |
215 | { 513.5, 'len', 0.5, '*8 0% confusion' }, | |
216 | { 515, 'len', 0.5, '*8 800% confusion' }, | |
217 | { 515.5, 'len', 0.5, '*8 0% confusion' }, | |
218 | { 517, 'len', 0.5, '*8 800% confusion' }, | |
219 | { 517.5, 'len', 0.5, '*8 0% confusion' }, | |
220 | { 519, 'len', 0.5, '*8 800% confusion' }, | |
221 | { 519.5, 'len', 0.5, '*8 0% confusion' }, | |
222 | { 521, 'len', 0.5, '*8 800% confusion' }, | |
223 | { 521.5, 'len', 0.5, '*8 0% confusion' }, | |
224 | { 523, 'len', 0.5, '*8 800% confusion' }, | |
225 | { 523.5, 'len', 0.5, '*8 0% confusion' }, | |
226 | { 525, 'len', 0.5, '*8 800% confusion' }, | |
227 | { 525.5, 'len', 0.5, '*8 0% confusion' }, | |
228 | { 527, 'len', 0.5, '*8 800% confusion' }, | |
229 | { 527.5, 'len', 0.5, '*8 0% confusion' }, | |
230 | { 529, 'len', 0.5, '*8 800% confusion' }, | |
231 | { 529.5, 'len', 0.5, '*8 0% confusion' }, | |
232 | { 531, 'len', 0.5, '*8 800% confusion' }, | |
233 | { 531.5, 'len', 0.5, '*8 0% confusion' }, | |
234 | { 533, 'len', 0.5, '*8 800% confusion' }, | |
235 | { 533.5, 'len', 0.5, '*8 0% confusion' }, | |
236 | { 535, 'len', 0.5, '*8 800% confusion' }, | |
237 | { 535.5, 'len', 0.5, '*8 0% confusion' }, | |
238 | { 537, 'len', 0.5, '*8 800% confusion' }, | |
239 | { 537.5, 'len', 0.5, '*8 0% confusion' }, | |
240 | { 539, 'len', 0.5, '*8 800% confusion' }, | |
241 | { 539.5, 'len', 0.5, '*8 0% confusion' }, | |
242 | { 541, 'len', 0.5, '*8 800% confusion' }, | |
243 | { 541.5, 'len', 0.5, '*8 0% confusion' }, | |
244 | { 543, 'len', 0.5, '*8 800% confusion' }, | |
245 | { 543.5, 'len', 0.5, '*8 0% confusion' }, | |
246 | { 516, 'end', 544, '*10 50% beat' }, | |
247 | { 533, 'end', 544, '*0.3 -100% centered' }, | |
248 | { 544, 'end', 548, '*2.5 0% mini' }, | |
249 | { 554, 'len', 1, '*8 100% drunk' }, | |
250 | { 555, 'len', 1, '*8 100% flip' }, | |
251 | { 556, 'len', 1, '*8 0% flip' }, | |
252 | { 556, 'len', 1, '*8 0% drunk' }, | |
253 | { 562, 'len', 1, '*8 100% drunk' }, | |
254 | { 563, 'len', 1, '*8 100% flip' }, | |
255 | { 564, 'len', 1, '*8 0% flip' }, | |
256 | { 564, 'len', 1, '*8 0% drunk' }, | |
257 | { 570, 'len', 1, '*8 100% drunk' }, | |
258 | { 571, 'len', 1, '*8 100% flip' }, | |
259 | { 572, 'len', 1, '*8 0% flip' }, | |
260 | { 572, 'len', 1, '*8 0% drunk' }, | |
261 | { 577.5, 'len', 1, '*8 100% flip' }, | |
262 | { 578, 'len', 1, '*8 0% flip' }, | |
263 | { 578.5, 'len', 1, '*8 100% flip' }, | |
264 | { 579, 'len', 1, '*8 0% flip' }, | |
265 | { 584, 'end', 610, '*10 200% drunk' }, | |
266 | { 610, 'end', 615, '*1 0% drunk' }, | |
267 | { 622, 'end', 644, '*0.2 50% flip' }, | |
268 | { 622, 'end', 644, '*5 0% tipsy' }, | |
269 | { 622, 'end', 644, '*5 10% drunk' }, | |
270 | { 622, 'end', 644, '*1 2.25x' }, | |
271 | { 622, 'end', 644, '*1 100% wave' }, | |
272 | { 644, 'end', 647, '*3 0% tipsy' }, | |
273 | { 712, 'end', 728, '*50 50% drunk' }, | |
274 | { 728, 'end', 744, '*0.02 100% confusion' }, | |
275 | { 872.896, 'end', 873, '*1007640 200% tornado' }, | |
276 | { 873, 'end', 900, '*0.25 0% tornado' }, | |
277 | } | |
278 | ||
279 | ||
280 | -- format: { <beat>, <command> } | |
281 | local LuaMods = { | |
282 | {0, 'EffectStop'}, | |
283 | {0, 'RotPosReset'}, | |
284 | {24, 'TwirlY'}, | |
285 | {26, 'TwirlY'}, | |
286 | {28, 'TwirlY'}, | |
287 | {32.27, 'Whitey'}, | |
288 | {32.27, 'PunchScreen'}, | |
289 | {35, 'ScreenEffectStop'}, | |
290 | {60, 'Jitter'}, | |
291 | {64.5, 'ZoomPunch'}, | |
292 | {68, 'Wag'}, | |
293 | {72.5, 'ZoomPunch'}, | |
294 | {72.5, 'EffectStop'}, | |
295 | {76, 'Wag'}, | |
296 | {80.5, 'EffectStop'}, | |
297 | {80.5, 'ZoomPunch'}, | |
298 | {84, 'Wag'}, | |
299 | {88.5, 'ZoomPunch'}, | |
300 | {88.5, 'EffectStop'}, | |
301 | {92, 'Jitter'}, | |
302 | {97, 'EffectStop'}, | |
303 | {97, 'RotPosReset'}, | |
304 | {97, 'Floater'}, | |
305 | {97, 'WideWag'}, | |
306 | {155, 'EffectStop'}, | |
307 | {160, 'ZoomPawnch'}, | |
308 | {160.4, 'Whitey'}, | |
309 | {160.4, 'PunchScreen'}, | |
310 | {162.4, 'ScreenEffectStop'}, | |
311 | {160.4, 'EffectStop'}, | |
312 | {161.5, 'ZoomPawnch'}, | |
313 | {161.9, 'EffectStop'}, | |
314 | {163, 'ZoomPawnch'}, | |
315 | {163.4, 'EffectStop'}, | |
316 | {164.5, 'ZoomPawnch'}, | |
317 | {164.9, 'EffectStop'}, | |
318 | {166, 'TinyPlay'}, | |
319 | {169.5, 'ZoomPawnch'}, | |
320 | {171, 'ZoomPawnch'}, | |
321 | {172.5, 'ZoomPawnch'}, | |
322 | {174, 'TinyPlay'}, | |
323 | {177.5, 'ZoomPawnch'}, | |
324 | {179, 'ZoomPawnch'}, | |
325 | {180.5, 'ZoomPawnch'}, | |
326 | {182, 'TinyPlay'}, | |
327 | {185.5, 'ZoomPawnch'}, | |
328 | {187, 'ZoomPawnch'}, | |
329 | {188.5, 'ZoomPawnch'}, | |
330 | {189.5, 'ZoomPawnch'}, | |
331 | {190, 'ZoomPawnch'}, | |
332 | {190.5, 'ZoomPawnch'}, | |
333 | {191, 'ZoomPawnch'}, | |
334 | {192, 'ZoomPawnchRight'}, | |
335 | {193.5, 'ZoomPawnchLeft'}, | |
336 | {195, 'ZoomPawnchRight'}, | |
337 | {196.5, 'ZoomPawnchLeft'}, | |
338 | {198, 'TinyPlay'}, | |
339 | {201.5, 'ZoomPawnchRight'}, | |
340 | {203, 'ZoomPawnchLeft'}, | |
341 | {204.5, 'ZoomPawnchRight'}, | |
342 | {206, 'TinyPlay'}, | |
343 | {209.5, 'ZoomPawnchLeft'}, | |
344 | {211, 'ZoomPawnchRight'}, | |
345 | {212.5, 'ZoomPawnchLeft'}, | |
346 | {214, 'TinyPlay'}, | |
347 | {217.5, 'ZoomPawnchRight'}, | |
348 | {219, 'ZoomPawnchLeft'}, | |
349 | {220.5, 'TinyPlay'}, | |
350 | {224, 'PunchScreen'}, | |
351 | {224, 'ScreenEffectStop'}, | |
352 | {224, 'JitterTiny'}, | |
353 | {224, 'Whitey'}, | |
354 | {224, 'PunchScreen'}, | |
355 | {226, 'ScreenEffectStop'}, | |
356 | {224, 'EffectStop'}, | |
357 | {228, 'JitterTiny'}, | |
358 | {232, 'JitterTiny'}, | |
359 | {236, 'JitterTiny'}, | |
360 | {240, 'JitterTiny'}, | |
361 | {244, 'JitterTiny'}, | |
362 | {248, 'JitterTiny'}, | |
363 | {256, 'JitterTiny'}, | |
364 | {260, 'JitterTiny'}, | |
365 | {264, 'JitterTiny'}, | |
366 | {268, 'JitterTiny'}, | |
367 | {272, 'JitterTiny'}, | |
368 | {276, 'JitterTiny'}, | |
369 | {280, 'JitterTiny'}, | |
370 | {284, 'Jitter'}, | |
371 | {380, 'Jitter'}, | |
372 | {384, 'Whitey'}, | |
373 | {384, 'PunchScreen'}, | |
374 | {386, 'ScreenEffectStop'}, | |
375 | {384, 'EffectStop'}, | |
376 | {388, 'ZoomPawnch'}, | |
377 | {392, 'ZoomPawnch'}, | |
378 | {396, 'ZoomPawnch'}, | |
379 | {400, 'ZoomPawnch'}, | |
380 | {400.5, 'ZoomPawnch'}, | |
381 | {401.5, 'ZoomPawnch'}, | |
382 | {402, 'ZoomPawnch'}, | |
383 | {403, 'RotPosReset'}, | |
384 | {404, 'ZoomPawnchSpin'}, | |
385 | {408, 'ZoomPawnchBack'}, | |
386 | {412, 'ZoomPawnchSpin'}, | |
387 | {413.5, 'ZoomPawnchBack'}, | |
388 | {415, 'ZoomPawnchSpin'}, | |
389 | {416.5, 'ZoomPawnchBack'}, | |
390 | {418, 'JitterShort'}, | |
391 | {480, 'Jitter'}, | |
392 | {483.812, 'Whitey'}, | |
393 | {483.812, 'PunchScreen'}, | |
394 | {485.812, 'ScreenEffectStop'}, | |
395 | {483.812, 'EffectStop'}, | |
396 | {548, 'ZoomPawnch'}, | |
397 | {549.5, 'ZoomPawnch'}, | |
398 | {551, 'ZoomPawnch'}, | |
399 | {552.5, 'ZoomPawnch'}, | |
400 | {554, 'TinyPlay'}, | |
401 | {557.5, 'ZoomPawnch'}, | |
402 | {559, 'ZoomPawnch'}, | |
403 | {560.5, 'ZoomPawnch'}, | |
404 | {562, 'TinyPlay'}, | |
405 | {565.5, 'ZoomPawnch'}, | |
406 | {567, 'ZoomPawnch'}, | |
407 | {568.5, 'ZoomPawnch'}, | |
408 | {570, 'TinyPlay'}, | |
409 | {573.5, 'ZoomPawnch'}, | |
410 | {575, 'ZoomPawnch'}, | |
411 | {576.5, 'ZoomPawnch'}, | |
412 | {577.5, 'ZoomPawnch'}, | |
413 | {578, 'ZoomPawnch'}, | |
414 | {578.5, 'ZoomPawnch'}, | |
415 | {579, 'ZoomPawnch'}, | |
416 | {584, 'InPitch'}, | |
417 | {584, 'RotPosReset'}, | |
418 | {644, 'Jitter'}, | |
419 | {709, 'RotPosReset'}, | |
420 | {709, 'EffectStop'}, | |
421 | {710, 'Fuckingwork'}, | |
422 | {712, 'SplitField'}, | |
423 | {712, 'Whitey'}, | |
424 | {744, 'WagSL'}, | |
425 | {760, 'EffectStop'}, | |
426 | {760, 'FinalReset'}, | |
427 | {760.001, 'TripleShift'}, | |
428 | {776, 'SplitField'}, | |
429 | {776, 'SplitFieldPart2'}, | |
430 | - | {776, 'FinalSpin'}, |
430 | + | {776, 'SplitFieldPart3'}, |
431 | - | {776, 'FuckingTaro'}, |
431 | + | {776, 'FinalSpin1'}, |
432 | {776, 'FinalSpin2'}, | |
433 | {776, 'FinalSpin3'}, | |
434 | {872.896, 'Whitey'}, | |
435 | {872.896, 'PunchScreen'}, | |
436 | {874.896, 'ScreenEffectStop'}, | |
437 | {872.896, 'EffectStop'}, | |
438 | } | |
439 | ||
440 | -- helper function to convert beats -> seconds | |
441 | local function TimeInBeats(beats) | |
442 | return 60 / 147 * beats | |
443 | end | |
444 | ||
445 | -- player for keeping tables for EZ access | |
446 | local Players = {} | |
447 | - | -- example commandd |
447 | + | |
448 | local t = Def.ActorFrame { | |
449 | - | Def.ActorProxy { |
449 | + | -- example commandd |
450 | - | SplitFieldCommand=function(self) |
450 | + | Def.ActorFrame { |
451 | - | if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then |
451 | + | FinalSpin1Command = function (self) |
452 | - | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]); |
452 | + | Players[1] |
453 | - | else |
453 | + | :visible(0) |
454 | - | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1")); |
454 | + | |
455 | - | end; |
455 | + | self |
456 | - | self:xy(0,330); |
456 | + | :xy(SCREEN_CENTER_X,SCREEN_CENTER_Y); |
457 | - | self:rotationz(-180); |
457 | + | :rotationz((360/3)*1); |
458 | - | self:rotationy(-180); |
458 | + | :spin(); |
459 | - | self:diffusealpha(0.1); |
459 | + | |
460 | - | self:linear(5) |
460 | + | Players[1] |
461 | - | end; |
461 | + | :sleep(6); |
462 | - | }; |
462 | + | :visible(1) |
463 | end, | |
464 | - | Def.ActorProxy { |
464 | + | Def.ActorProxy { |
465 | - | SplitFieldPart2Command=function(self) |
465 | + | SplitFieldCommand=function(self) |
466 | - | if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then |
466 | + | if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then |
467 | - | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]); |
467 | + | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]); |
468 | - | else |
468 | + | else |
469 | - | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1")); |
469 | + | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1")); |
470 | - | end; |
470 | + | end; |
471 | - | self:xy(650,640); |
471 | + | self |
472 | - | self:rotationz(-135); |
472 | + | :x(-SCREEN_RIGHT/2) |
473 | - | self:rotationy(0); |
473 | + | :y(60); |
474 | - | object1=self |
474 | + | end; |
475 | - | end; |
475 | + | }; |
476 | - | }; |
476 | + | }; |
477 | ||
478 | Def.ActorFrame { | |
479 | FinalSpin2Command = function (self) | |
480 | self | |
481 | :xy(SCREEN_CENTER_X,SCREEN_CENTER_Y); | |
482 | :rotationz((360/3)*2); | |
483 | :spin(); | |
484 | end, | |
485 | Def.ActorProxy { | |
486 | SplitFieldCommand=function(self) | |
487 | if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then | |
488 | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]); | |
489 | else | |
490 | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1")); | |
491 | end; | |
492 | self | |
493 | :x(-SCREEN_RIGHT/2) | |
494 | :y(60); | |
495 | end; | |
496 | }; | |
497 | }; | |
498 | ||
499 | Def.ActorFrame { | |
500 | FinalSpin3Command = function (self) | |
501 | self | |
502 | :xy(SCREEN_CENTER_X,SCREEN_CENTER_Y); | |
503 | :rotationz((360/3)*3); | |
504 | :spin(); | |
505 | end, | |
506 | Def.ActorProxy { | |
507 | SplitFieldCommand=function(self) | |
508 | if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then | |
509 | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]); | |
510 | else | |
511 | self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1")); | |
512 | end; | |
513 | self | |
514 | - | FinalSpinCommand = function (self) |
514 | + | :x(-SCREEN_RIGHT/2) |
515 | :y(60); | |
516 | end; | |
517 | }; | |
518 | }; | |
519 | ||
520 | ||
521 | Def.ActorFrame{ | |
522 | PunchScreenCommand=function(self) | |
523 | -- get the current Screen object using SCREENMAN | |
524 | local screen = SCREENMAN:GetTopScreen() | |
525 | :vibrate() | |
526 | :effectperiod(0.5) | |
527 | :effectmagnitude(10,0,5) | |
528 | end | |
529 | }, | |
530 | ||
531 | Def.ActorFrame{ | |
532 | ScreenEffectStopCommand=function(self) | |
533 | -- get the current Screen object using SCREENMAN | |
534 | local screen = SCREENMAN:GetTopScreen() | |
535 | :stopeffect() | |
536 | end | |
537 | }, | |
538 | ||
539 | Def.Quad{ | |
540 | Name="WhiteQuad", | |
541 | WhiteyCommand=function(self) | |
542 | self:zoomto(100,100):diffuse(Color.White) | |
543 | :diffusealpha(1) | |
544 | :zoom(100095) | |
545 | :linear(0.5) | |
546 | :diffusealpha(0) | |
547 | end | |
548 | }, | |
549 | ||
550 | SomeEffectCommand = function (self) | |
551 | Players[1] | |
552 | :wag() | |
553 | :effectperiod(0.5) | |
554 | :effectmagnitude(0,0,15) | |
555 | end, | |
556 | ||
557 | TripleShiftCommand = function (self) | |
558 | Players[1] | |
559 | :smooth(TimeInBeats(10)) | |
560 | :x(250) | |
561 | :y(350) | |
562 | :rotationz(45) | |
563 | :zoom(1) | |
564 | end, | |
565 | ||
566 | RotPosResetCommand = function (self) | |
567 | Players[1] | |
568 | :decelerate(TimeInBeats(0)) | |
569 | :zoom(1) | |
570 | :rotationx(0) | |
571 | :rotationy(0) | |
572 | :rotationz(0) | |
573 | :y(SCREEN_CENTER_Y) | |
574 | :x(325) | |
575 | end, | |
576 | ||
577 | FinalResetCommand = function (self) | |
578 | Players[1] | |
579 | :decelerate(TimeInBeats(0)) | |
580 | :zoom(1) | |
581 | :rotationx(0) | |
582 | :rotationy(0) | |
583 | :rotationz(0) | |
584 | :x(SCREEN_CENTER_X) | |
585 | :y(325) | |
586 | end, | |
587 | ||
588 | QuadFlashWhiteCommand = function (self) | |
589 | Players[1] | |
590 | :y(SCREEN_CENTER_Y) | |
591 | :x(SCREEN_CENTER_X) | |
592 | end, | |
593 | ||
594 | FuckingworkCommand = function (self) | |
595 | Players[1] | |
596 | :smooth(TimeInBeats(1.5)) | |
597 | :x(SCREEN_CENTER_X) | |
598 | :y(325) | |
599 | :sleep(TimeInBeats(0.5)) | |
600 | end, | |
601 | ||
602 | WagSLCommand = function (self) | |
603 | Players[1] | |
604 | :wag() | |
605 | :effectperiod(1.75) | |
606 | :effectmagnitude(0,0,15) | |
607 | end, | |
608 | ||
609 | WagCommand = function (self) | |
610 | Players[1] | |
611 | :wag() | |
612 | :effectperiod(0.5) | |
613 | :effectmagnitude(0,0,15) | |
614 | :x(325) | |
615 | :y(SCREEN_CENTER_Y) | |
616 | :accelerate(TimeInBeats(0.25)) | |
617 | :addx(50) | |
618 | :accelerate(TimeInBeats(0.5)) | |
619 | :addx(-100) | |
620 | :accelerate(TimeInBeats(0.5)) | |
621 | :addx(100) | |
622 | :accelerate(TimeInBeats(0.5)) | |
623 | :addx(-100) | |
624 | :accelerate(TimeInBeats(0.5)) | |
625 | :addx(100) | |
626 | :accelerate(TimeInBeats(0.5)) | |
627 | :addx(-100) | |
628 | :accelerate(TimeInBeats(0.5)) | |
629 | :x(325) | |
630 | :y(SCREEN_CENTER_Y) | |
631 | :rotationx(0) | |
632 | :rotationy(0) | |
633 | :rotationz(0) | |
634 | end, | |
635 | ||
636 | WideWagCommand = function (self) | |
637 | Players[1] | |
638 | :wag() | |
639 | :effectperiod(4) | |
640 | :effectmagnitude(0,0,10) | |
641 | :x(325) | |
642 | end, | |
643 | ||
644 | InPitchCommand = function (self) | |
645 | Players[1] | |
646 | :smooth(2.5) | |
647 | :rotationz(90) | |
648 | :x(325) | |
649 | :sleep(0) | |
650 | :smooth(3) | |
651 | :rotationz(-90) | |
652 | :sleep(0) | |
653 | :smooth(3) | |
654 | :rotationz(90) | |
655 | :sleep(0) | |
656 | :smooth(1) | |
657 | :rotationz(0) | |
658 | end, | |
659 | ||
660 | EffectStopCommand = function (self) | |
661 | Players[1] | |
662 | :stopeffect() | |
663 | end, | |
664 | ||
665 | ZoomPawnchSpinCommand = function (self) | |
666 | Players[1] | |
667 | :decelerate(TimeInBeats(0.2)) | |
668 | :zoom(2) | |
669 | :addy(100) | |
670 | :rotationx(20) | |
671 | :rotationz(180) | |
672 | :rotationy(180) | |
673 | :accelerate(TimeInBeats(0.2)) | |
674 | :zoom(1) | |
675 | :rotationx(0) | |
676 | :y(SCREEN_CENTER_Y) | |
677 | end, | |
678 | ||
679 | ZoomPawnchBackCommand = function (self) | |
680 | Players[1] | |
681 | :decelerate(TimeInBeats(0.2)) | |
682 | :zoom(2) | |
683 | :addy(100) | |
684 | :rotationx(0) | |
685 | :rotationz(0) | |
686 | :rotationy(0) | |
687 | :accelerate(TimeInBeats(0.2)) | |
688 | :zoom(1) | |
689 | :rotationx(0) | |
690 | :y(SCREEN_CENTER_Y) | |
691 | end, | |
692 | ||
693 | TwirlYCommand = function (self) | |
694 | Players[1] | |
695 | :rotationy(0) | |
696 | :x(325) | |
697 | :linear(TimeInBeats(0.667336)) | |
698 | :addrotationy(360) | |
699 | end, | |
700 | ||
701 | HoverCommand = function (self) | |
702 | Players[1] | |
703 | :x(325) | |
704 | :y(SCREEN_CENTER_Y) | |
705 | :smooth(TimeInBeats(4)) | |
706 | :addy(10) | |
707 | :smooth(TimeInBeats(4)) | |
708 | :x(325) | |
709 | :y(SCREEN_CENTER_Y) | |
710 | end, | |
711 | ||
712 | SpinCommand = function (self) | |
713 | Players[1] | |
714 | :x(325) | |
715 | :y(SCREEN_CENTER_Y) | |
716 | :accelerate(TimeInBeats(0.25)) | |
717 | :addx(50) | |
718 | :accelerate(TimeInBeats(0.5)) | |
719 | :addx(-100) | |
720 | :accelerate(TimeInBeats(0.5)) | |
721 | :addx(100) | |
722 | :accelerate(TimeInBeats(0.5)) | |
723 | :addx(-100) | |
724 | :accelerate(TimeInBeats(0.5)) | |
725 | :addx(100) | |
726 | :accelerate(TimeInBeats(0.5)) | |
727 | :addx(-100) | |
728 | :accelerate(TimeInBeats(0.5)) | |
729 | :x(325) | |
730 | :y(SCREEN_CENTER_Y) | |
731 | end, | |
732 | ||
733 | ZoomPunchCommand = function (self) | |
734 | Players[1] | |
735 | :rotationx(0) | |
736 | :decelerate(TimeInBeats(0.5)) | |
737 | :zoom(2) | |
738 | :addy(100) | |
739 | :sleep(TimeInBeats(0.5)) | |
740 | :decelerate(TimeInBeats(0.5)) | |
741 | :zoom(1) | |
742 | :y(SCREEN_CENTER_Y) | |
743 | :decelerate(TimeInBeats(0)) | |
744 | :rotationy(180) | |
745 | :decelerate(TimeInBeats(0.5)) | |
746 | :rotationy(0) | |
747 | :rotationx(0) | |
748 | :rotationz(0) | |
749 | end, | |
750 | ||
751 | TinyPlayCommand = function (self) | |
752 | Players[1] | |
753 | :decelerate(TimeInBeats(0.5)) | |
754 | :zoom(2) | |
755 | :addy(-100) | |
756 | :addrotationz(180) | |
757 | :addrotationy(180) | |
758 | :sleep(TimeInBeats(1)) | |
759 | :decelerate(TimeInBeats(0.5)) | |
760 | :zoom(1) | |
761 | :y(SCREEN_CENTER_Y) | |
762 | :rotationz(0) | |
763 | :rotationy(0) | |
764 | end, | |
765 | ||
766 | ZoomPawnchCommand = function (self) | |
767 | Players[1] | |
768 | :decelerate(TimeInBeats(0.2)) | |
769 | :zoom(2) | |
770 | :addy(100) | |
771 | :addrotationx(20) | |
772 | :accelerate(TimeInBeats(0.2)) | |
773 | :zoom(1) | |
774 | :rotationx(0) | |
775 | :y(SCREEN_CENTER_Y) | |
776 | end, | |
777 | ||
778 | ZoomPawnchRightCommand = function (self) | |
779 | Players[1] | |
780 | :decelerate(TimeInBeats(0.2)) | |
781 | :zoom(2) | |
782 | :addy(100) | |
783 | :addrotationx(20) | |
784 | :addrotationz(20) | |
785 | :accelerate(TimeInBeats(0.2)) | |
786 | :zoom(1) | |
787 | :rotationx(0) | |
788 | :rotationz(0) | |
789 | :y(SCREEN_CENTER_Y) | |
790 | end, | |
791 | ||
792 | ZoomPawnchLeftCommand = function (self) | |
793 | Players[1] | |
794 | :decelerate(TimeInBeats(0.2)) | |
795 | :zoom(2) | |
796 | :addy(100) | |
797 | :addrotationx(20) | |
798 | :addrotationz(-20) | |
799 | :accelerate(TimeInBeats(0.2)) | |
800 | :zoom(1) | |
801 | :rotationx(0) | |
802 | :rotationz(0) | |
803 | :y(SCREEN_CENTER_Y) | |
804 | end, | |
805 | ||
806 | FloaterCommand = function (self) | |
807 | Players[1] | |
808 | :rotationz(0) | |
809 | :rotationx(0) | |
810 | :rotationy(0) | |
811 | :linear(TimeInBeats(46)) | |
812 | :addrotationx(-20) | |
813 | :addrotationz(15) | |
814 | :zoom(2) | |
815 | :decelerate(TimeInBeats(0.5)) | |
816 | :rotationx(0) | |
817 | :rotationz(0) | |
818 | :zoom(1) | |
819 | end, | |
820 | ||
821 | ZoomOutCommand = function (self) | |
822 | Players[1]:accelerate(TimeInBeats(23.5)):zoom(0):sleep(TimeInBeats(0.5)):zoom(1) | |
823 | end, | |
824 | ||
825 | JitterCommand = function (self) | |
826 | Players[1] | |
827 | :x(325) | |
828 | :y(SCREEN_CENTER_Y) | |
829 | :accelerate(TimeInBeats(0.1125)) | |
830 | :addx(100) | |
831 | :accelerate(TimeInBeats(0.1125)) | |
832 | :addx(-200) | |
833 | :accelerate(TimeInBeats(0.1125)) | |
834 | :addx(200) | |
835 | :accelerate(TimeInBeats(0.1125)) | |
836 | :addx(-200) | |
837 | :accelerate(TimeInBeats(0.1125)) | |
838 | :addx(200) | |
839 | :accelerate(TimeInBeats(0.1125)) | |
840 | :addx(-200) | |
841 | :accelerate(TimeInBeats(0.1125)) | |
842 | :addx(200) | |
843 | :accelerate(TimeInBeats(0.1125)) | |
844 | :addx(-200) | |
845 | :accelerate(TimeInBeats(0.1125)) | |
846 | :addx(200) | |
847 | :accelerate(TimeInBeats(0.1125)) | |
848 | :addx(-200) | |
849 | :accelerate(TimeInBeats(0.1125)) | |
850 | :addx(200) | |
851 | :accelerate(TimeInBeats(0.1125)) | |
852 | :addx(-200) | |
853 | :accelerate(TimeInBeats(0.1125)) | |
854 | :addx(200) | |
855 | :accelerate(TimeInBeats(0.1125)) | |
856 | :addx(-200) | |
857 | :accelerate(TimeInBeats(0.1125)) | |
858 | :addx(200) | |
859 | :accelerate(TimeInBeats(0.1125)) | |
860 | :addx(-200) | |
861 | :accelerate(TimeInBeats(0.1125)) | |
862 | :addx(200) | |
863 | :accelerate(TimeInBeats(0.1125)) | |
864 | :addx(-200) | |
865 | :accelerate(TimeInBeats(0.1125)) | |
866 | :addx(200) | |
867 | :accelerate(TimeInBeats(0.1125)) | |
868 | :addx(-200) | |
869 | :accelerate(TimeInBeats(0.1125)) | |
870 | :addx(200) | |
871 | :accelerate(TimeInBeats(0.1125)) | |
872 | :addx(-200) | |
873 | :accelerate(TimeInBeats(0.1125)) | |
874 | :x(325) | |
875 | :y(SCREEN_CENTER_Y) | |
876 | end, | |
877 | ||
878 | JitterShortCommand = function (self) | |
879 | Players[1] | |
880 | :x(325) | |
881 | :y(SCREEN_CENTER_Y) | |
882 | :accelerate(TimeInBeats(0.1125)) | |
883 | :addx(-200) | |
884 | :accelerate(TimeInBeats(0.1125)) | |
885 | :addx(400) | |
886 | :accelerate(TimeInBeats(0.1125)) | |
887 | :addx(-200) | |
888 | :accelerate(TimeInBeats(0.1125)) | |
889 | :addx(200) | |
890 | :accelerate(TimeInBeats(0.1125)) | |
891 | :addx(-200) | |
892 | :accelerate(TimeInBeats(0.1125)) | |
893 | :x(325) | |
894 | :y(SCREEN_CENTER_Y) | |
895 | end, | |
896 | ||
897 | JitterTinyCommand = function (self) | |
898 | Players[1] | |
899 | :x(325) | |
900 | :y(SCREEN_CENTER_Y) | |
901 | :accelerate(TimeInBeats(0.1125)) | |
902 | :addx(20) | |
903 | :accelerate(TimeInBeats(0.1125)) | |
904 | :addx(-20) | |
905 | :accelerate(TimeInBeats(0.1125)) | |
906 | :addx(20) | |
907 | :accelerate(TimeInBeats(0.1125)) | |
908 | :addx(-20) | |
909 | :accelerate(TimeInBeats(0.1125)) | |
910 | :addx(20) | |
911 | :accelerate(TimeInBeats(0.1125)) | |
912 | :addx(-20) | |
913 | :accelerate(TimeInBeats(0.1125)) | |
914 | :addx(20) | |
915 | :accelerate(TimeInBeats(0.1125)) | |
916 | :addx(-20) | |
917 | :accelerate(TimeInBeats(0.1125)) | |
918 | :addx(20) | |
919 | :accelerate(TimeInBeats(0.1125)) | |
920 | :addx(-20) | |
921 | :accelerate(TimeInBeats(0.1125)) | |
922 | :addx(20) | |
923 | :accelerate(TimeInBeats(0.1125)) | |
924 | :addx(-20) | |
925 | :accelerate(TimeInBeats(0.1125)) | |
926 | :addx(20) | |
927 | :accelerate(TimeInBeats(0.1125)) | |
928 | :addx(-20) | |
929 | :accelerate(TimeInBeats(0.1125)) | |
930 | :addx(20) | |
931 | :accelerate(TimeInBeats(0.1125)) | |
932 | :addx(-20) | |
933 | :accelerate(TimeInBeats(0.1125)) | |
934 | :addx(20) | |
935 | :accelerate(TimeInBeats(0.1125)) | |
936 | :addx(-20) | |
937 | :accelerate(TimeInBeats(0.1125)) | |
938 | :addx(20) | |
939 | :accelerate(TimeInBeats(0.1125)) | |
940 | :addx(-20) | |
941 | :accelerate(TimeInBeats(0.1125)) | |
942 | :addx(20) | |
943 | :accelerate(TimeInBeats(0.1125)) | |
944 | :addx(-20) | |
945 | :accelerate(TimeInBeats(0.1125)) | |
946 | :addx(20) | |
947 | :accelerate(TimeInBeats(0.1125)) | |
948 | :addx(-20) | |
949 | :accelerate(TimeInBeats(0.1125)) | |
950 | :addx(20) | |
951 | :accelerate(TimeInBeats(0.1125)) | |
952 | :addx(-20) | |
953 | :accelerate(TimeInBeats(0.1125)) | |
954 | :addx(20) | |
955 | :accelerate(TimeInBeats(0.1125)) | |
956 | :addx(-20) | |
957 | :accelerate(TimeInBeats(0.1125)) | |
958 | :x(325) | |
959 | :y(SCREEN_CENTER_Y) | |
960 | end, | |
961 | ||
962 | -- DO NOT TOUCH ANY OF THIS UNLESS YOU KNOW WHAT YOU'RE DOING | |
963 | InitCommand = function (self) | |
964 | -- table to keep track of mods already finished | |
965 | local completed = {} | |
966 | ||
967 | -- for edit mode, go through and mark the ones already passed | |
968 | -- if we don't do this, weird shit happens | |
969 | for i, mod in ipairs(SongMods) do | |
970 | local modbeat, paramtype, param, modstring = unpack(mod) | |
971 | local modfinish = paramtype == 'end' and param | |
972 | or paramtype == 'len' and modbeat + param | |
973 | or error('invalid parameter type ' .. paramtype .. ' for mod #' .. i .. '(mod string: ' .. modstring .. ')') | |
974 | ||
975 | if GAMESTATE:GetSongBeat() > modfinish then | |
976 | completed[mod] = true | |
977 | end | |
978 | end | |
979 | for _, mod in ipairs(LuaMods) do | |
980 | local beat = unpack(mod) | |
981 | if GAMESTATE:GetSongBeat() > beat then | |
982 | completed[mod] = true | |
983 | end | |
984 | end | |
985 | ||
986 | -- hOBOI | |
987 | self:SetUpdateFunction(function() | |
988 | local curbeat = GAMESTATE:GetSongBeat() + 0.08 | |
989 | local curmods = {} | |
990 | ||
991 | for i=1, GAMESTATE:GetNumPlayersEnabled() do | |
992 | curmods[i] = { DefaultMods } | |
993 | end | |
994 | ||
995 | for i, mod in ipairs(SongMods) do | |
996 | if not completed[mod] then | |
997 | local modbeat, paramtype, param, modstring, player = unpack(mod) | |
998 | local modfinish = paramtype == 'end' and param | |
999 | or paramtype == 'len' and modbeat + param | |
1000 | or error('invalid parameter type ' .. paramtype .. ' for mod #' .. i .. '(mod string: ' .. modstring .. ')') -- typos happen | |
1001 | ||
1002 | if curbeat >= modbeat then | |
1003 | for p, playermods in ipairs(curmods) do | |
1004 | if player == nil or player == p then | |
1005 | table.insert(playermods, modstring) | |
1006 | end | |
1007 | end | |
1008 | if curbeat > modfinish then | |
1009 | completed[mod] = true | |
1010 | end | |
1011 | end | |
1012 | end | |
1013 | end | |
1014 | ||
1015 | for p, playermods in ipairs(curmods) do | |
1016 | GAMESTATE:GetPlayerState('PlayerNumber_P' .. p):SetPlayerOptions('ModsLevel_Song', table.concat(playermods, ',')) | |
1017 | end | |
1018 | ||
1019 | -- this is significantly easier *sigh* | |
1020 | for _, mod in ipairs(LuaMods) do | |
1021 | local beat, command = unpack(mod) | |
1022 | if curbeat > beat and not completed[mod] then | |
1023 | self:playcommand(command, unpack(mod, 3)) | |
1024 | completed[mod] = true | |
1025 | end | |
1026 | end | |
1027 | end) | |
1028 | end, | |
1029 | ||
1030 | OnCommand = function (self) | |
1031 | table.insert(Players, SCREENMAN:GetTopScreen():GetChild('PlayerP1')) | |
1032 | table.insert(Players, SCREENMAN:GetTopScreen():GetChild('PlayerP2')) | |
1033 | ||
1034 | -- because edit mode is so nice as to not name the playfields, | |
1035 | -- we have to grab them ourselves! ;) | |
1036 | for _, actor in ipairs(SCREENMAN:GetTopScreen():GetChild('')) do | |
1037 | if tostring(actor):find('Player') then | |
1038 | table.insert(Players, actor) | |
1039 | end | |
1040 | end | |
1041 | ||
1042 | -- reset player state (for edit mode) | |
1043 | for _, player in ipairs(Players) do | |
1044 | player:stoptweening():zoom(1) | |
1045 | end | |
1046 | ||
1047 | -- keep the FG change alive | |
1048 | self:sleep(9999) | |
1049 | end, | |
1050 | } | |
1051 | ||
1052 | return t; |