Advertisement
Jousway

FuckingTaro

Oct 7th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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, 'SplitFieldPart3'},
  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.  
  448. local t = Def.ActorFrame {
  449.   -- example commandd  
  450.     Def.ActorFrame {
  451.         FinalSpin1Command = function (self)
  452.             Players[1]
  453.             :visible(0)
  454.    
  455.             self
  456.             :xy(SCREEN_CENTER_X,SCREEN_CENTER_Y);
  457.             :rotationz((360/3)*1);
  458.             :spin();
  459.        
  460.             Players[1]
  461.             :sleep(6);
  462.             :visible(1)
  463.         end,
  464.         Def.ActorProxy {
  465.             SplitFieldCommand=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
  472.                 :x(-SCREEN_RIGHT/2)
  473.                 :y(60);
  474.             end;
  475.         };
  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.                 :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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement