-- Script expressions:
-- go <dir> - Changes direction long-term
-- tap <dir> - Changes direction for one frame
-- shoot <dir> <button> - Changes direction and fires an attack for this frame only. Same as tap <dir> fire <button>
-- fire <button> - Fires a button for this frame only but does not change direction
-- stop - Stops all movement
local MARS_DIES_IN_1_10 = false
local stageScripts =
{
["1-7"] =
{
[1] =
{
5244, "fire", "B",
5247, "go", "up-right",
5316, "go", "up",
5348, "shoot", "left", "B",
5350, "fire", "B",
5380, "fire", "B",
5416, "fire", "B",
5432, "fire", "B",
5449, "shoot", "up-left", "B",
5450, "go", "left",
5460, "stop",
5647, "fire", "B", -- Skip scores
},
[2] =
{
5247, "fire", "B",
5248, "go", "up-left",
5266, "go", "up",
5326, "shoot", "left", "B",
5351, "shoot", "left", "B",
5384, "go", "left", "fire", "B",
5388, "shoot", "up-left", "B",
5389, "go", "up",
5412, "fire", "C",
5425, "shoot", "up-left", "B",
5442, "shoot", "up-left", "B",
5443, "go", "left",
5460, "stop",
},
},
["1-8"] =
{
[1] =
{
5979, "fire", "B",
5983, "go", "up-left",
5987, "go", "up",
6111, "shoot", "right", "C",
6150, "fire", "B",
6151, "shoot", "down", "C",
6152, "go", "up-right", "fire", "B",
6168, "go", "right",
6177, "fire", "B",
6187, "fire", "C", "fire", "B",
-- Can spare about 20 frames at this point, then need to move to X=228, then 216,184 to shoot the ambush at 6241
6198, "stop",
6214, "fire", "B",
6218, "fire", "B",
6219, "go", "up-left",
6241, "fire", "B",
6242, "go", "down-right",
6265, "stop", "shoot", "right", "C", "shoot", "right", "B",
6266, "go", "down", -- Dodge the fireball
6270, "stop",
6279, "shoot", "right", "B",
6291, "shoot", "right", "B",
6301, "shoot", "right", "C",
6305, "go", "up",
6309, "stop",
--6309, "shoot", "right", "B", -- Dud, hits it during an invincibility frame
6310, "go", "up-left",
6333, "fire", "B",
6334, "go", "down-left", -- Dodge the fireball
6340, "go", "down",
6352, "shoot", "right", "B",
6355, "go", "right",
6357, "fire", "C",
6359, "stop",
--6370, "fire", "B",
--6389, "fire", "B",
-- This sequence will kill P1
--6378, "go", "up-left",
--6384, "go", "up",
--6408, "stop",
--6414, "shoot", "up-left", "B",
6390, "go", "up",
6418, "stop",
6425, "shoot", "up-left", "B",
6699, "fire", "B", -- Skip scores
},
[2] =
{
5976, "fire", "B",
5985, "go", "up",
6151, "fire", "C",
6152, "shoot", "down-left", "B",
6165, "go", "up-left",
6185, "go", "left", "fire", "B",
6197, "shoot", "down-left", "B",
6198, "stop",
6212, "shoot", "down-left", "C",
6214, "go", "right",
6226, "shoot", "up-right", "B",
6227, "go", "left",
6239, "shoot", "down-left", "B",
6240, "stop",
6248, "shoot", "down-left", "C",
--6262, "shoot", "down-left", "B",
6274, "shoot", "down-left", "B",
6284, "go", "right",
6298, "shoot", "up-right", "B",
6300, "go", "left",
6314, "stop", "shoot", "down-left", "B",
6318, "shoot", "down-left", "C",
6334, "shoot", "down-left", "B",
6338, "shoot", "down-left", "B",
6352, "shoot", "down-left", "B",
6356, "go", "right",
6370, "shoot", "up-right", "B",
6378, "go", "down",
6398, "shoot", "down", "B",
6405, "stop",
},
},
["1-9"] =
{
[1] =
{
6987, "fire", "B",
6988, "go", "up-right",
6996, "go", "up",
7047, "fire", "C",
7048, "go", "up-right",
7064, "go", "right",
7076, "shoot", "up-left", "C",
7077, "shoot", "down-right", "B",
7078, "go", "up-right",
7111, "go", "up",
7127, "shoot", "up-right", "B",
7176, "go", "left",
7177, "fire", "B",
7180, "shoot", "down-left", "B",
7181, "go", "up-left",
7210, "go", "up",
7221, "fire", "C",
7222, "go", "right",
7226, "go", "up-right",
7248, "fire", "B",
7249, "go", "left",
7265, "shoot", "down-left", "B",
7268, "shoot", "up-left", "C",
7269, "stop",
7528, "fire", "B", -- Skip scores
},
[2] =
{
6984, "fire", "B",
6985, "go", "up",
7009, "fire", "C",
7010, "shoot", "left", "B",
7011, "go", "up-left",
7055, "shoot", "up", "C",
7081, "go", "up",
--7149, "shoot", "left", "B", -- Hit ambush Y
--7174, "shoot", "right", "B",
7164, "shoot", "right", "B",
7166, "shoot", "down-left", "B",
7168, "go", "up-left", "fire", "B",
7177, "fire", "B",
7211, "shoot", "up", "B",
7212, "shoot", "up-right", "C",
7213, "go", "right",
7243, "shoot", "up-right", "C",
7244, "shoot", "down-right", "B",
7245, "go", "down-left",
7257, "shoot", "right", "B",
7258, "go", "left",
7266, "go", "up-left",
7286, "go", "up", "fire", "B",
7325, "shoot", "up-left", "B",
7326, "stop",
},
},
["1-10"] =
{
[1] =
{
7844, "fire", "B",
7845, "go", "up-right",
7849, "shoot", "up", "B", "shoot", "up", "C",
7873, "shoot", "up", "B",
7900, "shoot", "up-left", "B", "shoot", "up-left", "C",
7919, "shoot", "up-left", "C",
7920, "go", "up",
7924, "shoot", "up-left", "B",
7929, "shoot", "up-left", "B",
7934, "shoot", "up-left", "C",
7943, "shoot", "up-left", "B",
7972, "shoot", "up-left", "B",
7996, "shoot", "up-left", "B", "shoot", "up-left", "C",
7999, "go", "left",
8014, "go", "up-left", "fire", "B",
8026, "go", "up", "fire", "C",
8032, "fire", "B",
8040, "stop",
8046, "fire", "C",
8049, "fire", "B",
8054, "fire", "B",
8064, "fire", "C",
8065, "go", "up",
8066, "fire", "B",
8067, "stop",
8215, "fire", "B", -- Select Gascon
8218, "go", "up-right",
8317, "go", "up",
8399, "fire", "C", -- Hits at 8435
8407, "fire", "B", -- Hits at 8444
8410, "fire", "B", -- Hits at 8445
8437, "fire", "C",
8444, "fire", "B", -- Hits at 8459
8449, "fire", "B", -- Hits at 8459
8450, "fire", "C",
8460, "fire", "B",
8469, "fire", "B", "stop",
8471, "fire", "B",
8473, "fire", "B",
8479, "fire", "B",
8481, "fire", "B",
8483, "fire", "B",
8487, "fire", "B",
8488, "go", "left",
8494, "stop",
8500, "shoot", "up-right", "B",
--[[
8473, "fire", "C",
8479, "fire", "B",
8481, "fire", "C",
8484, "fire", "B",
8488, "fire", "C",
8492, "fire", "B",
8496, "fire", "C",
]]--
(MARS_DIES_IN_1_10 and 8799 or 8795), "fire", "B",
},
[2] =
{
7844, "tap", "up",
7873, "fire", "B",
7874, "go", "up-left",
7878, "fire", "C", "shoot", "up", "B",
7895, "fire", "C",
7902, "shoot", "up", "B",
7917, "fire", "C",
7926, "shoot", "up", "B", "fire", "C",
7945, "shoot", "up-right", "B",
7946, "go", "up",
7950, "shoot", "up-right", "B",
7955, "shoot", "up-right", "B",
--7960, "shoot", "up-left", "B",
7994, "go", "up-right",
8008, "shoot", "up", "B", "fire", "C",
8013, "shoot", "up", "B",
8032, "go", "up",
8033, "fire", "C",
8038, "fire", "B",
8045, "fire", "B",
8057, "go", "right",
8059, "fire", "C", "shoot", "up", "B",
8062, "stop",
8063, "shoot", "up", "B",
8071, "shoot", "down-left", "B",
8072, "fire", "C",
8075, "shoot", "left", "B",
8077, "go", "up-left",
8079, "shoot", "down-left", "B",
-- These 3 will kill Mars
--8080, "go", "left",
--8092, "fire", "B",
--8100, "stop",
8202, "go", (MARS_DIES_IN_1_10 and "left" or "stopped"),
8206, "stop",
8240, "spin", "stopped", 6,
8288, "spin", "stopped", 5,
8328, "spin", "stopped", 4,
8360, "spin", "stopped", 3,
8384, "spin", "stopped", 2,
8400, "spin", "stopped", 1,
8424, "stopspin",
8426, "go", "down",
8435, "stop", "shoot", "up", "B",
8437, "fire", "B",
8439, "fire", "C",
8446, "fire", "B",
8450, "fire", "B",
8452, "fire", "C",
8454, "fire", "B",
8463, "fire", "B",
8467, "fire", "C",
8475, "fire", "B",
8477, "fire", "B",
8478, "go", "down",
8490, "shoot", "up", "C",
8491, "stop",
8493, "fire", "B",
8497, "fire", "B",
8501, "fire", "B",
--8437, "fire", "C",
--7975, "go", "up",
--7991, "shoot", "up-left", "B",
},
},
["2-1"] =
{
[1] =
{
9106, "fire", "B",
9108, "go", "up",
9146, "go", "up-right", "fire", "B",
9158, "go", "up", "fire", "B",
9170, "go", "up-right", "fire", "B",
9182, "go", "up",
9234, "go", "up-right", "fire", "B",
9238, "go", "up",
9264, "fire", "C",
9266, "go", "up-left",
9287, "shoot", "up-right", "B",
9288, "go", "up",
9297, "shoot", "right", "B",
9313, "shoot", "up-right", "B",
9318, "stop",
9321, "shoot", "right", "B",
9324, "shoot", "right", "B",
9518, "fire", "B",
},
[2] =
{
9103, "fire", "B",
9105, "go", "up",
9140, "fire", "C",
9189, "shoot", "left", "B",
9190, "go", "up-left", "fire", "C",
9213, "shoot", "left", "B",
9214, "go", "up",
9215, "fire", "B",
9238, "fire", "B",
9246, "go", "up-right",
9277, "shoot", "left", "B",
9278, "go", "up", "fire", "C",
9294, "shoot", "up-left", "B",
9317, "shoot", "up-left", "B",
9318, "stop",
},
},
["2-2"] =
{
[1] =
{
9816, "fire", "B",
9818, "go", "up-right",
9833, "fire", "B",
9835, "fire", "C", "fire", "B",
9883, "fire", "C",
9931, "go", "right",
9935, "go", "up-right",
9937, "go", "up",
9965, "shoot", "up-right", "B",
10002, "shoot", "right", "B",
10003, "shoot", "left", "C",
10020, "shoot", "left", "B",
10037, "shoot", "left", "B",
10046, "shoot", "up-left", "C",
10047, "shoot", "left", "B",
10048, "go", "up-left",
10050, "shoot", "left", "B",
10056, "shoot", "left", "B",
10073, "shoot", "down-left", "B",
10074, "go", "left",
10078, "shoot", "down-left", "B",
10084, "shoot", "up-left", "C",
10085, "go", "up-left",
10100, "go", "left",
10103, "shoot", "down", "B",
10116, "shoot", "down", "B",
10121, "shoot", "down", "B",
10122, "shoot", "up", "C",
10147, "shoot", "down-right", "B",
10155, "shoot", "up", "C",
10156, "stop",
10344, "fire", "B",
},
[2] =
{
9813, "fire", "B",
9818, "go", "up-left",
--9834, "fire", "B",
9836, "fire", "B",
9838, "fire", "B", "fire", "C",
9930, "go", "left",
9934, "go", "up-left",
9936, "go", "up",
9937, "fire", "B",
9940, "fire", "B",
9972, "fire", "B",
9975, "shoot", "up-right", "B", "fire", "C",
9976, "stop",
--9978, "stop",
9981, "go", "up",
--9997, "shoot", "right", "B",
9997, "go", "up-left",
10005, "go", "up",
10029, "shoot", "right", "B",
10046, "shoot", "right", "B",
10051, "go", "up-right", "fire", "C",
10072, "shoot", "down-right", "B",
10089, "shoot", "down-right", "B",
10090, "go", "right",
10102, "shoot", "up-right", "C",
10103, "shoot", "down-right", "B",
--10110, "shoot", "down", "B",
--10123, "shoot", "down", "B", -- 10127
10136, "shoot", "up", "C",
10137, "shoot", "down", "B",
10148, "shoot", "down", "B",
10155, "shoot", "up", "C",
10156, "stop",
},
},
["2-3"] =
{
[1] =
{
10636, "fire", "B",
10638, "go", "right",
10682, "go", "up-right",
10744, "go", "up",
10850, "fire", "B",
10852, "go", "up-right",
10882, "shoot", "up-left", "B",
10883, "go", "up",
10900, "fire", "B",
10901, "go", "down",
10903, "shoot", "right", "C",
10904, "go", "up",
10915, "shoot", "left", "B",
10939, "stop",
10946, "spin", "stopped", 2,
10963, "stopspin",
10964, "shoot", "right", "C",
10965, "shoot", "up", "B",
10966, "go", "left",
10970, "stop",
10981, "spin", "stopped", 2,
11012, "stopspin",
11013, "shoot", "up", "B",
11208, "fire", "B",
},
[2] =
{
10639, "fire", "B",
10640, "go", "left",
10714, "go", "up",
10725, "shoot", "right", "B",
10726, "go", "left",
10751, "fire", "B",
--10752, "shoot", "up-left", "C",
10752, "go", "right",
10771, "fire", "B",
10772, "go", "left",
10815, "fire", "B",
10816, "go", "right",
10847, "fire", "B",
10848, "go", "left",
10879, "fire", "B",
10880, "shoot", "up-left", "C",
10881, "go", "up-right",
10925, "go", "up",
10929, "shoot", "up-right", "C",
10961, "shoot", "right", "C",
10962, "go", "up-left",
10995, "stop",
"spin", "stopped", 2,
11006, "stopspin",
11008, "shoot", "up-left", "C",
},
},
["2-4"] =
{
[1] =
{
11506, "fire", "B",
11507, "go", "up",
11535, "shoot", "up-right", "B",
11576, "shoot", "right", "C",
11589, "shoot", "up-right", "B",
11594, "shoot", "right", "B",
11635, "shoot", "down-right", "B",
11672, "shoot", "up-left", "B",
11673, "go", "up-right",
11684, "fire", "C",
11688, "shoot", "up-left", "B",
11689, "go", "up",
11690, "fire", "B",
11741, "shoot", "down-left", "B",
11743, "shoot", "up-left", "B",
11756, "shoot", "up-right", "B",
11757, "go", "down",
11763, "shoot", "down-left", "B",
11764, "stop",
11953, "fire", "B",
},
[2] =
{
11503, "fire", "B",
11504, "go", "up",
11534, "shoot", "up-left", "B",
11575, "shoot", "left", "C",
11586, "shoot", "up-left", "B",
11591, "shoot", "left", "B",
11631, "shoot", "down-left", "B",
11672, "shoot", "up-right", "B",
11673, "go", "up-left",
11682, "fire", "C",
11683, "go", "up",
11690, "go", "up-right", "fire", "B",
11696, "go", "up", "fire", "B",
11720, "shoot", "up-left", "B",
11750, "shoot", "down-right", "B",
11751, "go", "down",
11754, "shoot", "up-left", "B",
11759, "stop",
11772, "shoot", "down-right", "B",
},
},
["2-5"] =
{
[1] =
{
1, "go", "down",
10, "stop",
33, "fire", "B",
35, "go", "up-right",
104, "shoot", "up-left", "B",
152, "go", "up",
245, "shoot", "left", "B",
246, "go", "up-left",
306, "stop",
311, "fire", "C",
713, "fire", "B",
},
[2] =
{
4, "fire", "B",
6, "go", "up-left",
140, "go", "up",
214, "fire", "B",
218, "shoot", "down-right", "B",
232, "shoot", "up-right", "C",
287, "fire", "B",
288, "shoot", "right", "C",
289, "go", "down",
299, "stop",
324, "shoot", "left", "C",
325, "go", "down",
329, "shoot", "up", "B",
350, "shoot", "right", "C",
--351, "shoot", "down-right", "B",
352, "stop",
369, "shoot", "up", "B",
373, "shoot", "right", "B",
374, "go", "up-left",
394, "shoot", "down-right", "C",
403, "go", "up",
413, "stop",
430, "fire", "B",
431, "go", "up-left",
437, "shoot", "left", "C",
438, "go", "down-right",
452, "tap", "down",
453, "stop",
473, "shoot", "up", "B",
519, "shoot", "up", "B",
520, "go", "down",
}
},
--[[
["2-5"] =
{
[1] =
{
3, "fire", "B",
4, "go", "up-right",
124, "go", "up",
200, "go", "right",
206, "go", "up-right",
218, "go", "up", "fire", "B",
234, "shoot", "up-left", "C",
--288, "shoot", "left", "C",
289, "fire", "B",
290, "go", "left",
291, "fire", "C",
292, "go", "down-right",
300, "go", "right",
327, "fire", "C",
336, "go", "up", "fire", "B",
340, "stop",
343, "shoot", "right", "C",
344, "go", "down",
373, "shoot", "up", "B",
377, "shoot", "right", "B",
378, "stop",
391, "shoot", "right", "C",
392, "go", "up",
404, "stop",
425, "fire", "B",
439, "go", "down",
462, "shoot", "up", "B",
476, "stop",
505, "shoot", "up", "B",
506, "go", "down",
572, "stop",
719, "fire", "B",
},
[2] =
{
3, "tap", "up",
30, "fire", "B",
31, "go", "up-left",
82, "shoot", "up-right", "B",
120, "go", "up",
168, "shoot", "right", "B",
169, "go", "down-left",
192, "shoot", "left", "B",
193, "go", "up-left",
216, "go", "left",
249, "fire", "B",
250, "go", "up-left",
312, "stop",
313, "go", "up", "fire", "B",
324, "stop",
386, "shoot", "up", "B",
},
},
]]--
["2-6"] =
{
[1] =
{
5, "fire", "B",
6, "go", "up-right",
53, "go", "up",
68, "fire", "B", -- To hit archer
118, "fire", "B", -- To hit knight 2 (1)
159, "go", "right", "fire", "B",
167, "shoot", "up", "B",
169, "fire", "B",
182, "shoot", "up-right", "C",
191, "shoot", "up-left", "B",
192, "go", "left",
200, "shoot", "up", "B",
201, "go", "up-left",
232, "go", "up", "fire", "B", "fire", "C",
236, "shoot", "left", "B",
248, "shoot", "up-left", "B",
250, "shoot", "right", "B",
271, "shoot", "up-left", "B",
276, "shoot", "right", "B",
296, "shoot", "left", "B",
297, "stop",
484, "fire", "B",
},
[2] =
{
2, "fire", "B",
3, "go", "up",
33, "go", "up-left",
93, "go", "up", "fire", "B",
126, "fire", "C",
129, "shoot", "up-left", "B",
150, "fire", "B",
157, "shoot", "up-left", "B",
172, "stop",
179, "shoot", "up-left", "C",
180, "go", "up",
192, "fire", "B",
201, "shoot", "up-right", "B",
214, "shoot", "left", "B",
219, "fire", "B",
222, "stop",
223, "fire", "B",
224, "fire", "C",
225, "go", "up",
227, "stop",
236, "shoot", "right", "B",
237, "go", "up-right",
253, "go", "right", "fire", "B",
255, "shoot", "left", "B",
256, "go", "up-right",
266, "go", "up",
269, "shoot", "up-left", "C",
275, "shoot", "left", "B",
277, "shoot", "right", "B",
284, "shoot", "up-right", "B",
285, "go", "left",
296, "shoot", "right", "B",
300, "stop",
},
},
["2-7"] =
{
[1] =
{
5, "fire", "B",
6, "go", "up-right",
79, "go", "right",
106, "go", "up-right", "fire", "C",
114, "go", "up",
120, "fire", "B",
126, "shoot", "left", "B",
--143, "shoot", "left", "B",
143, "fire", "B",
171, "shoot", "left", "B",
172, "shoot", "up-right", "C",
188, "shoot", "right", "B",
197, "fire", "B",
212, "stop",
217, "shoot", "up-right", "C",
218, "tap", "up",
219, "fire", "B",
231, "go", "up",
319, "shoot", "left", "B",
320, "go", "right",
329, "shoot", "left", "B",
345, "shoot", "left", "B",
360, "shoot", "left", "C",
--360, "shoot", "left", "B",
361, "tap", "up-right",
362, "tap", "up-right",
371, "go", "up",
380, "stop",
386, "shoot", "down", "B",
388, "shoot", "down", "B",
570, "fire", "B",
},
[2] =
{
2, "fire", "B",
3, "go", "up-left",
9, "fire", "C",
78, "go", "left",
104, "go", "up-left",
114, "shoot", "up-right", "B",
115, "go", "up",
122, "fire", "C",
131, "shoot", "left", "B",
136, "shoot", "right", "B",
148, "fire", "B",
176, "shoot", "left", "C",
177, "shoot", "down", "B",
188, "fire", "B",
193, "stop",
198, "shoot", "left", "B",
199, "go", "up",
217, "stop",
219, "shoot", "up", "B",
221, "shoot", "up-right", "C",
222, "go", "up",
224, "stop",
231, "go", "up",
234, "shoot", "right", "B",
235, "stop",
244, "shoot", "right", "B",
245, "go", "down",
267, "shoot", "left", "B",
268, "go", "up-left",
326, "shoot", "down", "B",
328, "shoot", "down", "B",
330, "go", "up",
378, "fire", "B",
380, "fire", "B",
381, "stop",
387, "go", "up",
--403, "go", "right",
403, "stop",
409, "stop",
430, "shoot", "right", "B",
432, "fire", "B",
433, "go", "up",
450, "shoot", "down", "B",
451, "stop",
458, "shoot", "left", "B",
460, "shoot", "down", "C",
461, "shoot", "right", "B",
},
},
["2-8"] =
{
[1] =
{
3, "fire", "B",
8, "shoot", "right", "B",
9, "go", "up",
10, "fire", "B",
39, "fire", "B",
65, "shoot", "down-right", "C",
76, "fire", "B",
104, "fire", "B",
127, "fire", "B",
154, "fire", "B",
155, "fire", "C",
--181, "fire", "B",
201, "fire", "B",
203, "shoot", "right", "B",
219, "stop",
220, "go", "up-right",
221, "fire", "B",
230, "go", "right",
233, "shoot", "down-right", "B",
235, "shoot", "up", "B",
247, "shoot", "up", "B",
256, "stop",
258, "shoot", "down-right", "B",
266, "shoot", "up", "B",
274, "shoot", "down-right", "C",
275, "go", "up-right",
284, "stop",
--300, "go", "up-left",
319, "shoot", "down-right", "C",
320, "go", "up-right",
343, "go", "right",
355, "stop",
373, "shoot", "down-right", "B",
375, "shoot", "down-right", "B",
583, "fire", "B",
},
[2] =
{
0, "fire", "B",
1, "go", "up",
72, "fire", "B",
100, "fire", "B",
176, "go", "up-right",
184, "stop",
207, "shoot", "up-left", "B",
208, "go", "down",
215, "stop",
216, "shoot", "left", "B",
229, "shoot", "up-left", "B",
231, "shoot", "up-left", "B",
232, "go", "down",
256, "shoot", "up-left", "B",
273, "stop",
276, "shoot", "down-left", "B",
278, "shoot", "down-left", "B",
279, "go", "up",
--274, "shoot", "up-left", "B",
--289, "shoot", "down-left", "B",
304, "shoot", "up-left", "B",
345, "stop",
383, "shoot", "up-left", "B",
385, "shoot", "up-left", "B",
},
},
["2-9"] =
{
[1] =
{
0, "go", "down",
126, "stop",
128, "fire", "B",
132, "fire", "B", "go", "up",
136, "fire", "C",
180, "fire", "B",
196, "stop",
204, "fire", "C",
303, "fire", "C",
387, "fire", "C",
415, "go", "right",
422, "shoot", "up", "C",
541, "shoot", "up-right", "C",
752, "fire", "B",
},
[2] =
{
1, "fire", "B",
6, "go", "up-left", "fire", "B",
45, "fire", "B",
46, "go", "up",
77, "fire", "B",
84, "go", "up-left",
112, "shoot", "up", "B",
117, "go", "left",
247, "go", "up",
280, "go", "up-right",
298, "shoot", "up-left", "B",
313, "shoot", "up-left", "B",
314, "go", "right",
329, "shoot", "up-right", "B",
330, "stop",
352, "shoot", "up-right", "B",
354, "shoot", "up-right", "B",
356, "go", "right",
374, "shoot", "up-right", "B",
379, "shoot", "up-right", "B",
408, "go", "up", "fire", "B",
414, "stop",
415, "shoot", "up-right", "B",
417, "shoot", "up-right", "B",
424, "go", "up",
450, "shoot", "up-left", "B",
461, "shoot", "up-left", "B",
474, "shoot", "up-right", "B",
479, "go", "right",
480, "shoot", "up-right", "B",
487, "shoot", "up-left", "C",
494, "shoot", "left", "B",
501, "go", "down",
505, "shoot", "up", "B",
507, "shoot", "up-right", "B",
508, "stop",
509, "shoot", "up-right", "B",
518, "shoot", "right", "B",
520, "shoot", "up", "B",
521, "tap", "down",
522, "tap", "down",
529, "shoot", "left", "B",
540, "shoot", "right", "B",
542, "shoot", "right", "B",
},
},
["2-10"] =
{
[1] =
{
5, "fire", "B",
7, "go", "up",
12, "shoot", "up-right", "B",
41, "shoot", "up-right", "B",
42, "go", "up-left",
46, "go", "up",
59, "fire", "B",
86, "fire", "C",
110, "fire", "B",
134, "shoot", "up-right", "C",
--137, "fire", "B",
153, "shoot", "up-right", "B",
156, "fire", "B",
170, "go", "up-right",
175, "fire", "C",
178, "fire", "B",
181, "go", "right",
--160, "go", "up-right",
184, "go", "right",
185, "fire", "B",
198, "shoot", "up-left", "B",
203, "fire", "C",
210, "stop", "fire", "C",
211, "go", "left",
212, "shoot", "up-left", "B",
215, "shoot", "up-left", "B",
216, "shoot", "right", "C",
219, "shoot", "right", "C",
222, "shoot", "right", "C",
225, "shoot", "right", "C",
228, "shoot", "down", "B",
231, "shoot", "right", "C",
234, "shoot", "right", "C",
241, "shoot", "up", "B",
244, "shoot", "right", "C",
247, "shoot", "right", "C",
250, "shoot", "right", "C",
253, "shoot", "right", "C",
255, "shoot", "right", "C",
258, "shoot", "right", "C",
261, "shoot", "right", "C",
264, "shoot", "right", "B",
265, "shoot", "up", "C",
266, "shoot", "right", "B",
267, "stop",
268, "shoot", "right", "B",
270, "shoot", "right", "B",
272, "shoot", "right", "B",
274, "shoot", "right", "B",
276, "shoot", "right", "B",
278, "shoot", "right", "B",
280, "shoot", "right", "B",
282, "shoot", "right", "B",
284, "shoot", "right", "B",
286, "shoot", "right", "B",
287, "go", "right",
305, "shoot", "down", "B",
306, "go", "left",
307, "shoot", "up-right", "B",
315, "go", "down",
323, "stop",
327, "go", "right",
554, "fire", "B",
},
[2] =
{
2, "fire", "B",
4, "go", "up",
52, "shoot", "left", "B",
64, "shoot", "up-left", "C",
65, "go", "up-left",
68, "go", "up",
69, "shoot", "left", "B",
90, "fire", "B",
91, "go", "up-left",
104, "go", "left",
107, "shoot", "up", "C",
108, "go", "up-left",
114, "fire", "B",
127, "go", "up", "fire", "B",
158, "shoot", "up-right", "B",
170, "go", "up-left",
174, "shoot", "up", "B",
206, "fire", "C",
207, "shoot", "right", "B",
210, "shoot", "up-right", "B",
225, "shoot", "right", "B",
251, "shoot", "up", "B",
252, "shoot", "up-right", "C",
253, "shoot", "up-left", "B",
254, "go", "down",
258, "stop",
263, "shoot", "up", "B",
264, "go", "up",
271, "go", "down",
275, "shoot", "up", "B",
276, "go", "left",
286, "shoot", "up-left", "B",
294, "go", "down",
301, "shoot", "down", "B",
303, "shoot", "down", "B",
305, "stop",
311, "shoot", "down-right", "C",
312, "go", "up",
317, "shoot", "up", "C",
318, "go", "right",
328, "shoot", "down-right", "B",
355, "stop",
356, "tap", "down-left",
},
},
["3-1"] =
{
[1] =
{
7, "fire", "B",
9, "go", "up-right",
54, "go", "up", "fire", "B",
84, "fire", "B",
98, "go", "up-right",
115, "shoot", "up-right", "C",
120, "go", "up",
132, "shoot", "up-left", "B",
149, "go", "up-left",
155, "go", "up",
165, "fire", "B",
166, "go", "right",
--167, "fire", "B",
174, "fire", "C",
178, "shoot", "up", "B",
210, "stop",
211, "tap", "down-right",
411, "fire", "B",
},
[2] =
{
4, "fire", "B",
6, "go", "up-left",
32, "fire", "B",
51, "shoot", "up", "C",
64, "fire", "B",
96, "go", "up",
116, "shoot", "up-right", "B",
121, "shoot", "left", "B",
122, "go", "up-left",
130, "fire", "B",
142, "shoot", "up-right", "B",
167, "go", "up", "fire", "B",
185, "fire", "B",
186, "go", "left",
197, "go", "up", "fire", "B",
200, "fire", "C",
201, "go", "down-left",
211, "stop",
},
},
["3-2"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
49, "fire", "B",
50, "stop",
51, "go", "up",
53, "fire", "C",
73, "shoot", "up-right", "B",
75, "stop",
95, "fire", "C",
97, "shoot", "up-right", "B",
98, "go", "up-left",
114, "go", "up",
131, "fire", "B",
132, "go", "up-left",
142, "shoot", "up-right", "C",
149, "shoot", "up", "B",
166, "shoot", "up-right", "B",
167, "stop",
180, "shoot", "up", "B",
191, "shoot", "up-right", "C",
192, "go", "left",
202, "go", "up",
206, "fire", "B",
211, "fire", "B",
212, "go", "up-right",
218, "go", "up",
226, "go", "up-right",
230, "go", "right",
244, "shoot", "up", "B",
245, "go", "right",
451, "fire", "B",
},
[2] =
{
0, "fire", "B",
8, "go", "up",
21, "fire", "B",
24, "go", "up-left",
28, "go", "up",
79, "fire", "C",
82, "shoot", "up-left", "B",
115, "fire", "B",
124, "stop",
128, "shoot", "up-left", "B",
129, "go", "up",
130, "fire", "C",
131, "go", "up-left",
135, "go", "up",
159, "shoot", "left", "B",
162, "fire", "B",
173, "shoot", "up-left", "B",
174, "go", "left",
187, "shoot", "up", "B",
188, "go", "down-left",
192, "go", "left",
211, "shoot", "up-left", "C"
},
},
["3-3"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
51, "shoot", "up", "C",
96, "shoot", "up-left", "C",
124, "go", "up",
199, "fire", "C",
202, "go", "up-left", "fire", "B",
204, "fire", "B",
226, "go", "left",
240, "stop",
241, "tap", "down-right",
423, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
33, "fire", "C",
64, "go", "up-left", "fire", "B",
78, "fire", "C",
101, "go", "up",
141, "go", "up-left",
143, "go", "up",
175, "go", "up-left",
183, "go", "up",
188, "go", "up-right",
196, "go", "up",
207, "shoot", "up-left", "C", "fire", "B",
215, "shoot", "up-right", "B",
216, "go", "down",
227, "stop",
},
},
["3-4"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
51, "go", "up",
63, "shoot", "up-right", "B",
100, "shoot", "left", "B",
136, "fire", "C",
137, "shoot", "left", "B",
138, "go", "down-right",
144, "go", "right",
148, "shoot", "up-right", "B",
157, "shoot", "up", "B",
165, "go", "up-right",
206, "go", "up", "fire", "B",
216, "shoot", "up-right", "B",
217, "go", "left",
229, "shoot", "up-left", "C",
230, "go", "down-right",
232, "go", "right",
250, "stop",
251, "shoot", "up", "B",
260, "shoot", "up-left", "B",
270, "shoot", "left", "C",
442, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up-left",
57, "go", "up",
64, "shoot", "up-left", "B",
105, "shoot", "right", "B",
132, "shoot", "right", "B",
133, "go", "up-left",
136, "fire", "B",
143, "go", "up-right",
--133, "stop",
--142, "go", "up",
154, "shoot", "up", "C", -- Y=243
155, "go", "up-left",
162, "go", "left",
173, "shoot", "up", "B",
176, "go", "up-left",
202, "fire", "B",
215, "shoot", "up", "B",
216, "go", "right",
227, "shoot", "up-right", "C",
228, "go", "down-left",
244, "go", "left",
250, "stop",
251, "shoot", "up", "B",
260, "shoot", "up-right", "B",
270, "shoot", "right", "C",
--194, "shoot", "up-right", "C",
},
},
["3-5"] =
{
[1] =
{
3, "fire", "C",
5, "go", "up-right",
72, "shoot", "up-left", "C",
108, "shoot", "up-left", "C",
109, "go", "up",
133, "shoot", "up-left", "C",
150, "shoot", "up-left", "C",
171, "go", "up-right",
172, "fire", "B",
189, "go", "up",
207, "shoot", "up-right", "B",
208, "tap", "down",
209, "stop",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
98, "fire", "C",
99, "go", "left",
133, "stop",
141, "shoot", "up", "C",
142, "go", "up",
165, "go", "up-right",
217, "go", "up",
220, "fire", "C",
221, "go", "down-right",
239, "go", "down", "fire", "B",
259, "shoot", "right", "B",
431, "fire", "B",
},
},
["3-6"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-left",
11, "go", "up",
78, "fire", "C",
124, "go", "up-right", "fire", "C",
146, "go", "right",
151, "go", "up-left",
161, "go", "up",
171, "fire", "C",
172, "shoot", "up-left", "B",
173, "go", "up-left",
186, "go", "left",
189, "stop",
210, "shoot", "up", "C",
211, "go", "right",
225, "stop",
--216, "shoot", "up-right", "B",
226, "shoot", "up-left", "B",
243, "go", "right",
269, "shoot", "up", "B",
278, "go", "up",
293, "stop",
--306, "fire", "B",
523, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
152, "fire", "C",
162, "go", "up-left",
165, "shoot", "up-right", "B",
172, "go", "left",
191, "fire", "C",
192, "go", "up-left",
236, "shoot", "up-right", "C",
237, "shoot", "right", "B",
238, "go", "left",
254, "shoot", "up", "C",
255, "shoot", "up-left", "B",
256, "go", "down-left",
270, "shoot", "left", "C",
271, "go", "up",
282, "go", "up-left",
296, "go", "left",
304, "shoot", "up", "B",
305, "go", "up-left",
309, "go", "up",
315, "shoot", "up-left", "B",
316, "stop",
},
},
["3-7"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
30, "go", "up",
70, "shoot", "up-right", "C",
111, "shoot", "up-right", "B",
128, "shoot", "up-right", "B",
129, "tap", "up-right",
166, "shoot", "up-right", "C",
169, "fire", "B",
171, "shoot", "right", "B",
172, "go", "up-right",
186, "go", "up",
207, "shoot", "up-right", "B",
405, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up-left",
29, "go", "up",
69, "shoot", "up-left", "C",
106, "fire", "B",
109, "stop",
110, "shoot", "up-left", "B",
111, "go", "left",
113, "stop",
133, "go", "left",
140, "go", "up",
175, "shoot", "up-left", "B", "fire", "C",
184, "go", "up-right",
196, "go", "up",
219, "shoot", "up-left", "B",
220, "go", "down-left",
},
},
["3-8"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
31, "go", "up", "fire", "B",
65, "fire", "C",
67, "shoot", "up-left", "B",
68, "go", "up-right",
116, "shoot", "up", "C",
117, "shoot", "left", "B",
160, "fire", "B",
162, "go", "up",
170, "shoot", "up-left", "C",
195, "shoot", "up-right", "B",
240, "go", "up-left",
286, "shoot", "left", "B", -- Hits 321
309, "stop",
478, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up-left",
51, "go", "up",
70, "fire", "C",
71, "shoot", "up-right", "B",
72, "go", "up-left",
116, "shoot", "up", "C",
144, "shoot", "right", "B",
145, "go", "up",
161, "shoot", "up-left", "B",
165, "shoot", "up-right", "C",
192, "shoot", "up-left", "B",
242, "go", "up-right",
289, "shoot", "right", "B", -- 334
300, "stop",
},
},
["3-9"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up",
59, "go", "up-right",
59+43, "shoot", "up", "C",
147, "shoot", "left", "B",
148, "shoot", "up-left", "C",
149, "go", "up-right",
167, "go", "up",
198, "fire", "C",
199, "go", "left",
202, "shoot", "up-left", "B",
203, "go", "right",
223, "go", "down",
421, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
83, "go", "left", "fire", "B",
88, "go", "up-left",
96, "shoot", "up-right", "B",
103, "shoot", "up", "C",
145, "shoot", "up-right", "C",
185, "go", "up",
195, "shoot", "up-right", "B",
196, "go", "up-left",
210, "shoot", "up", "C",
211, "go", "down",
},
},
["3-10"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
112, "fire", "B",
114, "fire", "C",
115, "fire", "B",
--75, "go", "up",
152, "fire", "B",
156, "go", "up",
158, "shoot", "up-right", "B", "fire", "C",
160, "shoot", "up-right", "B",
172, "shoot", "up-right", "C",
173, "go", "up-left",
180, "go", "up",
196, "shoot", "left", "C",
197, "shoot", "up-left", "B",
205, "shoot", "up-left", "B",
--205, "shoot", "up-left", "B",
221, "go", "up-left",
230, "fire", "B",
231, "fire", "C",
233, "go", "up",
234, "shoot", "up-left", "B",
240, "shoot", "up-left", "B",
244, "shoot", "up-left", "B",
245, "stop",
246, "shoot", "up-left", "B",
248, "fire", "B",
250, "fire", "B",
252, "fire", "B",
254, "fire", "B",
256, "fire", "B",
258, "fire", "B",
260, "fire", "B",
262, "fire", "B",
264, "fire", "B",
266, "fire", "B",
268, "fire", "B",
270, "fire", "B",
272, "fire", "B",
274, "fire", "B",
276, "fire", "B",
278, "fire", "B",
280, "fire", "B",
282, "fire", "B",
284, "fire", "B",
286, "fire", "B",
288, "fire", "B",
290, "fire", "B",
291, "go", "left",
321, "shoot", "down-left", "C",
322, "shoot", "up-left", "B",
323, "go", "down-right",
557, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up-left",
80, "go", "up", "fire", "B",
84, "fire", "B",
108, "shoot", "up-right", "C",
125, "fire", "B",
129, "fire", "C",
133, "fire", "B",
149, "fire", "C", "fire", "B",
154, "fire", "B",
162, "fire", "B",
163, "fire", "C",
164, "fire", "B",
169, "fire", "B",
173, "fire", "C",
176, "fire", "B",
178, "fire", "B",
182, "stop",
187, "fire", "B",
189, "fire", "B",
191, "fire", "B",
193, "fire", "B",
195, "fire", "B",
197, "fire", "B",
199, "fire", "B",
201, "fire", "B",
203, "fire", "B",
205, "shoot", "up-right", "B",
209, "go", "up",
221, "shoot", "down-right", "C",
238, "shoot", "up-right", "B",
239, "go", "left",
267, "shoot", "up-right", "B",
268, "go", "up-left",
280, "go", "left",
304, "shoot", "up-left", "B",
329, "shoot", "up-left", "B",
331, "go", "right",
},
},
["4-1"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
88, "go", "right", "fire", "B",
148, "shoot", "up-right", "B",
183, "go", "up-right", "fire", "B",
226, "go", "right",
244, "fire", "B",
258, "stop",
427, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
66, "go", "up-left", "fire", "B",
104, "shoot", "up", "B",
107, "shoot", "right", "B",
108, "go", "up-right",
128, "shoot", "right", "B",
139, "fire", "B",
141, "fire", "C",
142, "go", "up",
177, "shoot", "up-right", "B",
181, "shoot", "right", "B",
210, "stop",
221, "shoot", "down-right", "B",
223, "shoot", "right", "B",
210, "stop",
},
},
["4-2"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up",
53, "fire", "C",
76, "shoot", "up-right", "B",
105, "shoot", "up-right", "B",
136, "fire", "B",
156, "fire", "C",
157, "go", "right",
191, "shoot", "up-right", "B",
192, "go", "up",
195, "shoot", "up", "C",
220, "go", "up-right",
280, "stop",
422, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up-left",
76, "go", "up",
112, "shoot", "up-right", "B",
129, "shoot", "up-left", "C",
130, "shoot", "up-right", "B",
178, "go", "right",
181, "shoot", "up", "C",
182, "shoot", "up-left", "B",
183, "go", "up-right",
185, "shoot", "down-right", "B",
194, "go", "right",
220, "shoot", "up", "C",
221, "shoot", "up-right", "B",
232, "stop",
233, "tap", "down-left",
},
},
["4-3"] =
{
[1] =
{
3, "fire", "B",
5, "go", "right",
35, "go", "up-right", "fire", "B",
61, "fire", "B",
100, "go", "up", "fire", "B",
110, "fire", "B",
142, "fire", "B",
174, "fire", "B",
224, "fire", "B",
225, "go", "up-right",
227, "go", "up",
237, "shoot", "down-left", "C",
281, "fire", "B",
292, "shoot", "down-left", "C",
325, "stop",
334, "shoot", "down-left", "C",
340, "shoot", "up", "B",
378, "fire", "B",
379, "go", "down",
420, "stop",
564, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "left",
34, "go", "up-left",
136, "go", "up", "fire", "B", "fire", "C",
153, "fire", "B",
185, "fire", "B",
235, "fire", "B",
236, "go", "up-right",
238, "go", "up",
253, "shoot", "down-right", "C",
254, "go", "up-right",
266, "go", "up",
292, "fire", "B",
293, "go", "up-right",
309, "go", "up",
311, "shoot", "down-right", "C",
344, "stop",
352, "fire", "B",
353, "shoot", "down-right", "C",
390, "shoot", "up", "B",
391, "go", "down",
420, "stop",
},
},
["4-4"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up",
96, "shoot", "up-left", "B",
97, "go", "up-left",
100, "go", "up", "fire", "C",
101, "shoot", "down-right", "B",
118, "shoot", "up-left", "B",
153, "fire", "B",
205, "shoot", "up-right", "B",
206, "go", "right",
217, "shoot", "up", "B",
219, "go", "down",
230, "go", "right",
231, "fire", "C",
270, "stop",
410, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
51, "go", "up-left", "fire", "B",
55, "go", "up",
89, "fire", "C",
95, "shoot", "down-left", "B",
108, "shoot", "right", "B",
121, "shoot", "up-right", "B",
152, "fire", "B",
154, "go", "up-left",
164, "go", "up",
219, "shoot", "up-left", "B",
220, "go", "left",
224, "shoot", "up", "B",
225, "go", "down-left",
229, "go", "down",
249, "go", "left",
250, "fire", "C",
270, "stop",
},
},
["4-5"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-left",
11, "go", "up", "fire", "B",
34, "fire", "B",
114, "shoot", "up-left", "B",
145, "fire", "C",
159, "shoot", "left", "B",
160, "go", "up-right",
180, "go", "right",
184, "shoot", "up", "C",
206, "shoot", "up-right", "C",
207, "shoot", "down-right", "B",
234, "stop",
237, "shoot", "up", "C",
431, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
53, "fire", "B",
54, "go", "left",
68, "shoot", "up", "B",
89, "go", "up-left",
120, "fire", "B",
132, "stop",
143, "go", "left",
150, "go", "up",
214, "go", "up-right",
215, "fire", "B",
216, "go", "up",
223, "shoot", "up-right", "B",
224, "go", "up-left",
238, "shoot", "up", "C",
276, "stop",
},
},
["4-6"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-left",
11, "go", "up",
96, "fire", "B",
128, "fire", "B",
129, "go", "up-right",
147, "go", "up", "fire", "B",
166, "shoot", "right", "C",
173, "fire", "B",
175, "shoot", "down", "B",
176, "go", "right",
205, "shoot", "up-right", "C",
206, "go", "up-left",
222, "go", "left",
231, "shoot", "up-right", "C",
236, "shoot", "down", "B",
437, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up-right",
16, "go", "up",
98, "fire", "B",
130, "fire", "B",
144, "shoot", "left", "B",
155, "go", "up-left",
178, "go", "left",
184, "shoot", "up-left", "C",
185, "shoot", "up", "B",
186, "go", "up-right",
196, "shoot", "down", "B",
197, "go", "up",
215, "shoot", "down", "B",
216, "go", "left",
223, "shoot", "up-left", "C",
224, "go", "right",
227, "stop",
237, "shoot", "up", "B",
238, "go", "right",
242, "stop", "tap", "down-left",
--150, "go", "left", "fire", "B",
--158, "shoot", "up-left", "B",
--159, "go", "up-left",
},
},
["4-7"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
100, "go", "up-left",
--123, "shoot", "left", "B",
123, "go", "up",
135, "shoot", "left", "B",
168, "shoot", "down-left", "B",
173, "go", "up-left",
191, "shoot", "down-left", "B",
192, "go", "left",
199, "shoot", "up", "C",
200, "go", "up-left",
217, "go", "up",
226, "go", "up-right",
253, "go", "right",
257, "shoot", "up-left", "C",
270, "go", "up-right",
306, "shoot", "up", "B",
311, "go", "up",
366, "stop",
510, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
119, "go", "up-left",
153, "fire", "B",
163, "shoot", "up", "C",
173, "fire", "B",
200, "fire", "B",
231, "shoot", "up", "B",
261, "go", "up",
262, "fire", "B",
284, "shoot", "up-left", "B",
285, "stop",
286, "shoot", "right", "C",
309, "shoot", "up", "B",
366, "stop",
},
},
["4-8"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up",
62, "go", "up-right",
63, "fire", "C",
74, "go", "up",
105, "fire", "B",
128, "fire", "B",
130, "go", "up-left",
138, "go", "up",
162, "shoot", "up-left", "B",
195, "shoot", "up-left", "B",
196, "go", "up-right",
197, "shoot", "right", "B",
221, "go", "right", "fire", "B",
223, "fire", "B",
246, "fire", "B",
271, "fire", "B",
293, "shoot", "down", "C",
304, "fire", "B",
338, "shoot", "down", "C",
339, "shoot", "down-right", "B",
364, "shoot", "down-right", "B",
556, "fire", "B",
},
[2] =
{
3, "fire", "B",
8, "fire", "C",
9, "go", "left",
44, "stop",
50, "shoot", "up", "C",
51, "go", "left",
92, "shoot", "up", "C",
134, "shoot", "up", "C",
173, "stop",
176, "shoot", "up", "C",
177, "go", "up-left",
248, "go", "up",
290, "go", "down",
300, "fire", "B",
},
},
["4-9"] =
{
[1] =
{
0, "fire", "B",
2, "go", "right",
45, "go", "up-right",
76, "go", "up",
119, "fire", "C",
154, "stop", "shoot", "left", "B",
161, "fire", "C", "go", "up",
169, "go", "left", "fire", "B",
213, "go", "up-left",
231, "go", "up", "fire", "B",
295, "shoot", "up-right", "C",
296, "go", "up-right",
299, "go", "up",
306, "shoot", "right", "B",
322, "stop",
390, "go", "up",
397, "go", "right",
428, "go", "down-right",
461, "go", "down",
471, "go", "right",
472, "fire", "B", "stop",
641, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "left",
46, "go", "up-left",
77, "go", "up",
120, "fire", "C",
152, "shoot", "right", "B",
156, "stop",
162, "fire", "C", "go", "up",
170, "go", "right",
202, "go", "down",
206, "shoot", "up-left", "C",
207, "shoot", "up-right", "B",
208, "go", "right",
216, "go", "up-right",
241, "go", "up", "fire", "B",
305, "go", "up-left", "fire", "C",
311, "go", "up",
337, "go", "left",
370, "go", "down-left",
392, "shoot", "up-left", "C",
403, "go", "down",
414, "go", "left",
440, "shoot", "up", "B",
472, "fire", "B", "stop",
},
},
["4-10"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
17, "go", "up", "fire", "B",
51, "fire", "C",
61, "shoot", "up-right", "B",
80, "shoot", "up-right", "B",
87, "go", "right",
172, "go", "up-right",
184, "go", "right",
195, "go", "down-right",
207, "go", "down",
218, "go", "down-left",
230, "go", "left",
241, "go", "up-left",
253, "go", "up",
264, "go", "up-right",
276, "go", "right",
287, "go", "down-right",
299, "go", "down",
310, "go", "down-left",
322, "go", "left",
333, "go", "up-left",
345, "go", "up",
356, "go", "left",
358, "tap", "right",
361, "tap", "right",
364, "tap", "right",
367, "tap", "right",
370, "tap", "right",
373, "tap", "right",
376, "tap", "right",
379, "tap", "right",
382, "tap", "right",
385, "tap", "right",
388, "tap", "right",
391, "tap", "right",
394, "tap", "right",
397, "tap", "right",
400, "tap", "right",
403, "tap", "right",
406, "tap", "right",
409, "tap", "right",
412, "tap", "right",
415, "tap", "right",
418, "tap", "right",
421, "tap", "right",
424, "tap", "right",
427, "tap", "right",
430, "tap", "right",
433, "tap", "right",
436, "tap", "right",
439, "tap", "right",
442, "stop",
443, "shoot", "right", "C",
533, "shoot", "right", "C",
623, "shoot", "right", "C",
740, "go", "right",
780, "stop",
781, "shoot", "up", "B",
783, "fire", "B",
790, "fire", "C",
806, "fire", "B", "fire", "C",
808, "fire", "B",
810, "fire", "B", "fire", "C",
812, "fire", "B",
814, "fire", "B", "fire", "C",
816, "fire", "B",
818, "fire", "B", "fire", "C",
820, "fire", "B",
822, "fire", "B", "fire", "C",
824, "fire", "B",
826, "fire", "B", "fire", "C",
828, "fire", "B",
830, "fire", "B", "fire", "C",
832, "fire", "B",
836, "go", "up",
944, "stop", "tap", "down-left",
1224, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
8, "fire", "B",
47, "fire", "B",
62, "shoot", "up-left", "C",
82, "shoot", "up-left", "B",
85, "go", "left",
172, "go", "down-left",
184, "go", "left",
195, "go", "up-left",
207, "go", "up",
218, "go", "up-right",
230, "go", "right",
241, "go", "down-right",
253, "go", "down",
264, "go", "down-left",
276, "go", "left",
287, "go", "up-left",
299, "go", "up",
310, "go", "up-right",
322, "go", "right",
333, "go", "down-right",
345, "go", "down",
356, "go", "right",
358, "tap", "left",
361, "tap", "left",
364, "tap", "left",
367, "tap", "left",
370, "tap", "left",
373, "tap", "left",
376, "tap", "left",
379, "tap", "left",
382, "tap", "left",
385, "tap", "left",
388, "tap", "left",
391, "tap", "left",
394, "tap", "left",
397, "tap", "left",
400, "tap", "left",
403, "tap", "left",
406, "tap", "left",
409, "tap", "left",
412, "tap", "left",
415, "tap", "left",
418, "tap", "left",
421, "tap", "left",
424, "tap", "left",
427, "tap", "left",
430, "tap", "left",
433, "tap", "left",
436, "tap", "left",
439, "tap", "left",
442, "stop",
443, "tap", "left",
488, "shoot", "left", "C",
578, "shoot", "left", "C",
668, "shoot", "right", "C",
740, "go", "left",
780, "stop",
781, "shoot", "up", "B",
783, "fire", "B",
790, "fire", "C",
806, "fire", "B", "fire", "C",
808, "fire", "B",
810, "fire", "B", "fire", "C",
812, "fire", "B",
814, "fire", "B", "fire", "C",
816, "fire", "B",
818, "fire", "B", "fire", "C",
820, "fire", "B",
822, "fire", "B", "fire", "C",
824, "fire", "B",
826, "fire", "B", "fire", "C",
828, "fire", "B",
830, "fire", "B", "fire", "C",
832, "fire", "B",
836, "go", "up",
944, "stop", "tap", "down-right",
},
},
["5-1"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up",
41, "go", "up-right",
84, "fire", "C",
120, "shoot", "up-right", "B",
122, "shoot", "up", "B",
129, "fire", "B",
139, "go", "up", "fire", "B",
143, "go", "up-left",
172, "go", "up", "fire", "C",
196, "shoot", "up-right", "B",
219, "shoot", "up-left", "B",
220, "go", "down",
227, "stop", "shoot", "up", "B",
231, "go", "up-left",
253, "shoot", "up-right", "B",
254, "go", "left",
268, "shoot", "up", "B",
285, "stop",
457, "fire", "B",
},
[2] =
{
0, "fire", "B",
3, "go", "up",
29, "go", "up-left",
79, "go", "up",
118, "shoot", "up-left", "B",
146, "fire", "C",
147, "shoot", "down-left", "B",
152, "shoot", "up-left", "B",
153, "go", "up-left",
165, "go", "left",
170, "go", "down-left",
178, "go", "left",
190, "shoot", "up", "B",
193, "go", "up-left",
204, "shoot", "up", "B",
219, "go", "up",
234, "go", "up-right", "fire", "C",
240, "shoot", "up", "B",
260, "go", "right",
263, "shoot", "up-left", "B",
280, "go", "down",
296, "stop",
},
},
["5-2"] =
{
[1] =
{
0, "fire", "B",
2, "go", "right",
22, "go", "up-right",
118, "shoot", "up", "B",
121, "shoot", "up", "B",
126, "shoot", "up", "C",
133, "go", "up",
164, "fire", "B",
165, "go", "up-left",
167, "shoot", "left", "B",
168, "go", "up", "fire", "C",
185, "fire", "C",
191, "fire", "B",
193, "fire", "B",
196, "fire", "C",
204, "fire", "C",
206, "fire", "C",
207, "fire", "B",
209, "fire", "B",
210, "go", "down-left",
218, "go", "down",
224, "go", "up", "fire", "B", "fire", "C",
226, "fire", "B",
231, "fire", "C",
236, "fire", "B", "fire", "C",
237, "go", "down-left",
239, "shoot", "up", "B",
240, "go", "left",
244, "shoot", "up-left", "B",
253, "go", "up-left",
271, "fire", "B",
286, "stop",
289, "shoot", "down", "B",
509, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up-left",
69, "fire", "B",
72, "go", "up", "fire", "B",
100, "go", "up-left",
105, "fire", "B",
128, "fire", "B",
130, "fire", "C",
134, "fire", "B",
142, "go", "up",
169, "shoot", "up-left", "C",
170, "stop",
174, "shoot", "right", "B",
175, "go", "up",
179, "shoot", "up-left", "B",
184, "shoot", "up-left", "C",
197, "shoot", "up-right", "B", "go", "up-right",
201, "shoot", "up-left", "B",
204, "shoot", "left", "C",
217, "shoot", "left", "B", "fire", "C",
228, "shoot", "left", "B", "fire", "C",
239, "shoot", "up-left", "B",
242, "fire", "B",
274, "stop",
275, "tap", "down-left",
},
},
["5-3"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up",
94, "shoot", "up-right", "B",
95, "go", "up-left",
113, "go", "up",
141, "go", "up-right",
158, "go", "right", "fire", "B",
160, "fire", "B",
178, "shoot", "up-right", "C",
183, "fire", "B",
184, "go", "down-right",
200, "go", "up-right", "fire", "B",
206, "go", "up",
234, "go", "up-right",
237, "fire", "C",
265, "go", "right",
285, "go", "up-right",
305, "stop",
450, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
43, "go", "up-right",
45, "go", "up",
114, "fire", "B",
116, "fire", "B", "fire", "C",
157, "go", "left",
161, "shoot", "up", "B",
166, "shoot", "up", "B",
183, "go", "up-left",
187, "shoot", "up-right", "B",
221, "go", "up-right",
225, "shoot", "up-left", "B",
255, "stop",
256, "tap", "down-left",
},
},
["5-4"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
50, "go", "up",
133, "fire", "C",
--134, "go", "right",
154, "fire", "B",
156, "fire", "B",
158, "go", "right",
190, "go", "up-right",
200, "go", "up", "fire", "B",
225, "fire", "B",
230, "fire", "B",
237, "go", "up-right",
251, "go", "right",
253, "shoot", "right", "B",
254, "go", "up-left",
256, "go", "up",
260, "shoot", "right", "B",
265, "shoot", "right", "B",
271, "shoot", "right", "B",
272, "go", "up-left",
286, "go", "right", "fire", "B",
288, "fire", "B",
469, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up-left",
47, "go", "up",
133, "fire", "C",
135, "go", "up-left",
154, "go", "up", "fire", "B",
156, "fire", "B",
157, "go", "up-left",
169, "go", "up",
181, "go", "left",
205, "go", "up",
213, "shoot", "right", "C",
226, "shoot", "right", "B",
235, "stop",
237, "shoot", "right", "B",
255, "go", "up",
268, "fire", "B",
279, "stop",
286, "fire", "B",
288, "fire", "B",
},
},
["5-5"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
28, "go", "up",
138, "fire", "C",
140, "go", "up-left",
168, "go", "up",
179, "stop",
185, "shoot", "down", "B",
187, "shoot", "down", "B",
189, "tap", "down-right",
192, "tap", "right",
195, "tap", "up-right",
198, "tap", "up",
201, "tap", "up-left",
204, "tap", "left",
207, "tap", "down-left",
210, "shoot", "down", "B",
211, "go", "up-left",
217, "go", "up",
243, "shoot", "up-right", "B",
244, "go", "down",
247, "stop",
250, "go", "up",
253, "shoot", "up-right", "B",
264, "shoot", "up-right", "B",
265, "go", "down",
272, "shoot", "up-right", "B",
287, "shoot", "up-right", "B",
291, "stop",
475, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up-left",
31, "go", "up",
123, "shoot", "up-left", "B",
139, "fire", "C",
140, "go", "up-right",
148, "shoot", "down-left", "B",
172, "shoot", "down", "B",
173, "go", "up",
217, "shoot", "up-left", "B",
221, "go", "up-left", "fire", "B",
227, "go", "up",
247, "shoot", "left", "B", "fire", "C",
254, "shoot", "left", "B",
258, "shoot", "left", "B",
262, "go", "left",
269, "stop",
272, "fire", "B",
273, "go", "right",
276, "shoot", "left", "B",
289, "stop",
290, "tap", "down-left",
},
},
["5-6"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up",
83, "go", "up-right",
99, "go", "right",
107, "shoot", "up", "C",
109, "fire", "B",
110, "go", "up-right",
112, "shoot", "down-right", "B",
133, "shoot", "up", "B",
136, "shoot", "up", "B",
143, "go", "up",
171, "shoot", "down", "B",
174, "fire", "C",
180, "shoot", "down", "B",
211, "fire", "B",
213, "fire", "B",
241, "shoot", "up-left", "B",
244, "go", "up-right",
254, "shoot", "down", "B",
266, "shoot", "down", "B",
267, "go", "up",
275, "shoot", "right", "B",
280, "go", "left",
294, "shoot", "up-left", "B",
302, "stop", "fire", "B",
303, "stop",
479, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up",
69, "go", "up-left",
113, "shoot", "up", "C",
136, "shoot", "up", "B",
138, "shoot", "up", "B",
155, "go", "up",
170, "fire", "C",
190, "fire", "B",
192, "fire", "B",
217, "go", "up-right",
235, "fire", "B",
252, "go", "up-left",
268, "shoot", "up-right", "B",
271, "shoot", "up-right", "B",
284, "go", "left", "fire", "B",
286, "fire", "B",
287, "tap", "down-right",
288, "stop",
},
},
["5-7"] =
{
[1] =
{
0, "fire", "B",
7, "fire", "C",
8, "go", "right",
24, "go", "up-right",
91, "shoot", "up-left", "B",
94, "shoot", "up-left", "B",
122, "shoot", "left", "B",
123, "go", "up",
138, "fire", "C",
147, "shoot", "down-left", "B",
164, "shoot", "down-left", "B",
--166, "fire", "B",
184, "fire", "B",
186, "fire", "B",
187, "go", "down",
191, "go", "down-left",
195, "go", "up-right",
224, "go", "up", "fire", "C",
228, "go", "up-left",
238, "go", "up",
246, "shoot", "left", "B",
248, "shoot", "up", "B",
249, "go", "up-left",
261, "go", "left",
266, "fire", "C",
268, "fire", "B",
278, "go", "up",
296, "go", "up-left",
306, "shoot", "down-left", "B",
307, "go", "right",
310, "shoot", "up-right", "B",
311, "go", "left",
345, "stop",
346, "shoot", "up", "B",
348, "shoot", "up", "B",
349, "stop",
356, "go", "right",
358, "stop",
372, "shoot", "down-left", "B",
374, "shoot", "up", "B",
381, "go", "down-left",
399, "go", "left", "fire", "B",
401, "fire", "B",
433, "stop",
577, "fire", "B",
},
[2] =
{
3, "fire", "B",
8, "fire", "C",
9, "go", "left",
24, "go", "up-left",
88, "go", "up",
96, "shoot", "up-right", "B",
101, "shoot", "up-right", "B",
126, "shoot", "right", "B",
131, "go", "up-right",
141, "go", "up", "fire", "C",
145, "shoot", "down-right", "B",
151, "fire", "C",
157, "go", "right",
168, "go", "up-right", "fire", "B",
174, "shoot", "down", "B",
175, "go", "up",
179, "fire", "B",
"fire", "C",
183, "fire", "C",
185, "fire", "B",
187, "fire", "B",
190, "go", "down-right",
192, "shoot", "up", "B",
203, "go", "up-left",
215, "go", "up",
222, "go", "right",
224, "shoot", "up", "B",
229, "shoot", "up-right", "B",
246, "go", "up-right",
250, "fire", "B",
256, "shoot", "up-left", "B",
280, "go", "up",
321, "fire", "B",
326, "go", "up-right",
332, "go", "right",
339, "go", "up",
359, "stop",
364, "fire", "B",
366, "fire", "B",
368, "go", "up",
411, "stop",
},
},
["5-8"] =
{
[1] =
{
3, "fire", "B",
5, "go", "up-right",
46, "go", "up",
150, "shoot", "up-left", "B",
152, "shoot", "up-left", "B",
169, "shoot", "up-left", "B",
171, "shoot", "up-left", "B",
185, "shoot", "left", "B",
187, "shoot", "left", "B",
194, "shoot", "left", "B",
196, "shoot", "left", "B",
203, "shoot", "left", "B",
205, "shoot", "left", "B",
206, "stop",
210, "go", "up",
212, "shoot", "up-left", "B",
214, "shoot", "up-left", "B",
228, "shoot", "left", "B",
230, "shoot", "left", "B",
237, "shoot", "left", "B",
239, "shoot", "left", "B",
246, "shoot", "left", "B",
248, "shoot", "left", "B",
251, "stop",
255, "shoot", "left", "B",
257, "shoot", "left", "B",
258, "go", "up",
264, "shoot", "left", "B",
266, "shoot", "left", "B",
273, "shoot", "left", "B",
275, "shoot", "left", "B",
282, "shoot", "left", "B",
284, "shoot", "left", "B",
291, "shoot", "left", "B",
293, "shoot", "left", "B",
295, "stop",
300, "shoot", "left", "B",
302, "shoot", "left", "B",
303, "go", "up",
309, "shoot", "left", "B",
311, "shoot", "left", "B",
318, "shoot", "left", "B",
320, "shoot", "left", "B",
327, "shoot", "left", "B",
329, "shoot", "left", "B",
336, "shoot", "left", "B",
338, "shoot", "left", "B",
340, "stop",
345, "shoot", "left", "B",
347, "shoot", "left", "B",
523, "fire", "B",
},
[2] =
{
0, "fire", "B",
2, "go", "up-left",
45, "go", "up",
148, "shoot", "up-right", "B",
150, "shoot", "up-right", "B",
168, "shoot", "up-right", "B",
170, "shoot", "up-right", "B",
185, "shoot", "right", "B",
187, "shoot", "right", "B",
195, "shoot", "right", "B",
197, "shoot", "right", "B",
202, "stop",
205, "shoot", "right", "B",
207, "shoot", "right", "B",
210, "go", "up",
215, "shoot", "up-right", "B",
217, "shoot", "up-right", "B",
234, "shoot", "right", "B",
236, "shoot", "right", "B",
239, "stop",
240, "go", "up",
244, "shoot", "right", "B",
246, "shoot", "right", "B",
248, "stop",
254, "shoot", "right", "B",
256, "shoot", "right", "B",
264, "shoot", "right", "B",
266, "shoot", "right", "B",
274, "shoot", "right", "B",
276, "shoot", "right", "B",
277, "go", "up",
284, "shoot", "right", "B",
286, "shoot", "right", "B",
294, "shoot", "right", "B",
296, "shoot", "right", "B",
304, "shoot", "right", "B",
306, "shoot", "right", "B",
309, "stop",
314, "shoot", "right", "B",
316, "shoot", "right", "B",
317, "go", "up",
324, "shoot", "right", "B",
326, "shoot", "right", "B",
334, "shoot", "right", "B",
336, "shoot", "right", "B",
341, "stop",
344, "shoot", "right", "B",
346, "shoot", "right", "B",
354, "shoot", "right", "B",
356, "shoot", "right", "B",
364, "shoot", "right", "B",
366, "shoot", "right", "B",
},
},
["5-9"] =
{
[1] =
{
0, "fire", "B",
2, "go", "right",
8, "go", "up-right",
31, "shoot", "right", "B",
44, "shoot", "right", "B",
45, "go", "right",
48, "fire", "B",
49, "go", "up-left",
51, "go", "up",
127, "shoot", "up-left", "B",
144, "shoot", "right", "B",
169, "shoot", "down-left", "B",
177, "shoot", "down-left", "B",
186, "shoot", "up-right", "B",
206, "go", "right",
210, "shoot", "up", "B",
212, "shoot", "up", "B",
214, "go", "up",
220, "shoot", "down-right", "B",
222, "shoot", "up-left", "B",
235, "go", "up-right",
244, "fire", "B",
245, "go", "left",
261, "go", "left",
262, "fire", "B",
264, "fire", "B",
265, "go", "down-left",
267, "shoot", "right", "B",
268, "go", "left",
272, "go", "up-left",
276, "go", "up",
280, "shoot", "right", "B",
290, "go", "down-right",
295, "stop",
469, "fire", "B",
},
[2] =
{
3, "fire", "B",
5, "go", "up",
63, "fire", "C",
74, "fire", "B",
76, "fire", "B",
108, "go", "up-left",
126, "go", "up",
134, "shoot", "left", "B",
139, "shoot", "left", "B",
140, "go", "up-right",
148, "shoot", "left", "C",
149, "go", "up",
169, "shoot", "up-left", "B",
182, "shoot", "up-left", "B",
190, "stop",
192, "fire", "C",
193, "shoot", "up-left", "B",
194, "go", "left",
201, "stop",
204, "shoot", "up", "B",
218, "shoot", "up", "B",
221, "go", "left",
247, "shoot", "down-left", "B",
254, "stop",
260, "shoot", "down-left", "B",
271, "shoot", "down-left", "B",
284, "shoot", "down-left", "B",
285, "go", "right",
295, "stop",
},
},
["5-10"] =
{
[1] =
{
0, "fire", "B",
2, "go", "up-right",
15, "go", "up", "fire", "B",
32, "fire", "C",
60, "fire", "B",
62, "fire", "B",
71, "fire", "B",
73, "fire", "B",
97, "fire", "B",
135, "fire", "B",
140, "fire", "B",
142, "shoot", "up-right", "C",
179, "shoot", "up-right", "B",
181, "shoot", "up-right", "B",
183, "shoot", "up-right", "C",
219, "go", "right", "fire", "B",
223, "fire", "B",
227, "fire", "C",
244, "fire", "B",
247, "fire", "B",
251, "fire", "C",
256, "fire", "B",
257, "go", "up-left",
280, "go", "left",
283, "shoot", "right", "B",
284, "stop",
285, "shoot", "right", "B",
303, "go", "right",
413, "shoot", "down", "B",
414, "go", "down",
415, "shoot", "down", "B",
427, "shoot", "down", "B",
500, "stop",
501, "shoot", "up-right", "B",
503, "shoot", "up-right", "B",
509, "shoot", "up-right", "B",
511, "shoot", "up-left", "B",
517, "shoot", "up-left", "B",
519, "shoot", "up-left", "B",
524, "shoot", "down", "B",
526, "shoot", "down", "B",
530, "shoot", "down", "B",
686, "fire", "B",
717, "fire", "B",
2000, "stop",
},
[2] =
{
3, "fire", "B",
5, "go", "up-left",
16, "go", "up", "fire", "B",
33, "fire", "C",
61, "fire", "B", -- 250 @ 113
63, "fire", "B",
72, "fire", "B",
74, "fire", "B",
98, "fire", "B",
136, "fire", "B",
141, "fire", "B",
144, "shoot", "up-left", "C",
180, "shoot", "up-left", "B",
182, "shoot", "up-left", "B",
187, "shoot", "up-left", "C",
219, "go", "left",
223, "fire", "B",
227, "fire", "B",
231, "fire", "C",
251, "fire", "B",
255, "fire", "C",
259, "fire", "B",
264, "fire", "B",
265, "stop",
268, "fire", "B",
272, "fire", "B",
276, "fire", "B",
280, "fire", "B",
284, "fire", "B",
288, "fire", "B",
717, "fire", "B",
},
},
}
local MARS_DEATH_OFFSET = -4
if MARS_DIES_IN_1_10 == true then
MARS_DEATH_OFFSET = 0
end
local syncPoints =
{
["1-7"] = { baseline = 5244, actual = 5244 },
["1-8"] = { baseline = 5976, actual = 5976 },
["1-9"] = { baseline = 6984, actual = 6984 },
["1-10"] = { baseline = 7844, actual = 7844 },
["2-1"] = { baseline = 9100, actual = 9100 + MARS_DEATH_OFFSET },
["2-2"] = { baseline = 9810, actual = 9810 + MARS_DEATH_OFFSET },
["2-3"] = { baseline = 10600, actual = 10600 + MARS_DEATH_OFFSET },
["2-4"] = { baseline = 11500, actual = 11500 + MARS_DEATH_OFFSET },
["2-5"] = { baseline = 0, actual = 12248 + MARS_DEATH_OFFSET },
["2-6"] = { baseline = 0, actual = 13238 },
["2-7"] = { baseline = 0, actual = 14033 },
["2-8"] = { baseline = 0, actual = 14882 },
["2-9"] = { baseline = 0, actual = 15755 },
["2-10"] = { baseline = 0, actual = 16860 },
["3-1"] = { baseline = 0, actual = 17724 },
["3-2"] = { baseline = 0, actual = 18422 },
["3-3"] = { baseline = 0, actual = 19160 },
["3-4"] = { baseline = 0, actual = 19898 },
["3-5"] = { baseline = 0, actual = 20651 },
["3-6"] = { baseline = 0, actual = 21403 },
["3-7"] = { baseline = 0, actual = 22237 },
["3-8"] = { baseline = 0, actual = 22949 },
["3-9"] = { baseline = 0, actual = 23727 },
["3-10"] = { baseline = 0, actual = 24478 },
["4-1"] = { baseline = 0, actual = 25401 },
["4-2"] = { baseline = 0, actual = 26151 },
["4-3"] = { baseline = 0, actual = 26880 },
["4-4"] = { baseline = 0, actual = 27783 },
["4-5"] = { baseline = 0, actual = 28531 },
["4-6"] = { baseline = 0, actual = 29310 },
["4-7"] = { baseline = 0, actual = 30124 },
["4-8"] = { baseline = 0, actual = 30956 },
["4-9"] = { baseline = 0, actual = 31842 },
["4-10"] = { baseline = 0, actual = 32841 },
["5-1"] = { baseline = 0, actual = 34368 },
["5-2"] = { baseline = 0, actual = 35115 },
["5-3"] = { baseline = 0, actual = 35901 },
["5-4"] = { baseline = 0, actual = 36635 },
["5-5"] = { baseline = 0, actual = 37402 },
["5-6"] = { baseline = 0, actual = 38158 },
["5-7"] = { baseline = 0, actual = 38925 },
["5-8"] = { baseline = 0, actual = 39775 },
["5-9"] = { baseline = 0, actual = 40566 },
["5-10"] = { baseline = 0, actual = 41317 },
}
local directionTranslations =
{
["up"] = { "up" },
["up-right"] = { "up", "right" },
["up-left"] = { "up", "left" },
["right"] = { "right" },
["left"] = { "left" },
["down"] = { "down" },
["down-right"] = { "down", "right" },
["down-left"] = { "down", "left" },
["stopped"] = { },
}
local spinSequence =
{
"up", "up-right", "right", "down-right", "down", "down-left", "left", "up-left",
}
-- Compile all stage scripts
local compiledStageScripts = { }
for stage,scriptSet in pairs(stageScripts) do
local frameInput = { }
local firstFrame = syncPoints[stage].baseline
local lastFrame = firstFrame
-- Determine the last frame of this script
for controllerId,commands in pairs(scriptSet) do
for _,command in ipairs(commands) do
if type(command) == "number" and command > lastFrame then
lastFrame = command
end
end
end
local playerDirections = { [1] = "stopped", [2] = "stopped" }
local playerSpinStart = { }
local playerSpinDirection = { }
local playerSpinInterval = { }
local cmdIdx = { [1] = 1, [2] = 1 }
-- Determine each frame state
for frameNum=firstFrame,lastFrame do
for controllerId,commands in pairs(scriptSet) do
local frameDirection = playerDirections[controllerId]
local controllerFrameInput = { }
local spinStartFrame
local spinDirection
if commands[cmdIdx[controllerId]] == frameNum then
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
while type(commands[cmdIdx[controllerId]]) ~= "number" do
local command = commands[cmdIdx[controllerId]]
if command == nil then
break
end
if command == "go" then
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local dir = assert(commands[cmdIdx[controllerId]])
playerDirections[controllerId] = dir
frameDirection = dir
elseif command == "tap" then
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local dir = assert(commands[cmdIdx[controllerId]])
frameDirection = dir
elseif command == "shoot" then
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local dir = assert(commands[cmdIdx[controllerId]])
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local button = assert(commands[cmdIdx[controllerId]])
frameDirection = dir
controllerFrameInput[button] = true
elseif command == "fire" then
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local button = assert(commands[cmdIdx[controllerId]])
controllerFrameInput[button] = true
elseif command == "stop" then
playerDirections[controllerId] = "stopped"
frameDirection = "stopped"
elseif command == "spin" then
playerSpinStart[controllerId] = frameNum
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local dir = assert(commands[cmdIdx[controllerId]])
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
local interval = assert(commands[cmdIdx[controllerId]])
playerSpinDirection[controllerId] = dir
playerSpinInterval[controllerId] = interval
elseif command == "stopspin" then
playerSpinStart[controllerId] = nil
else
assert(false, "Unknown command: "..command)
end
cmdIdx[controllerId] = cmdIdx[controllerId] + 1
end
end
if playerSpinStart[controllerId] then
-- Dance around
local spinFrame = frameNum - playerSpinStart[controllerId]
local intervalOffset = math.fmod(spinFrame, playerSpinInterval[controllerId])
local spinDir = spinSequence[math.fmod(math.floor(spinFrame / playerSpinInterval[controllerId]), #spinSequence) + 1]
if spinDir == playerSpinDirection[controllerId] or intervalOffset == 0 then
frameDirection = spinDir
else
frameDirection = "stopped"
end
end
-- Dump the button state into the frame input
for _,button in ipairs(directionTranslations[frameDirection]) do
controllerFrameInput[button] = true
end
-- Dump into the final frame state
local thisFrameInput = frameInput[frameNum]
if thisFrameInput == nil then
thisFrameInput = { }
frameInput[frameNum] = thisFrameInput
end
thisFrameInput[controllerId] = controllerFrameInput
end
end
for frameNum=firstFrame,lastFrame do
for controllerId,commands in pairs(frameInput[frameNum]) do
local cmdString = ""
for k,v in pairs(commands) do
cmdString = cmdString.." "..k
end
end
end
compiledStageScripts[stage] = frameInput
end
-- Don't need these any more
stageScripts = nil
gens.registerbefore(function()
local currentStage = nil
local frameNum = gens.framecount() + 1
-- Find a baseline for this script
for stage,syncInfo in pairs(syncPoints) do
if syncInfo.actual <= frameNum and (currentStage == nil or syncPoints[currentStage].actual < syncInfo.actual) then
currentStage = stage
end
end
if currentStage ~= nil then
local stageScript = compiledStageScripts[currentStage]
local scriptFrame = frameNum - syncPoints[currentStage].actual + syncPoints[currentStage].baseline
if stageScript[scriptFrame] ~= nil then
local commands = stageScript[scriptFrame]
for controllerId,inputState in pairs(commands) do
joypad.set(controllerId, inputState)
end
end
end
end )