Guest User

Untitled

a guest
Oct 7th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.85 KB | None | 0 0
  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'},
  431. {776, 'FuckingTaro'},
  432. {872.896, 'Whitey'},
  433. {872.896, 'PunchScreen'},
  434. {874.896, 'ScreenEffectStop'},
  435. {872.896, 'EffectStop'},
  436. }
  437.  
  438. -- helper function to convert beats -> seconds
  439. local function TimeInBeats(beats)
  440. return 60 / 147 * beats
  441. end
  442.  
  443. -- player for keeping tables for EZ access
  444. local Players = {}
  445.  
  446. local t = Def.ActorFrame {
  447. -- example commandd
  448.  
  449. Def.ActorProxy {
  450. SplitFieldCommand=function(self)
  451. if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then
  452. self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]);
  453. else
  454. self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1"));
  455. end;
  456. self:xy(0,330);
  457. self:rotationz(-180);
  458. self:rotationy(-180);
  459. self:diffusealpha(0.1);
  460. self:linear(5)
  461. end;
  462. };
  463.  
  464. Def.ActorProxy {
  465. SplitFieldPart2Command=function(self)
  466. if SCREENMAN:GetTopScreen():GetName() == "ScreenEdit" then
  467. self:SetTarget(SCREENMAN:GetTopScreen():GetChild("")[5]);
  468. else
  469. self:SetTarget(SCREENMAN:GetTopScreen():GetChild("PlayerP1"));
  470. end;
  471. self:xy(650,640);
  472. self:rotationz(-135);
  473. self:rotationy(0);
  474. object1=self
  475. end;
  476. };
  477.  
  478. Def.ActorFrame{
  479. PunchScreenCommand=function(self)
  480. -- get the current Screen object using SCREENMAN
  481. local screen = SCREENMAN:GetTopScreen()
  482. :vibrate()
  483. :effectperiod(0.5)
  484. :effectmagnitude(10,0,5)
  485. end
  486. },
  487.  
  488. Def.ActorFrame{
  489. ScreenEffectStopCommand=function(self)
  490. -- get the current Screen object using SCREENMAN
  491. local screen = SCREENMAN:GetTopScreen()
  492. :stopeffect()
  493. end
  494. },
  495.  
  496. Def.Quad{
  497. Name="WhiteQuad",
  498. WhiteyCommand=function(self)
  499. self:zoomto(100,100):diffuse(Color.White)
  500. :diffusealpha(1)
  501. :zoom(100095)
  502. :linear(0.5)
  503. :diffusealpha(0)
  504. end
  505. },
  506.  
  507. SomeEffectCommand = function (self)
  508. Players[1]
  509. :wag()
  510. :effectperiod(0.5)
  511. :effectmagnitude(0,0,15)
  512. end,
  513.  
  514. FinalSpinCommand = function (self)
  515. Players[1]
  516. :smooth(TimeInBeats(10))
  517. :rotationz(45)
  518. end,
  519.  
  520. TripleShiftCommand = function (self)
  521. Players[1]
  522. :smooth(TimeInBeats(10))
  523. :x(250)
  524. :y(350)
  525. :rotationz(45)
  526. :zoom(1)
  527. end,
  528.  
  529. RotPosResetCommand = function (self)
  530. Players[1]
  531. :decelerate(TimeInBeats(0))
  532. :zoom(1)
  533. :rotationx(0)
  534. :rotationy(0)
  535. :rotationz(0)
  536. :y(SCREEN_CENTER_Y)
  537. :x(325)
  538. end,
  539.  
  540. FinalResetCommand = function (self)
  541. Players[1]
  542. :decelerate(TimeInBeats(0))
  543. :zoom(1)
  544. :rotationx(0)
  545. :rotationy(0)
  546. :rotationz(0)
  547. :x(SCREEN_CENTER_X)
  548. :y(325)
  549. end,
  550.  
  551. QuadFlashWhiteCommand = function (self)
  552. Players[1]
  553. :y(SCREEN_CENTER_Y)
  554. :x(SCREEN_CENTER_X)
  555. end,
  556.  
  557. FuckingworkCommand = function (self)
  558. Players[1]
  559. :smooth(TimeInBeats(1.5))
  560. :x(SCREEN_CENTER_X)
  561. :y(325)
  562. :sleep(TimeInBeats(0.5))
  563. end,
  564.  
  565. WagSLCommand = function (self)
  566. Players[1]
  567. :wag()
  568. :effectperiod(1.75)
  569. :effectmagnitude(0,0,15)
  570. end,
  571.  
  572. WagCommand = function (self)
  573. Players[1]
  574. :wag()
  575. :effectperiod(0.5)
  576. :effectmagnitude(0,0,15)
  577. :x(325)
  578. :y(SCREEN_CENTER_Y)
  579. :accelerate(TimeInBeats(0.25))
  580. :addx(50)
  581. :accelerate(TimeInBeats(0.5))
  582. :addx(-100)
  583. :accelerate(TimeInBeats(0.5))
  584. :addx(100)
  585. :accelerate(TimeInBeats(0.5))
  586. :addx(-100)
  587. :accelerate(TimeInBeats(0.5))
  588. :addx(100)
  589. :accelerate(TimeInBeats(0.5))
  590. :addx(-100)
  591. :accelerate(TimeInBeats(0.5))
  592. :x(325)
  593. :y(SCREEN_CENTER_Y)
  594. :rotationx(0)
  595. :rotationy(0)
  596. :rotationz(0)
  597. end,
  598.  
  599. WideWagCommand = function (self)
  600. Players[1]
  601. :wag()
  602. :effectperiod(4)
  603. :effectmagnitude(0,0,10)
  604. :x(325)
  605. end,
  606.  
  607. InPitchCommand = function (self)
  608. Players[1]
  609. :smooth(2.5)
  610. :rotationz(90)
  611. :x(325)
  612. :sleep(0)
  613. :smooth(3)
  614. :rotationz(-90)
  615. :sleep(0)
  616. :smooth(3)
  617. :rotationz(90)
  618. :sleep(0)
  619. :smooth(1)
  620. :rotationz(0)
  621. end,
  622.  
  623. EffectStopCommand = function (self)
  624. Players[1]
  625. :stopeffect()
  626. end,
  627.  
  628. ZoomPawnchSpinCommand = function (self)
  629. Players[1]
  630. :decelerate(TimeInBeats(0.2))
  631. :zoom(2)
  632. :addy(100)
  633. :rotationx(20)
  634. :rotationz(180)
  635. :rotationy(180)
  636. :accelerate(TimeInBeats(0.2))
  637. :zoom(1)
  638. :rotationx(0)
  639. :y(SCREEN_CENTER_Y)
  640. end,
  641.  
  642. ZoomPawnchBackCommand = function (self)
  643. Players[1]
  644. :decelerate(TimeInBeats(0.2))
  645. :zoom(2)
  646. :addy(100)
  647. :rotationx(0)
  648. :rotationz(0)
  649. :rotationy(0)
  650. :accelerate(TimeInBeats(0.2))
  651. :zoom(1)
  652. :rotationx(0)
  653. :y(SCREEN_CENTER_Y)
  654. end,
  655.  
  656. TwirlYCommand = function (self)
  657. Players[1]
  658. :rotationy(0)
  659. :x(325)
  660. :linear(TimeInBeats(0.667336))
  661. :addrotationy(360)
  662. end,
  663.  
  664. HoverCommand = function (self)
  665. Players[1]
  666. :x(325)
  667. :y(SCREEN_CENTER_Y)
  668. :smooth(TimeInBeats(4))
  669. :addy(10)
  670. :smooth(TimeInBeats(4))
  671. :x(325)
  672. :y(SCREEN_CENTER_Y)
  673. end,
  674.  
  675. SpinCommand = function (self)
  676. Players[1]
  677. :x(325)
  678. :y(SCREEN_CENTER_Y)
  679. :accelerate(TimeInBeats(0.25))
  680. :addx(50)
  681. :accelerate(TimeInBeats(0.5))
  682. :addx(-100)
  683. :accelerate(TimeInBeats(0.5))
  684. :addx(100)
  685. :accelerate(TimeInBeats(0.5))
  686. :addx(-100)
  687. :accelerate(TimeInBeats(0.5))
  688. :addx(100)
  689. :accelerate(TimeInBeats(0.5))
  690. :addx(-100)
  691. :accelerate(TimeInBeats(0.5))
  692. :x(325)
  693. :y(SCREEN_CENTER_Y)
  694. end,
  695.  
  696. ZoomPunchCommand = function (self)
  697. Players[1]
  698. :rotationx(0)
  699. :decelerate(TimeInBeats(0.5))
  700. :zoom(2)
  701. :addy(100)
  702. :sleep(TimeInBeats(0.5))
  703. :decelerate(TimeInBeats(0.5))
  704. :zoom(1)
  705. :y(SCREEN_CENTER_Y)
  706. :decelerate(TimeInBeats(0))
  707. :rotationy(180)
  708. :decelerate(TimeInBeats(0.5))
  709. :rotationy(0)
  710. :rotationx(0)
  711. :rotationz(0)
  712. end,
  713.  
  714. TinyPlayCommand = function (self)
  715. Players[1]
  716. :decelerate(TimeInBeats(0.5))
  717. :zoom(2)
  718. :addy(-100)
  719. :addrotationz(180)
  720. :addrotationy(180)
  721. :sleep(TimeInBeats(1))
  722. :decelerate(TimeInBeats(0.5))
  723. :zoom(1)
  724. :y(SCREEN_CENTER_Y)
  725. :rotationz(0)
  726. :rotationy(0)
  727. end,
  728.  
  729. ZoomPawnchCommand = function (self)
  730. Players[1]
  731. :decelerate(TimeInBeats(0.2))
  732. :zoom(2)
  733. :addy(100)
  734. :addrotationx(20)
  735. :accelerate(TimeInBeats(0.2))
  736. :zoom(1)
  737. :rotationx(0)
  738. :y(SCREEN_CENTER_Y)
  739. end,
  740.  
  741. ZoomPawnchRightCommand = function (self)
  742. Players[1]
  743. :decelerate(TimeInBeats(0.2))
  744. :zoom(2)
  745. :addy(100)
  746. :addrotationx(20)
  747. :addrotationz(20)
  748. :accelerate(TimeInBeats(0.2))
  749. :zoom(1)
  750. :rotationx(0)
  751. :rotationz(0)
  752. :y(SCREEN_CENTER_Y)
  753. end,
  754.  
  755. ZoomPawnchLeftCommand = function (self)
  756. Players[1]
  757. :decelerate(TimeInBeats(0.2))
  758. :zoom(2)
  759. :addy(100)
  760. :addrotationx(20)
  761. :addrotationz(-20)
  762. :accelerate(TimeInBeats(0.2))
  763. :zoom(1)
  764. :rotationx(0)
  765. :rotationz(0)
  766. :y(SCREEN_CENTER_Y)
  767. end,
  768.  
  769. FloaterCommand = function (self)
  770. Players[1]
  771. :rotationz(0)
  772. :rotationx(0)
  773. :rotationy(0)
  774. :linear(TimeInBeats(46))
  775. :addrotationx(-20)
  776. :addrotationz(15)
  777. :zoom(2)
  778. :decelerate(TimeInBeats(0.5))
  779. :rotationx(0)
  780. :rotationz(0)
  781. :zoom(1)
  782. end,
  783.  
  784. ZoomOutCommand = function (self)
  785. Players[1]:accelerate(TimeInBeats(23.5)):zoom(0):sleep(TimeInBeats(0.5)):zoom(1)
  786. end,
  787.  
  788. JitterCommand = function (self)
  789. Players[1]
  790. :x(325)
  791. :y(SCREEN_CENTER_Y)
  792. :accelerate(TimeInBeats(0.1125))
  793. :addx(100)
  794. :accelerate(TimeInBeats(0.1125))
  795. :addx(-200)
  796. :accelerate(TimeInBeats(0.1125))
  797. :addx(200)
  798. :accelerate(TimeInBeats(0.1125))
  799. :addx(-200)
  800. :accelerate(TimeInBeats(0.1125))
  801. :addx(200)
  802. :accelerate(TimeInBeats(0.1125))
  803. :addx(-200)
  804. :accelerate(TimeInBeats(0.1125))
  805. :addx(200)
  806. :accelerate(TimeInBeats(0.1125))
  807. :addx(-200)
  808. :accelerate(TimeInBeats(0.1125))
  809. :addx(200)
  810. :accelerate(TimeInBeats(0.1125))
  811. :addx(-200)
  812. :accelerate(TimeInBeats(0.1125))
  813. :addx(200)
  814. :accelerate(TimeInBeats(0.1125))
  815. :addx(-200)
  816. :accelerate(TimeInBeats(0.1125))
  817. :addx(200)
  818. :accelerate(TimeInBeats(0.1125))
  819. :addx(-200)
  820. :accelerate(TimeInBeats(0.1125))
  821. :addx(200)
  822. :accelerate(TimeInBeats(0.1125))
  823. :addx(-200)
  824. :accelerate(TimeInBeats(0.1125))
  825. :addx(200)
  826. :accelerate(TimeInBeats(0.1125))
  827. :addx(-200)
  828. :accelerate(TimeInBeats(0.1125))
  829. :addx(200)
  830. :accelerate(TimeInBeats(0.1125))
  831. :addx(-200)
  832. :accelerate(TimeInBeats(0.1125))
  833. :addx(200)
  834. :accelerate(TimeInBeats(0.1125))
  835. :addx(-200)
  836. :accelerate(TimeInBeats(0.1125))
  837. :x(325)
  838. :y(SCREEN_CENTER_Y)
  839. end,
  840.  
  841. JitterShortCommand = function (self)
  842. Players[1]
  843. :x(325)
  844. :y(SCREEN_CENTER_Y)
  845. :accelerate(TimeInBeats(0.1125))
  846. :addx(-200)
  847. :accelerate(TimeInBeats(0.1125))
  848. :addx(400)
  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. :x(325)
  857. :y(SCREEN_CENTER_Y)
  858. end,
  859.  
  860. JitterTinyCommand = function (self)
  861. Players[1]
  862. :x(325)
  863. :y(SCREEN_CENTER_Y)
  864. :accelerate(TimeInBeats(0.1125))
  865. :addx(20)
  866. :accelerate(TimeInBeats(0.1125))
  867. :addx(-20)
  868. :accelerate(TimeInBeats(0.1125))
  869. :addx(20)
  870. :accelerate(TimeInBeats(0.1125))
  871. :addx(-20)
  872. :accelerate(TimeInBeats(0.1125))
  873. :addx(20)
  874. :accelerate(TimeInBeats(0.1125))
  875. :addx(-20)
  876. :accelerate(TimeInBeats(0.1125))
  877. :addx(20)
  878. :accelerate(TimeInBeats(0.1125))
  879. :addx(-20)
  880. :accelerate(TimeInBeats(0.1125))
  881. :addx(20)
  882. :accelerate(TimeInBeats(0.1125))
  883. :addx(-20)
  884. :accelerate(TimeInBeats(0.1125))
  885. :addx(20)
  886. :accelerate(TimeInBeats(0.1125))
  887. :addx(-20)
  888. :accelerate(TimeInBeats(0.1125))
  889. :addx(20)
  890. :accelerate(TimeInBeats(0.1125))
  891. :addx(-20)
  892. :accelerate(TimeInBeats(0.1125))
  893. :addx(20)
  894. :accelerate(TimeInBeats(0.1125))
  895. :addx(-20)
  896. :accelerate(TimeInBeats(0.1125))
  897. :addx(20)
  898. :accelerate(TimeInBeats(0.1125))
  899. :addx(-20)
  900. :accelerate(TimeInBeats(0.1125))
  901. :addx(20)
  902. :accelerate(TimeInBeats(0.1125))
  903. :addx(-20)
  904. :accelerate(TimeInBeats(0.1125))
  905. :addx(20)
  906. :accelerate(TimeInBeats(0.1125))
  907. :addx(-20)
  908. :accelerate(TimeInBeats(0.1125))
  909. :addx(20)
  910. :accelerate(TimeInBeats(0.1125))
  911. :addx(-20)
  912. :accelerate(TimeInBeats(0.1125))
  913. :addx(20)
  914. :accelerate(TimeInBeats(0.1125))
  915. :addx(-20)
  916. :accelerate(TimeInBeats(0.1125))
  917. :addx(20)
  918. :accelerate(TimeInBeats(0.1125))
  919. :addx(-20)
  920. :accelerate(TimeInBeats(0.1125))
  921. :x(325)
  922. :y(SCREEN_CENTER_Y)
  923. end,
  924.  
  925. -- DO NOT TOUCH ANY OF THIS UNLESS YOU KNOW WHAT YOU'RE DOING
  926. InitCommand = function (self)
  927. -- table to keep track of mods already finished
  928. local completed = {}
  929.  
  930. -- for edit mode, go through and mark the ones already passed
  931. -- if we don't do this, weird shit happens
  932. for i, mod in ipairs(SongMods) do
  933. local modbeat, paramtype, param, modstring = unpack(mod)
  934. local modfinish = paramtype == 'end' and param
  935. or paramtype == 'len' and modbeat + param
  936. or error('invalid parameter type ' .. paramtype .. ' for mod #' .. i .. '(mod string: ' .. modstring .. ')')
  937.  
  938. if GAMESTATE:GetSongBeat() > modfinish then
  939. completed[mod] = true
  940. end
  941. end
  942. for _, mod in ipairs(LuaMods) do
  943. local beat = unpack(mod)
  944. if GAMESTATE:GetSongBeat() > beat then
  945. completed[mod] = true
  946. end
  947. end
  948.  
  949. -- hOBOI
  950. self:SetUpdateFunction(function()
  951. local curbeat = GAMESTATE:GetSongBeat() + 0.08
  952. local curmods = {}
  953.  
  954. for i=1, GAMESTATE:GetNumPlayersEnabled() do
  955. curmods[i] = { DefaultMods }
  956. end
  957.  
  958. for i, mod in ipairs(SongMods) do
  959. if not completed[mod] then
  960. local modbeat, paramtype, param, modstring, player = unpack(mod)
  961. local modfinish = paramtype == 'end' and param
  962. or paramtype == 'len' and modbeat + param
  963. or error('invalid parameter type ' .. paramtype .. ' for mod #' .. i .. '(mod string: ' .. modstring .. ')') -- typos happen
  964.  
  965. if curbeat >= modbeat then
  966. for p, playermods in ipairs(curmods) do
  967. if player == nil or player == p then
  968. table.insert(playermods, modstring)
  969. end
  970. end
  971. if curbeat > modfinish then
  972. completed[mod] = true
  973. end
  974. end
  975. end
  976. end
  977.  
  978. for p, playermods in ipairs(curmods) do
  979. GAMESTATE:GetPlayerState('PlayerNumber_P' .. p):SetPlayerOptions('ModsLevel_Song', table.concat(playermods, ','))
  980. end
  981.  
  982. -- this is significantly easier *sigh*
  983. for _, mod in ipairs(LuaMods) do
  984. local beat, command = unpack(mod)
  985. if curbeat > beat and not completed[mod] then
  986. self:playcommand(command, unpack(mod, 3))
  987. completed[mod] = true
  988. end
  989. end
  990. end)
  991. end,
  992.  
  993. OnCommand = function (self)
  994. table.insert(Players, SCREENMAN:GetTopScreen():GetChild('PlayerP1'))
  995. table.insert(Players, SCREENMAN:GetTopScreen():GetChild('PlayerP2'))
  996.  
  997. -- because edit mode is so nice as to not name the playfields,
  998. -- we have to grab them ourselves! ;)
  999. for _, actor in ipairs(SCREENMAN:GetTopScreen():GetChild('')) do
  1000. if tostring(actor):find('Player') then
  1001. table.insert(Players, actor)
  1002. end
  1003. end
  1004.  
  1005. -- reset player state (for edit mode)
  1006. for _, player in ipairs(Players) do
  1007. player:stoptweening():zoom(1)
  1008. end
  1009.  
  1010. -- keep the FG change alive
  1011. self:sleep(9999)
  1012. end,
  1013. }
  1014. return t;
Advertisement
Add Comment
Please, Sign In to add comment