diff options
| author | Amir Rajan <[email protected]> | 2020-09-11 02:02:01 -0500 |
|---|---|---|
| committer | Amir Rajan <[email protected]> | 2020-09-11 02:02:57 -0500 |
| commit | 33ec37b141e896b47ed642923fd33b0c658ae9fb (patch) | |
| tree | a40d3e5d41beeb06508200078f6f26b0ee57d6a4 /samples/99_genre_arcade | |
| parent | 958cf43779d2bf528869e80511c4c4f2a433b2db (diff) | |
| download | dragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.tar.gz dragonruby-game-toolkit-contrib-33ec37b141e896b47ed642923fd33b0c658ae9fb.zip | |
synced samples
Diffstat (limited to 'samples/99_genre_arcade')
53 files changed, 6460 insertions, 0 deletions
diff --git a/samples/99_genre_arcade/dueling_starships/app/main.rb b/samples/99_genre_arcade/dueling_starships/app/main.rb new file mode 100644 index 0000000..8adcf3d --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/app/main.rb @@ -0,0 +1,365 @@ +class DuelingSpaceships + attr_accessor :state, :inputs, :outputs, :grid + + def tick + defaults + render + calc + input + end + + def defaults + outputs.background_color = [0, 0, 0] + state.ship_blue ||= new_blue_ship + state.ship_red ||= new_red_ship + state.flames ||= [] + state.bullets ||= [] + state.ship_blue_score ||= 0 + state.ship_red_score ||= 0 + state.stars ||= 100.map do + [rand.add(2).to_square(grid.w_half.randomize(:sign, :ratio), + grid.h_half.randomize(:sign, :ratio)), + 128 + 128.randomize(:ratio), 255, 255] + end + end + + def default_ship x, y, angle, sprite_path, bullet_sprite_path, color + state.new_entity(:ship, + { x: x, + y: y, + dy: 0, + dx: 0, + damage: 0, + dead: false, + angle: angle, + max_alpha: 255, + sprite_path: sprite_path, + bullet_sprite_path: bullet_sprite_path, + color: color }) + end + + def new_red_ship + default_ship(400, 250.randomize(:sign, :ratio), + 180, 'sprites/ship_red.png', 'sprites/red_bullet.png', + [255, 90, 90]) + end + + def new_blue_ship + default_ship(-400, 250.randomize(:sign, :ratio), + 0, 'sprites/ship_blue.png', 'sprites/blue_bullet.png', + [110, 140, 255]) + end + + def render + render_instructions + render_score + render_universe + render_flames + render_ships + render_bullets + end + + def render_ships + update_ship_outputs(state.ship_blue) + update_ship_outputs(state.ship_red) + outputs.sprites << [state.ship_blue.sprite, state.ship_red.sprite] + outputs.labels << [state.ship_blue.label, state.ship_red.label] + end + + def render_instructions + return if state.ship_blue.dx > 0 || state.ship_blue.dy > 0 || + state.ship_red.dx > 0 || state.ship_red.dy > 0 || + state.flames.length > 0 + + outputs.labels << [grid.left.shift_right(30), + grid.bottom.shift_up(30), + "Two gamepads needed to play. R1 to accelerate. Left and right on D-PAD to turn ship. Hold A to shoot. Press B to drop mines.", + 0, 0, 255, 255, 255] + end + + def calc + calc_thrusts + calc_ships + calc_bullets + calc_winner + end + + def input + input_accelerate + input_turn + input_bullets_and_mines + end + + def render_score + outputs.labels << [grid.left.shift_right(80), + grid.top.shift_down(40), + state.ship_blue_score, 30, 1, state.ship_blue.color] + + outputs.labels << [grid.right.shift_left(80), + grid.top.shift_down(40), + state.ship_red_score, 30, 1, state.ship_red.color] + end + + def render_universe + return if outputs.static_solids.any? + outputs.static_solids << grid.rect + outputs.static_solids << state.stars + end + + def apply_round_finished_alpha entity + return entity unless state.round_finished_debounce + entity.a *= state.round_finished_debounce.percentage_of(2.seconds) + return entity + end + + def update_ship_outputs ship, sprite_size = 66 + ship.sprite = + apply_round_finished_alpha [sprite_size.to_square(ship.x, ship.y), + ship.sprite_path, + ship.angle, + ship.dead ? 0 : 255 * ship.created_at.ease(2.seconds)].sprite + ship.label = + apply_round_finished_alpha [ship.x, + ship.y + 100, + "." * 5.minus(ship.damage).greater(0), 20, 1, ship.color, 255].label + end + + def render_flames sprite_size = 6 + outputs.sprites << state.flames.map do |p| + apply_round_finished_alpha [sprite_size.to_square(p.x, p.y), + 'sprites/flame.png', 0, + p.max_alpha * p.created_at.ease(p.lifetime, :flip)].sprite + end + end + + def render_bullets sprite_size = 10 + outputs.sprites << state.bullets.map do |b| + apply_round_finished_alpha [b.sprite_size.to_square(b.x, b.y), + b.owner.bullet_sprite_path, + 0, b.max_alpha].sprite + end + end + + def wrap_location! location + location.x = grid.left if location.x > grid.right + location.x = grid.right if location.x < grid.left + location.y = grid.top if location.y < grid.bottom + location.y = grid.bottom if location.y > grid.top + location + end + + def calc_thrusts + state.flames = + state.flames + .reject(&:old?) + .map do |p| + p.speed *= 0.9 + p.y += p.angle.vector_y(p.speed) + p.x += p.angle.vector_x(p.speed) + wrap_location! p + end + end + + def all_ships + [state.ship_blue, state.ship_red] + end + + def alive_ships + all_ships.reject { |s| s.dead } + end + + def calc_bullet bullet + bullet.y += bullet.angle.vector_y(bullet.speed) + bullet.x += bullet.angle.vector_x(bullet.speed) + wrap_location! bullet + explode_bullet! bullet if bullet.old? + return if bullet.exploded + return if state.round_finished + alive_ships.each do |s| + if s != bullet.owner && + s.sprite.intersect_rect?(bullet.sprite_size.to_square(bullet.x, bullet.y)) + explode_bullet! bullet, 10, 5, 30 + s.damage += 1 + end + end + end + + def calc_bullets + state.bullets.each { |b| calc_bullet b } + state.bullets.reject! { |b| b.exploded } + end + + def create_explosion! type, entity, flame_count, max_speed, lifetime, max_alpha = 255 + flame_count.times do + state.flames << state.new_entity(type, + { angle: 360.randomize(:ratio), + speed: max_speed.randomize(:ratio), + lifetime: lifetime, + x: entity.x, + y: entity.y, + max_alpha: max_alpha }) + end + end + + def explode_bullet! bullet, flame_override = 5, max_speed = 5, lifetime = 10 + bullet.exploded = true + create_explosion! :bullet_explosion, + bullet, + flame_override, + max_speed, + lifetime, + bullet.max_alpha + end + + def calc_ship ship + ship.x += ship.dx + ship.y += ship.dy + wrap_location! ship + end + + def calc_ships + all_ships.each { |s| calc_ship s } + return if all_ships.any? { |s| s.dead } + return if state.round_finished + return unless state.ship_blue.sprite.intersect_rect?(state.ship_red.sprite) + state.ship_blue.damage = 5 + state.ship_red.damage = 5 + end + + def create_thruster_flames! ship + state.flames << state.new_entity(:ship_thruster, + { angle: ship.angle + 180 + 60.randomize(:sign, :ratio), + speed: 5.randomize(:ratio), + max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds), + lifetime: 30, + x: ship.x - ship.angle.vector_x(40) + 5.randomize(:sign, :ratio), + y: ship.y - ship.angle.vector_y(40) + 5.randomize(:sign, :ratio) }) + end + + def input_accelerate_ship should_move_ship, ship + return if ship.dead + + should_move_ship &&= (ship.dx + ship.dy).abs < 5 + + if should_move_ship + create_thruster_flames! ship + ship.dx += ship.angle.vector_x 0.050 + ship.dy += ship.angle.vector_y 0.050 + else + ship.dx *= 0.99 + ship.dy *= 0.99 + end + end + + def input_accelerate + input_accelerate_ship inputs.controller_one.key_held.r1 || inputs.keyboard.up, state.ship_blue + input_accelerate_ship inputs.controller_two.key_held.r1, state.ship_red + end + + def input_turn_ship direction, ship + ship.angle -= 3 * direction + end + + def input_turn + input_turn_ship inputs.controller_one.left_right + inputs.keyboard.left_right, state.ship_blue + input_turn_ship inputs.controller_two.left_right, state.ship_red + end + + def input_bullet create_bullet, ship + return unless create_bullet + return if ship.dead + + state.bullets << state.new_entity(:ship_bullet, + { owner: ship, + angle: ship.angle, + max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds), + speed: 5 + ship.dx.mult(ship.angle.vector_x) + ship.dy.mult(ship.angle.vector_y), + lifetime: 120, + sprite_size: 10, + x: ship.x + ship.angle.vector_x * 32, + y: ship.y + ship.angle.vector_y * 32 }) + end + + def input_mine create_mine, ship + return unless create_mine + return if ship.dead + + state.bullets << state.new_entity(:ship_bullet, + { owner: ship, + angle: 360.randomize(:sign, :ratio), + max_alpha: 255 * ship.created_at_elapsed.percentage_of(2.seconds), + speed: 0.02, + sprite_size: 10, + lifetime: 600, + x: ship.x + ship.angle.vector_x * -50, + y: ship.y + ship.angle.vector_y * -50 }) + end + + def input_bullets_and_mines + return if state.bullets.length > 100 + + [ + [inputs.controller_one.key_held.a || inputs.keyboard.key_held.space, + inputs.controller_one.key_down.b || inputs.keyboard.key_down.down, + state.ship_blue], + [inputs.controller_two.key_held.a, inputs.controller_two.key_down.b, state.ship_red] + ].each do |a_held, b_down, ship| + input_bullet(a_held && state.tick_count.mod_zero?(10).or(a_held == 0), ship) + input_mine(b_down, ship) + end + end + + def calc_kill_ships + alive_ships.find_all { |s| s.damage >= 5 }.each do |s| + s.dead = true + create_explosion! :ship_explosion, s, 20, 20, 30, s.max_alpha + end + end + + def calc_score + return if state.round_finished + return if alive_ships.length > 1 + + if alive_ships.first == state.ship_red + state.ship_red_score += 1 + elsif alive_ships.first == state.ship_blue + state.ship_blue_score += 1 + end + + state.round_finished = true + end + + def calc_reset_ships + return unless state.round_finished + state.round_finished_debounce ||= 2.seconds + state.round_finished_debounce -= 1 + return if state.round_finished_debounce > 0 + start_new_round! + end + + def start_new_round! + state.ship_blue = new_blue_ship + state.ship_red = new_red_ship + state.round_finished = false + state.round_finished_debounce = nil + state.flames.clear + state.bullets.clear + end + + def calc_winner + calc_kill_ships + calc_score + calc_reset_ships + end +end + +$dueling_spaceship = DuelingSpaceships.new + +def tick args + args.grid.origin_center! + $dueling_spaceship.inputs = args.inputs + $dueling_spaceship.outputs = args.outputs + $dueling_spaceship.state = args.state + $dueling_spaceship.grid = args.grid + $dueling_spaceship.tick +end diff --git a/samples/99_genre_arcade/dueling_starships/license-for-sample.txt b/samples/99_genre_arcade/dueling_starships/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/99_genre_arcade/dueling_starships/replay.txt b/samples/99_genre_arcade/dueling_starships/replay.txt new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/replay.txt @@ -0,0 +1,2383 @@ +replay_version 2.0 +stopped_at 2733 +seed 100 +recorded_at Sun Sep 29 23:29:44 2019 +[:mouse_move, 10, 536, 2, 1, 76] +[:mouse_move, 26, 536, 2, 2, 77] +[:mouse_move, 41, 536, 2, 3, 78] +[:mouse_move, 49, 536, 2, 4, 79] +[:mouse_move, 56, 536, 2, 5, 80] +[:mouse_move, 60, 535, 2, 6, 81] +[:mouse_move, 62, 534, 2, 7, 82] +[:mouse_move, 66, 533, 2, 8, 83] +[:mouse_move, 67, 533, 2, 9, 84] +[:mouse_move, 69, 531, 2, 10, 85] +[:mouse_move, 70, 531, 2, 11, 86] +[:mouse_move, 71, 530, 2, 12, 87] +[:mouse_move, 72, 529, 2, 13, 88] +[:mouse_move, 73, 529, 2, 14, 89] +[:mouse_move, 71, 532, 2, 15, 107] +[:mouse_move, 68, 544, 2, 16, 108] +[:mouse_move, 65, 553, 2, 17, 109] +[:mouse_move, 59, 576, 2, 18, 110] +[:mouse_move, 56, 590, 2, 19, 111] +[:mouse_move, 50, 620, 2, 20, 112] +[:mouse_move, 48, 635, 2, 21, 113] +[:mouse_move, 47, 645, 2, 22, 114] +[:mouse_move, 45, 653, 2, 23, 115] +[:mouse_move, 44, 659, 2, 24, 116] +[:mouse_move, 42, 665, 2, 25, 117] +[:mouse_move, 41, 667, 2, 26, 118] +[:mouse_move, 40, 668, 2, 27, 119] +[:mouse_move, 39, 669, 2, 28, 120] +[:mouse_move, 38, 669, 2, 29, 124] +[:mouse_move, 38, 672, 2, 30, 127] +[:mouse_move, 38, 674, 2, 31, 128] +[:mouse_move, 36, 680, 2, 32, 129] +[:mouse_move, 35, 683, 2, 33, 130] +[:mouse_move, 32, 689, 2, 34, 131] +[:mouse_move, 31, 692, 2, 35, 132] +[:mouse_move, 28, 699, 2, 36, 133] +[:mouse_move, 28, 700, 2, 37, 134] +[:mouse_move, 27, 704, 2, 38, 135] +[:mouse_move, 27, 705, 2, 39, 136] +[:mouse_move, 27, 707, 2, 40, 137] +[:mouse_move, 29, 707, 2, 41, 139] +[:mouse_move, 30, 707, 2, 42, 140] +[:mouse_move, 35, 707, 2, 43, 141] +[:mouse_move, 37, 707, 2, 44, 142] +[:mouse_move, 42, 708, 2, 45, 143] +[:mouse_move, 45, 709, 2, 46, 144] +[:mouse_move, 46, 710, 2, 47, 145] +[:mouse_move, 48, 711, 2, 48, 146] +[:mouse_move, 49, 711, 2, 49, 158] +[:mouse_move, 50, 711, 2, 50, 159] +[:mouse_move, 56, 711, 2, 51, 160] +[:mouse_move, 60, 711, 2, 52, 161] +[:mouse_move, 77, 711, 2, 53, 162] +[:mouse_move, 90, 711, 2, 54, 163] +[:mouse_move, 118, 711, 2, 55, 164] +[:mouse_move, 124, 711, 2, 56, 165] +[:mouse_move, 148, 711, 2, 57, 166] +[:mouse_move, 160, 711, 2, 58, 167] +[:mouse_move, 181, 709, 2, 59, 168] +[:mouse_move, 190, 709, 2, 60, 169] +[:mouse_move, 201, 708, 2, 61, 170] +[:mouse_move, 206, 708, 2, 62, 171] +[:mouse_move, 211, 707, 2, 63, 172] +[:mouse_move, 218, 707, 2, 64, 173] +[:mouse_move, 221, 707, 2, 65, 174] +[:mouse_move, 225, 707, 2, 66, 175] +[:mouse_move, 227, 707, 2, 67, 176] +[:mouse_move, 232, 707, 2, 68, 177] +[:mouse_move, 234, 707, 2, 69, 178] +[:mouse_move, 240, 707, 2, 70, 179] +[:mouse_move, 244, 707, 2, 71, 180] +[:mouse_move, 252, 707, 2, 72, 181] +[:mouse_move, 258, 707, 2, 73, 182] +[:mouse_move, 269, 707, 2, 74, 183] +[:mouse_move, 274, 706, 2, 75, 184] +[:mouse_move, 285, 706, 2, 76, 185] +[:mouse_move, 291, 705, 2, 77, 186] +[:mouse_move, 304, 705, 2, 78, 187] +[:mouse_move, 310, 705, 2, 79, 188] +[:mouse_move, 323, 704, 2, 80, 189] +[:mouse_move, 329, 703, 2, 81, 190] +[:mouse_move, 343, 700, 2, 82, 191] +[:mouse_move, 355, 698, 2, 83, 192] +[:mouse_move, 366, 697, 2, 84, 193] +[:mouse_move, 373, 697, 2, 85, 194] +[:mouse_move, 384, 696, 2, 86, 195] +[:mouse_move, 390, 696, 2, 87, 196] +[:mouse_move, 391, 696, 2, 88, 197] +[:mouse_move, 392, 696, 2, 89, 217] +[:mouse_move, 400, 696, 2, 90, 218] +[:mouse_move, 404, 697, 2, 91, 219] +[:mouse_move, 413, 698, 2, 92, 220] +[:mouse_move, 417, 699, 2, 93, 221] +[:mouse_move, 438, 700, 2, 94, 222] +[:mouse_move, 449, 700, 2, 95, 223] +[:mouse_move, 473, 700, 2, 96, 224] +[:mouse_move, 485, 700, 2, 97, 225] +[:mouse_move, 497, 700, 2, 98, 226] +[:mouse_move, 514, 700, 2, 99, 227] +[:mouse_move, 524, 700, 2, 100, 228] +[:mouse_move, 539, 700, 2, 101, 229] +[:mouse_move, 545, 700, 2, 102, 230] +[:mouse_move, 555, 700, 2, 103, 231] +[:mouse_move, 557, 701, 2, 104, 232] +[:mouse_move, 568, 702, 2, 105, 233] +[:mouse_move, 572, 702, 2, 106, 234] +[:mouse_move, 581, 703, 2, 107, 235] +[:mouse_move, 586, 704, 2, 108, 236] +[:mouse_move, 598, 704, 2, 109, 237] +[:mouse_move, 604, 704, 2, 110, 238] +[:mouse_move, 620, 704, 2, 111, 239] +[:mouse_move, 634, 704, 2, 112, 240] +[:mouse_move, 654, 704, 2, 113, 241] +[:mouse_move, 665, 702, 2, 114, 242] +[:mouse_move, 681, 701, 2, 115, 243] +[:mouse_move, 701, 698, 2, 116, 244] +[:mouse_move, 726, 696, 2, 117, 245] +[:mouse_move, 740, 695, 2, 118, 246] +[:mouse_move, 772, 695, 2, 119, 247] +[:mouse_move, 788, 695, 2, 120, 248] +[:mouse_move, 806, 694, 2, 121, 249] +[:mouse_move, 808, 694, 2, 122, 270] +[:mouse_move, 810, 695, 2, 123, 271] +[:mouse_move, 815, 698, 2, 124, 272] +[:mouse_move, 820, 699, 2, 125, 273] +[:mouse_move, 833, 703, 2, 126, 274] +[:mouse_move, 840, 704, 2, 127, 275] +[:mouse_move, 851, 707, 2, 128, 276] +[:mouse_move, 856, 707, 2, 129, 277] +[:mouse_move, 864, 708, 2, 130, 278] +[:mouse_move, 867, 708, 2, 131, 279] +[:mouse_move, 869, 708, 2, 132, 280] +[:mouse_move, 875, 708, 2, 133, 281] +[:mouse_move, 876, 708, 2, 134, 282] +[:mouse_move, 880, 708, 2, 135, 283] +[:mouse_move, 881, 708, 2, 136, 284] +[:mouse_move, 883, 708, 2, 137, 285] +[:mouse_move, 884, 708, 2, 138, 286] +[:mouse_move, 885, 708, 2, 139, 287] +[:mouse_move, 886, 708, 2, 140, 288] +[:mouse_move, 887, 708, 2, 141, 290] +[:mouse_move, 889, 708, 2, 142, 291] +[:mouse_move, 890, 708, 2, 143, 292] +[:mouse_move, 893, 708, 2, 144, 293] +[:mouse_move, 894, 708, 2, 145, 294] +[:mouse_move, 896, 708, 2, 146, 295] +[:mouse_move, 897, 708, 2, 147, 296] +[:mouse_move, 899, 708, 2, 148, 297] +[:mouse_move, 900, 708, 2, 149, 299] +[:mouse_move, 901, 708, 2, 150, 301] +[:mouse_move, 902, 708, 2, 151, 305] +[:mouse_move, 903, 708, 2, 152, 309] +[:mouse_move, 905, 708, 2, 153, 310] +[:mouse_move, 906, 708, 2, 154, 311] +[:mouse_move, 911, 708, 2, 155, 312] +[:mouse_move, 914, 709, 2, 156, 313] +[:mouse_move, 922, 710, 2, 157, 314] +[:mouse_move, 925, 710, 2, 158, 315] +[:mouse_move, 933, 711, 2, 159, 316] +[:mouse_move, 937, 711, 2, 160, 317] +[:mouse_move, 944, 712, 2, 161, 318] +[:mouse_move, 947, 713, 2, 162, 319] +[:mouse_move, 954, 713, 2, 163, 320] +[:mouse_move, 956, 713, 2, 164, 321] +[:mouse_move, 962, 714, 2, 165, 322] +[:mouse_move, 967, 714, 2, 166, 323] +[:mouse_move, 973, 714, 2, 167, 324] +[:mouse_move, 976, 714, 2, 168, 325] +[:mouse_move, 981, 714, 2, 169, 326] +[:mouse_move, 983, 714, 2, 170, 327] +[:mouse_move, 989, 715, 2, 171, 328] +[:mouse_move, 992, 715, 2, 172, 329] +[:mouse_move, 996, 716, 2, 173, 330] +[:mouse_move, 1000, 716, 2, 174, 331] +[:mouse_move, 1004, 716, 2, 175, 332] +[:mouse_move, 1007, 717, 2, 176, 333] +[:mouse_move, 1010, 717, 2, 177, 334] +[:mouse_move, 1017, 719, 2, 178, 335] +[:mouse_move, 1021, 719, 2, 179, 336] +[:mouse_move, 1029, 719, 2, 180, 337] +[:mouse_move, 1169, 719, 2, 181, 365] +[:mouse_move, 1170, 719, 2, 182, 367] +[:mouse_move, 1171, 718, 2, 183, 368] +[:mouse_move, 1172, 718, 2, 184, 369] +[:mouse_move, 1172, 717, 2, 185, 371] +[:mouse_move, 1173, 717, 2, 186, 371] +[:mouse_move, 1173, 716, 2, 187, 373] +[:mouse_move, 1174, 716, 2, 188, 373] +[:mouse_move, 1175, 715, 2, 189, 375] +[:mouse_move, 1175, 714, 2, 190, 376] +[:mouse_move, 1175, 710, 2, 191, 377] +[:mouse_move, 1173, 691, 2, 192, 378] +[:mouse_move, 1167, 676, 2, 193, 379] +[:mouse_move, 1143, 633, 2, 194, 380] +[:mouse_move, 1112, 591, 2, 195, 381] +[:mouse_move, 1069, 547, 2, 196, 382] +[:mouse_move, 1057, 537, 2, 197, 383] +[:mouse_move, 1026, 510, 2, 198, 384] +[:mouse_move, 1021, 505, 2, 199, 385] +[:mouse_move, 1002, 490, 2, 200, 386] +[:mouse_move, 998, 487, 2, 201, 387] +[:mouse_move, 996, 484, 2, 202, 388] +[:mouse_move, 994, 483, 2, 203, 388] +[:mouse_move, 993, 482, 2, 204, 389] +[:mouse_move, 993, 481, 2, 205, 395] +[:mouse_move, 992, 481, 2, 206, 398] +[:mouse_move, 991, 480, 2, 207, 399] +[:mouse_move, 990, 480, 2, 208, 400] +[:mouse_move, 987, 478, 2, 209, 400] +[:mouse_move, 983, 475, 2, 210, 401] +[:mouse_move, 977, 472, 2, 211, 402] +[:mouse_move, 974, 471, 2, 212, 402] +[:mouse_move, 968, 467, 2, 213, 403] +[:mouse_move, 963, 465, 2, 214, 404] +[:mouse_move, 956, 463, 2, 215, 404] +[:mouse_move, 951, 461, 2, 216, 405] +[:mouse_move, 949, 460, 2, 217, 406] +[:mouse_move, 942, 459, 2, 218, 407] +[:mouse_move, 940, 458, 2, 219, 408] +[:mouse_move, 937, 458, 2, 220, 409] +[:mouse_move, 936, 458, 2, 221, 410] +[:mouse_move, 935, 458, 2, 222, 412] +[:mouse_button_pressed, 1, 0, 1, 223, 415] +[:mouse_button_up, 1, 0, 1, 224, 423] +[:key_down_player_two, 3, 0, 1, 225, 458] +[:key_down_player_two, 26, 0, 1, 226, 458] +[:key_held_player_two, 3, 0, 1, 227, 459] +[:key_held_player_two, 26, 0, 1, 228, 459] +[:key_held_player_two, 3, 0, 1, 229, 460] +[:key_held_player_two, 26, 0, 1, 230, 460] +[:key_held_player_two, 3, 0, 1, 231, 461] +[:key_held_player_two, 26, 0, 1, 232, 461] +[:key_held_player_two, 3, 0, 1, 233, 462] +[:key_held_player_two, 26, 0, 1, 234, 462] +[:key_held_player_two, 3, 0, 1, 235, 463] +[:key_held_player_two, 26, 0, 1, 236, 463] +[:key_held_player_two, 3, 0, 1, 237, 464] +[:key_held_player_two, 26, 0, 1, 238, 464] +[:key_held_player_two, 3, 0, 1, 239, 465] +[:key_held_player_two, 26, 0, 1, 240, 465] +[:key_held_player_two, 3, 0, 1, 241, 466] +[:key_held_player_two, 26, 0, 1, 242, 466] +[:key_held_player_two, 3, 0, 1, 243, 467] +[:key_held_player_two, 26, 0, 1, 244, 467] +[:key_held_player_two, 3, 0, 1, 245, 468] +[:key_held_player_two, 26, 0, 1, 246, 468] +[:key_held_player_two, 3, 0, 1, 247, 469] +[:key_held_player_two, 26, 0, 1, 248, 469] +[:key_held_player_two, 3, 0, 1, 249, 470] +[:key_held_player_two, 26, 0, 1, 250, 470] +[:key_held_player_two, 3, 0, 1, 251, 471] +[:key_held_player_two, 26, 0, 1, 252, 471] +[:key_held_player_two, 3, 0, 1, 253, 472] +[:key_held_player_two, 26, 0, 1, 254, 472] +[:key_held_player_two, 3, 0, 1, 255, 473] +[:key_held_player_two, 26, 0, 1, 256, 473] +[:key_held_player_two, 3, 0, 1, 257, 474] +[:key_held_player_two, 26, 0, 1, 258, 474] +[:key_held_player_two, 3, 0, 1, 259, 475] +[:key_held_player_two, 26, 0, 1, 260, 475] +[:key_held_player_two, 3, 0, 1, 261, 476] +[:key_held_player_two, 26, 0, 1, 262, 476] +[:key_held_player_two, 3, 0, 1, 263, 477] +[:key_held_player_two, 26, 0, 1, 264, 477] +[:key_up_player_two, 3, 0, 1, 265, 478] +[:key_up_player_two, 26, 0, 1, 266, 478] +[:mouse_button_pressed, 1, 0, 1, 267, 527] +[:mouse_button_up, 1, 0, 1, 268, 534] +[:key_down_player_two, 3, 0, 1, 269, 542] +[:key_down_player_two, 26, 0, 1, 270, 542] +[:key_held_player_two, 3, 0, 1, 271, 543] +[:key_held_player_two, 26, 0, 1, 272, 543] +[:key_held_player_two, 3, 0, 1, 273, 544] +[:key_held_player_two, 26, 0, 1, 274, 544] +[:key_held_player_two, 3, 0, 1, 275, 545] +[:key_held_player_two, 26, 0, 1, 276, 545] +[:key_held_player_two, 3, 0, 1, 277, 546] +[:key_held_player_two, 26, 0, 1, 278, 546] +[:key_held_player_two, 3, 0, 1, 279, 547] +[:key_held_player_two, 26, 0, 1, 280, 547] +[:key_held_player_two, 3, 0, 1, 281, 548] +[:key_held_player_two, 26, 0, 1, 282, 548] +[:key_held_player_two, 3, 0, 1, 283, 549] +[:key_held_player_two, 26, 0, 1, 284, 549] +[:key_held_player_two, 3, 0, 1, 285, 550] +[:key_held_player_two, 26, 0, 1, 286, 550] +[:key_held_player_two, 3, 0, 1, 287, 551] +[:key_held_player_two, 26, 0, 1, 288, 551] +[:key_held_player_two, 3, 0, 1, 289, 552] +[:key_held_player_two, 26, 0, 1, 290, 552] +[:key_held_player_two, 3, 0, 1, 291, 553] +[:key_held_player_two, 26, 0, 1, 292, 553] +[:key_held_player_two, 3, 0, 1, 293, 554] +[:key_held_player_two, 26, 0, 1, 294, 554] +[:key_held_player_two, 3, 0, 1, 295, 555] +[:key_held_player_two, 26, 0, 1, 296, 555] +[:key_held_player_two, 3, 0, 1, 297, 556] +[:key_held_player_two, 26, 0, 1, 298, 556] +[:key_held_player_two, 3, 0, 1, 299, 557] +[:key_held_player_two, 26, 0, 1, 300, 557] +[:key_up_player_two, 3, 0, 1, 301, 558] +[:key_up_player_two, 26, 0, 1, 302, 558] +[:key_down_player_two, 4, 0, 1, 303, 562] +[:key_down_player_two, 27, 0, 1, 304, 562] +[:key_held_player_two, 4, 0, 1, 305, 563] +[:key_held_player_two, 27, 0, 1, 306, 563] +[:key_held_player_two, 4, 0, 1, 307, 564] +[:key_held_player_two, 27, 0, 1, 308, 564] +[:key_held_player_two, 4, 0, 1, 309, 565] +[:key_held_player_two, 27, 0, 1, 310, 565] +[:key_held_player_two, 4, 0, 1, 311, 566] +[:key_held_player_two, 27, 0, 1, 312, 566] +[:key_held_player_two, 4, 0, 1, 313, 567] +[:key_held_player_two, 27, 0, 1, 314, 567] +[:key_held_player_two, 4, 0, 1, 315, 568] +[:key_held_player_two, 27, 0, 1, 316, 568] +[:key_held_player_two, 4, 0, 1, 317, 569] +[:key_held_player_two, 27, 0, 1, 318, 569] +[:key_held_player_two, 4, 0, 1, 319, 570] +[:key_held_player_two, 27, 0, 1, 320, 570] +[:key_held_player_two, 4, 0, 1, 321, 571] +[:key_held_player_two, 27, 0, 1, 322, 571] +[:key_held_player_two, 4, 0, 1, 323, 572] +[:key_held_player_two, 27, 0, 1, 324, 572] +[:key_down_player_two, 1, 0, 1, 325, 573] +[:key_held_player_two, 4, 0, 1, 326, 573] +[:key_down_player_two, 24, 0, 1, 327, 573] +[:key_held_player_two, 27, 0, 1, 328, 573] +[:key_held_player_two, 1, 0, 1, 329, 574] +[:key_held_player_two, 4, 0, 1, 330, 574] +[:key_held_player_two, 24, 0, 1, 331, 574] +[:key_held_player_two, 27, 0, 1, 332, 574] +[:key_held_player_two, 1, 0, 1, 333, 575] +[:key_held_player_two, 4, 0, 1, 334, 575] +[:key_held_player_two, 24, 0, 1, 335, 575] +[:key_held_player_two, 27, 0, 1, 336, 575] +[:key_held_player_two, 1, 0, 1, 337, 576] +[:key_held_player_two, 4, 0, 1, 338, 576] +[:key_held_player_two, 24, 0, 1, 339, 576] +[:key_held_player_two, 27, 0, 1, 340, 576] +[:key_held_player_two, 1, 0, 1, 341, 577] +[:key_held_player_two, 4, 0, 1, 342, 577] +[:key_held_player_two, 24, 0, 1, 343, 577] +[:key_held_player_two, 27, 0, 1, 344, 577] +[:key_up_player_two, 1, 0, 1, 345, 578] +[:key_held_player_two, 4, 0, 1, 346, 578] +[:key_up_player_two, 24, 0, 1, 347, 578] +[:key_held_player_two, 27, 0, 1, 348, 578] +[:key_held_player_two, 4, 0, 1, 349, 579] +[:key_held_player_two, 27, 0, 1, 350, 579] +[:key_held_player_two, 4, 0, 1, 351, 580] +[:key_held_player_two, 27, 0, 1, 352, 580] +[:key_held_player_two, 4, 0, 1, 353, 581] +[:key_held_player_two, 27, 0, 1, 354, 581] +[:key_held_player_two, 4, 0, 1, 355, 582] +[:key_held_player_two, 27, 0, 1, 356, 582] +[:key_held_player_two, 4, 0, 1, 357, 583] +[:key_held_player_two, 27, 0, 1, 358, 583] +[:key_held_player_two, 4, 0, 1, 359, 584] +[:key_held_player_two, 27, 0, 1, 360, 584] +[:key_held_player_two, 4, 0, 1, 361, 585] +[:key_held_player_two, 27, 0, 1, 362, 585] +[:key_held_player_two, 4, 0, 1, 363, 586] +[:key_held_player_two, 27, 0, 1, 364, 586] +[:key_held_player_two, 4, 0, 1, 365, 587] +[:key_held_player_two, 27, 0, 1, 366, 587] +[:key_held_player_two, 4, 0, 1, 367, 588] +[:key_held_player_two, 27, 0, 1, 368, 588] +[:key_held_player_two, 4, 0, 1, 369, 589] +[:key_held_player_two, 27, 0, 1, 370, 589] +[:key_held_player_two, 4, 0, 1, 371, 590] +[:key_held_player_two, 27, 0, 1, 372, 590] +[:key_held_player_two, 4, 0, 1, 373, 591] +[:key_held_player_two, 27, 0, 1, 374, 591] +[:key_held_player_two, 4, 0, 1, 375, 592] +[:key_held_player_two, 27, 0, 1, 376, 592] +[:key_held_player_two, 4, 0, 1, 377, 593] +[:key_held_player_two, 27, 0, 1, 378, 593] +[:key_held_player_two, 4, 0, 1, 379, 594] +[:key_held_player_two, 27, 0, 1, 380, 594] +[:key_held_player_two, 4, 0, 1, 381, 595] +[:key_held_player_two, 27, 0, 1, 382, 595] +[:key_held_player_two, 4, 0, 1, 383, 596] +[:key_held_player_two, 27, 0, 1, 384, 596] +[:key_up_player_two, 4, 0, 1, 385, 597] +[:key_up_player_two, 27, 0, 1, 386, 597] +[:key_down_player_two, 3, 0, 1, 387, 603] +[:key_down_player_two, 26, 0, 1, 388, 603] +[:key_held_player_two, 3, 0, 1, 389, 604] +[:key_held_player_two, 26, 0, 1, 390, 604] +[:key_held_player_two, 3, 0, 1, 391, 605] +[:key_held_player_two, 26, 0, 1, 392, 605] +[:key_held_player_two, 3, 0, 1, 393, 606] +[:key_held_player_two, 26, 0, 1, 394, 606] +[:key_held_player_two, 3, 0, 1, 395, 607] +[:key_held_player_two, 26, 0, 1, 396, 607] +[:key_held_player_two, 3, 0, 1, 397, 608] +[:key_held_player_two, 26, 0, 1, 398, 608] +[:key_held_player_two, 3, 0, 1, 399, 609] +[:key_held_player_two, 26, 0, 1, 400, 609] +[:key_held_player_two, 3, 0, 1, 401, 610] +[:key_held_player_two, 26, 0, 1, 402, 610] +[:key_held_player_two, 3, 0, 1, 403, 611] +[:key_held_player_two, 26, 0, 1, 404, 611] +[:key_held_player_two, 3, 0, 1, 405, 612] +[:key_held_player_two, 26, 0, 1, 406, 612] +[:key_held_player_two, 3, 0, 1, 407, 613] +[:key_held_player_two, 26, 0, 1, 408, 613] +[:key_held_player_two, 3, 0, 1, 409, 614] +[:key_held_player_two, 26, 0, 1, 410, 614] +[:key_held_player_two, 3, 0, 1, 411, 615] +[:key_held_player_two, 26, 0, 1, 412, 615] +[:key_held_player_two, 3, 0, 1, 413, 616] +[:key_held_player_two, 26, 0, 1, 414, 616] +[:key_held_player_two, 3, 0, 1, 415, 617] +[:key_down_player_two, 19, 0, 1, 416, 617] +[:key_held_player_two, 26, 0, 1, 417, 617] +[:key_held_player_two, 3, 0, 1, 418, 618] +[:key_held_player_two, 19, 0, 1, 419, 618] +[:key_held_player_two, 26, 0, 1, 420, 618] +[:key_held_player_two, 3, 0, 1, 421, 619] +[:key_held_player_two, 19, 0, 1, 422, 619] +[:key_held_player_two, 26, 0, 1, 423, 619] +[:key_held_player_two, 3, 0, 1, 424, 620] +[:key_held_player_two, 19, 0, 1, 425, 620] +[:key_held_player_two, 26, 0, 1, 426, 620] +[:key_held_player_two, 3, 0, 1, 427, 621] +[:key_held_player_two, 19, 0, 1, 428, 621] +[:key_held_player_two, 26, 0, 1, 429, 621] +[:key_up_player_two, 3, 0, 1, 430, 622] +[:key_held_player_two, 19, 0, 1, 431, 622] +[:key_up_player_two, 26, 0, 1, 432, 622] +[:key_held_player_two, 19, 0, 1, 433, 623] +[:key_held_player_two, 19, 0, 1, 434, 624] +[:key_held_player_two, 19, 0, 1, 435, 625] +[:key_held_player_two, 19, 0, 1, 436, 626] +[:key_held_player_two, 19, 0, 1, 437, 627] +[:key_held_player_two, 19, 0, 1, 438, 628] +[:key_held_player_two, 19, 0, 1, 439, 629] +[:key_held_player_two, 19, 0, 1, 440, 630] +[:key_down_player_two, 4, 0, 1, 441, 631] +[:key_held_player_two, 19, 0, 1, 442, 631] +[:key_down_player_two, 27, 0, 1, 443, 631] +[:key_held_player_two, 4, 0, 1, 444, 632] +[:key_held_player_two, 19, 0, 1, 445, 632] +[:key_held_player_two, 27, 0, 1, 446, 632] +[:key_held_player_two, 4, 0, 1, 447, 633] +[:key_held_player_two, 19, 0, 1, 448, 633] +[:key_held_player_two, 27, 0, 1, 449, 633] +[:key_held_player_two, 4, 0, 1, 450, 634] +[:key_held_player_two, 19, 0, 1, 451, 634] +[:key_held_player_two, 27, 0, 1, 452, 634] +[:key_held_player_two, 4, 0, 1, 453, 635] +[:key_held_player_two, 19, 0, 1, 454, 635] +[:key_held_player_two, 27, 0, 1, 455, 635] +[:key_held_player_two, 4, 0, 1, 456, 636] +[:key_held_player_two, 19, 0, 1, 457, 636] +[:key_held_player_two, 27, 0, 1, 458, 636] +[:key_held_player_two, 4, 0, 1, 459, 637] +[:key_held_player_two, 19, 0, 1, 460, 637] +[:key_held_player_two, 27, 0, 1, 461, 637] +[:key_held_player_two, 4, 0, 1, 462, 638] +[:key_held_player_two, 19, 0, 1, 463, 638] +[:key_held_player_two, 27, 0, 1, 464, 638] +[:key_held_player_two, 4, 0, 1, 465, 639] +[:key_held_player_two, 19, 0, 1, 466, 639] +[:key_held_player_two, 27, 0, 1, 467, 639] +[:key_held_player_two, 4, 0, 1, 468, 640] +[:key_held_player_two, 19, 0, 1, 469, 640] +[:key_held_player_two, 27, 0, 1, 470, 640] +[:key_held_player_two, 4, 0, 1, 471, 641] +[:key_held_player_two, 19, 0, 1, 472, 641] +[:key_held_player_two, 27, 0, 1, 473, 641] +[:key_held_player_two, 4, 0, 1, 474, 642] +[:key_held_player_two, 19, 0, 1, 475, 642] +[:key_held_player_two, 27, 0, 1, 476, 642] +[:key_held_player_two, 4, 0, 1, 477, 643] +[:key_held_player_two, 19, 0, 1, 478, 643] +[:key_held_player_two, 27, 0, 1, 479, 643] +[:key_held_player_two, 4, 0, 1, 480, 644] +[:key_held_player_two, 19, 0, 1, 481, 644] +[:key_held_player_two, 27, 0, 1, 482, 644] +[:key_held_player_two, 4, 0, 1, 483, 645] +[:key_held_player_two, 19, 0, 1, 484, 645] +[:key_held_player_two, 27, 0, 1, 485, 645] +[:key_held_player_two, 4, 0, 1, 486, 646] +[:key_held_player_two, 19, 0, 1, 487, 646] +[:key_held_player_two, 27, 0, 1, 488, 646] +[:key_held_player_two, 4, 0, 1, 489, 647] +[:key_held_player_two, 19, 0, 1, 490, 647] +[:key_held_player_two, 27, 0, 1, 491, 647] +[:key_held_player_two, 4, 0, 1, 492, 648] +[:key_held_player_two, 19, 0, 1, 493, 648] +[:key_held_player_two, 27, 0, 1, 494, 648] +[:key_held_player_two, 4, 0, 1, 495, 649] +[:key_held_player_two, 19, 0, 1, 496, 649] +[:key_held_player_two, 27, 0, 1, 497, 649] +[:key_held_player_two, 4, 0, 1, 498, 650] +[:key_held_player_two, 19, 0, 1, 499, 650] +[:key_held_player_two, 27, 0, 1, 500, 650] +[:key_held_player_two, 4, 0, 1, 501, 651] +[:key_held_player_two, 19, 0, 1, 502, 651] +[:key_held_player_two, 27, 0, 1, 503, 651] +[:key_held_player_two, 4, 0, 1, 504, 652] +[:key_held_player_two, 19, 0, 1, 505, 652] +[:key_held_player_two, 27, 0, 1, 506, 652] +[:key_down_player_two, 1, 0, 1, 507, 653] +[:key_held_player_two, 4, 0, 1, 508, 653] +[:key_held_player_two, 19, 0, 1, 509, 653] +[:key_down_player_two, 24, 0, 1, 510, 653] +[:key_held_player_two, 27, 0, 1, 511, 653] +[:key_held_player_two, 1, 0, 1, 512, 654] +[:key_held_player_two, 4, 0, 1, 513, 654] +[:key_held_player_two, 19, 0, 1, 514, 654] +[:key_held_player_two, 24, 0, 1, 515, 654] +[:key_held_player_two, 27, 0, 1, 516, 654] +[:key_held_player_two, 1, 0, 1, 517, 655] +[:key_held_player_two, 4, 0, 1, 518, 655] +[:key_held_player_two, 19, 0, 1, 519, 655] +[:key_held_player_two, 24, 0, 1, 520, 655] +[:key_held_player_two, 27, 0, 1, 521, 655] +[:key_up_player_two, 1, 0, 1, 522, 656] +[:key_up_player_two, 4, 0, 1, 523, 656] +[:key_held_player_two, 19, 0, 1, 524, 656] +[:key_up_player_two, 24, 0, 1, 525, 656] +[:key_up_player_two, 27, 0, 1, 526, 656] +[:key_held_player_two, 19, 0, 1, 527, 657] +[:key_held_player_two, 19, 0, 1, 528, 658] +[:key_held_player_two, 19, 0, 1, 529, 659] +[:key_held_player_two, 19, 0, 1, 530, 660] +[:key_held_player_two, 19, 0, 1, 531, 661] +[:key_held_player_two, 19, 0, 1, 532, 662] +[:key_held_player_two, 19, 0, 1, 533, 663] +[:key_held_player_two, 19, 0, 1, 534, 664] +[:key_down_player_two, 3, 0, 1, 535, 665] +[:key_held_player_two, 19, 0, 1, 536, 665] +[:key_down_player_two, 26, 0, 1, 537, 665] +[:key_held_player_two, 3, 0, 1, 538, 666] +[:key_held_player_two, 19, 0, 1, 539, 666] +[:key_held_player_two, 26, 0, 1, 540, 666] +[:key_held_player_two, 3, 0, 1, 541, 667] +[:key_held_player_two, 19, 0, 1, 542, 667] +[:key_held_player_two, 26, 0, 1, 543, 667] +[:key_held_player_two, 3, 0, 1, 544, 668] +[:key_held_player_two, 19, 0, 1, 545, 668] +[:key_held_player_two, 26, 0, 1, 546, 668] +[:key_held_player_two, 3, 0, 1, 547, 669] +[:key_held_player_two, 19, 0, 1, 548, 669] +[:key_held_player_two, 26, 0, 1, 549, 669] +[:key_held_player_two, 3, 0, 1, 550, 670] +[:key_held_player_two, 19, 0, 1, 551, 670] +[:key_held_player_two, 26, 0, 1, 552, 670] +[:key_held_player_two, 3, 0, 1, 553, 671] +[:key_down_player_two, 14, 0, 1, 554, 671] +[:key_held_player_two, 19, 0, 1, 555, 671] +[:key_held_player_two, 26, 0, 1, 556, 671] +[:key_held_player_two, 3, 0, 1, 557, 672] +[:key_held_player_two, 14, 0, 1, 558, 672] +[:key_held_player_two, 19, 0, 1, 559, 672] +[:key_held_player_two, 26, 0, 1, 560, 672] +[:key_held_player_two, 3, 0, 1, 561, 673] +[:key_held_player_two, 14, 0, 1, 562, 673] +[:key_held_player_two, 19, 0, 1, 563, 673] +[:key_held_player_two, 26, 0, 1, 564, 673] +[:key_held_player_two, 3, 0, 1, 565, 674] +[:key_held_player_two, 14, 0, 1, 566, 674] +[:key_held_player_two, 19, 0, 1, 567, 674] +[:key_held_player_two, 26, 0, 1, 568, 674] +[:key_held_player_two, 3, 0, 1, 569, 675] +[:key_held_player_two, 14, 0, 1, 570, 675] +[:key_held_player_two, 19, 0, 1, 571, 675] +[:key_held_player_two, 26, 0, 1, 572, 675] +[:key_held_player_two, 3, 0, 1, 573, 676] +[:key_held_player_two, 14, 0, 1, 574, 676] +[:key_held_player_two, 19, 0, 1, 575, 676] +[:key_held_player_two, 26, 0, 1, 576, 676] +[:key_held_player_two, 3, 0, 1, 577, 677] +[:key_held_player_two, 14, 0, 1, 578, 677] +[:key_held_player_two, 19, 0, 1, 579, 677] +[:key_held_player_two, 26, 0, 1, 580, 677] +[:key_held_player_two, 3, 0, 1, 581, 678] +[:key_held_player_two, 14, 0, 1, 582, 678] +[:key_held_player_two, 19, 0, 1, 583, 678] +[:key_held_player_two, 26, 0, 1, 584, 678] +[:key_held_player_two, 3, 0, 1, 585, 679] +[:key_held_player_two, 14, 0, 1, 586, 679] +[:key_held_player_two, 19, 0, 1, 587, 679] +[:key_held_player_two, 26, 0, 1, 588, 679] +[:key_held_player_two, 3, 0, 1, 589, 680] +[:key_held_player_two, 14, 0, 1, 590, 680] +[:key_held_player_two, 19, 0, 1, 591, 680] +[:key_held_player_two, 26, 0, 1, 592, 680] +[:key_held_player_two, 3, 0, 1, 593, 681] +[:key_held_player_two, 14, 0, 1, 594, 681] +[:key_held_player_two, 19, 0, 1, 595, 681] +[:key_held_player_two, 26, 0, 1, 596, 681] +[:key_held_player_two, 3, 0, 1, 597, 682] +[:key_held_player_two, 14, 0, 1, 598, 682] +[:key_held_player_two, 19, 0, 1, 599, 682] +[:key_held_player_two, 26, 0, 1, 600, 682] +[:key_held_player_two, 3, 0, 1, 601, 683] +[:key_held_player_two, 14, 0, 1, 602, 683] +[:key_held_player_two, 19, 0, 1, 603, 683] +[:key_held_player_two, 26, 0, 1, 604, 683] +[:key_held_player_two, 3, 0, 1, 605, 684] +[:key_held_player_two, 14, 0, 1, 606, 684] +[:key_held_player_two, 19, 0, 1, 607, 684] +[:key_held_player_two, 26, 0, 1, 608, 684] +[:key_held_player_two, 3, 0, 1, 609, 685] +[:key_held_player_two, 14, 0, 1, 610, 685] +[:key_held_player_two, 19, 0, 1, 611, 685] +[:key_held_player_two, 26, 0, 1, 612, 685] +[:key_held_player_two, 3, 0, 1, 613, 686] +[:key_held_player_two, 14, 0, 1, 614, 686] +[:key_held_player_two, 19, 0, 1, 615, 686] +[:key_held_player_two, 26, 0, 1, 616, 686] +[:key_up_player_two, 3, 0, 1, 617, 687] +[:key_held_player_two, 14, 0, 1, 618, 687] +[:key_held_player_two, 19, 0, 1, 619, 687] +[:key_up_player_two, 26, 0, 1, 620, 687] +[:key_held_player_two, 14, 0, 1, 621, 688] +[:key_held_player_two, 19, 0, 1, 622, 688] +[:key_held_player_two, 14, 0, 1, 623, 689] +[:key_held_player_two, 19, 0, 1, 624, 689] +[:key_held_player_two, 14, 0, 1, 625, 690] +[:key_held_player_two, 19, 0, 1, 626, 690] +[:key_held_player_two, 14, 0, 1, 627, 691] +[:key_held_player_two, 19, 0, 1, 628, 691] +[:key_up_player_two, 14, 0, 1, 629, 692] +[:key_held_player_two, 19, 0, 1, 630, 692] +[:key_held_player_two, 19, 0, 1, 631, 693] +[:key_held_player_two, 19, 0, 1, 632, 694] +[:key_held_player_two, 19, 0, 1, 633, 695] +[:key_held_player_two, 19, 0, 1, 634, 696] +[:key_held_player_two, 19, 0, 1, 635, 697] +[:key_held_player_two, 19, 0, 1, 636, 698] +[:key_down_player_two, 14, 0, 1, 637, 699] +[:key_held_player_two, 19, 0, 1, 638, 699] +[:key_held_player_two, 14, 0, 1, 639, 700] +[:key_held_player_two, 19, 0, 1, 640, 700] +[:key_held_player_two, 14, 0, 1, 641, 701] +[:key_held_player_two, 19, 0, 1, 642, 701] +[:key_held_player_two, 14, 0, 1, 643, 702] +[:key_held_player_two, 19, 0, 1, 644, 702] +[:key_held_player_two, 14, 0, 1, 645, 703] +[:key_held_player_two, 19, 0, 1, 646, 703] +[:key_held_player_two, 14, 0, 1, 647, 704] +[:key_held_player_two, 19, 0, 1, 648, 704] +[:key_held_player_two, 14, 0, 1, 649, 705] +[:key_held_player_two, 19, 0, 1, 650, 705] +[:key_up_player_two, 14, 0, 1, 651, 706] +[:key_held_player_two, 19, 0, 1, 652, 706] +[:key_held_player_two, 19, 0, 1, 653, 707] +[:key_held_player_two, 19, 0, 1, 654, 708] +[:key_held_player_two, 19, 0, 1, 655, 709] +[:key_down_player_two, 4, 0, 1, 656, 710] +[:key_down_player_two, 14, 0, 1, 657, 710] +[:key_held_player_two, 19, 0, 1, 658, 710] +[:key_down_player_two, 27, 0, 1, 659, 710] +[:key_held_player_two, 4, 0, 1, 660, 711] +[:key_held_player_two, 14, 0, 1, 661, 711] +[:key_held_player_two, 19, 0, 1, 662, 711] +[:key_held_player_two, 27, 0, 1, 663, 711] +[:key_held_player_two, 4, 0, 1, 664, 712] +[:key_held_player_two, 14, 0, 1, 665, 712] +[:key_held_player_two, 19, 0, 1, 666, 712] +[:key_held_player_two, 27, 0, 1, 667, 712] +[:key_held_player_two, 4, 0, 1, 668, 713] +[:key_held_player_two, 14, 0, 1, 669, 713] +[:key_held_player_two, 19, 0, 1, 670, 713] +[:key_held_player_two, 27, 0, 1, 671, 713] +[:key_held_player_two, 4, 0, 1, 672, 714] +[:key_held_player_two, 14, 0, 1, 673, 714] +[:key_held_player_two, 19, 0, 1, 674, 714] +[:key_held_player_two, 27, 0, 1, 675, 714] +[:key_held_player_two, 4, 0, 1, 676, 715] +[:key_held_player_two, 14, 0, 1, 677, 715] +[:key_held_player_two, 19, 0, 1, 678, 715] +[:key_held_player_two, 27, 0, 1, 679, 715] +[:key_held_player_two, 4, 0, 1, 680, 716] +[:key_held_player_two, 14, 0, 1, 681, 716] +[:key_held_player_two, 19, 0, 1, 682, 716] +[:key_held_player_two, 27, 0, 1, 683, 716] +[:key_up_player_two, 4, 0, 1, 684, 717] +[:key_up_player_two, 14, 0, 1, 685, 717] +[:key_held_player_two, 19, 0, 1, 686, 717] +[:key_up_player_two, 27, 0, 1, 687, 717] +[:key_held_player_two, 19, 0, 1, 688, 718] +[:key_held_player_two, 19, 0, 1, 689, 719] +[:key_held_player_two, 19, 0, 1, 690, 720] +[:key_held_player_two, 19, 0, 1, 691, 721] +[:key_down_player_two, 14, 0, 1, 692, 722] +[:key_held_player_two, 19, 0, 1, 693, 722] +[:key_held_player_two, 14, 0, 1, 694, 723] +[:key_held_player_two, 19, 0, 1, 695, 723] +[:key_held_player_two, 14, 0, 1, 696, 724] +[:key_held_player_two, 19, 0, 1, 697, 724] +[:key_held_player_two, 14, 0, 1, 698, 725] +[:key_held_player_two, 19, 0, 1, 699, 725] +[:key_held_player_two, 14, 0, 1, 700, 726] +[:key_held_player_two, 19, 0, 1, 701, 726] +[:key_up_player_two, 14, 0, 1, 702, 727] +[:key_held_player_two, 19, 0, 1, 703, 727] +[:key_held_player_two, 19, 0, 1, 704, 728] +[:key_held_player_two, 19, 0, 1, 705, 729] +[:key_held_player_two, 19, 0, 1, 706, 730] +[:key_down_player_two, 14, 0, 1, 707, 731] +[:key_held_player_two, 19, 0, 1, 708, 731] +[:key_held_player_two, 14, 0, 1, 709, 732] +[:key_held_player_two, 19, 0, 1, 710, 732] +[:key_held_player_two, 14, 0, 1, 711, 733] +[:key_held_player_two, 19, 0, 1, 712, 733] +[:key_held_player_two, 14, 0, 1, 713, 734] +[:key_held_player_two, 19, 0, 1, 714, 734] +[:key_held_player_two, 14, 0, 1, 715, 735] +[:key_held_player_two, 19, 0, 1, 716, 735] +[:key_held_player_two, 14, 0, 1, 717, 736] +[:key_held_player_two, 19, 0, 1, 718, 736] +[:key_held_player_two, 14, 0, 1, 719, 737] +[:key_held_player_two, 19, 0, 1, 720, 737] +[:key_up_player_two, 14, 0, 1, 721, 738] +[:key_held_player_two, 19, 0, 1, 722, 738] +[:key_held_player_two, 19, 0, 1, 723, 739] +[:key_held_player_two, 19, 0, 1, 724, 740] +[:key_down_player_two, 14, 0, 1, 725, 741] +[:key_held_player_two, 19, 0, 1, 726, 741] +[:key_held_player_two, 14, 0, 1, 727, 742] +[:key_held_player_two, 19, 0, 1, 728, 742] +[:key_held_player_two, 14, 0, 1, 729, 743] +[:key_held_player_two, 19, 0, 1, 730, 743] +[:key_held_player_two, 14, 0, 1, 731, 744] +[:key_held_player_two, 19, 0, 1, 732, 744] +[:key_held_player_two, 14, 0, 1, 733, 745] +[:key_held_player_two, 19, 0, 1, 734, 745] +[:key_held_player_two, 14, 0, 1, 735, 746] +[:key_held_player_two, 19, 0, 1, 736, 746] +[:key_held_player_two, 14, 0, 1, 737, 747] +[:key_held_player_two, 19, 0, 1, 738, 747] +[:key_held_player_two, 14, 0, 1, 739, 748] +[:key_held_player_two, 19, 0, 1, 740, 748] +[:key_up_player_two, 14, 0, 1, 741, 749] +[:key_held_player_two, 19, 0, 1, 742, 749] +[:key_held_player_two, 19, 0, 1, 743, 750] +[:key_held_player_two, 19, 0, 1, 744, 751] +[:key_held_player_two, 19, 0, 1, 745, 752] +[:key_held_player_two, 19, 0, 1, 746, 753] +[:key_down_player_two, 4, 0, 1, 747, 754] +[:key_down_player_two, 14, 0, 1, 748, 754] +[:key_held_player_two, 19, 0, 1, 749, 754] +[:key_down_player_two, 27, 0, 1, 750, 754] +[:key_held_player_two, 4, 0, 1, 751, 755] +[:key_held_player_two, 14, 0, 1, 752, 755] +[:key_held_player_two, 19, 0, 1, 753, 755] +[:key_held_player_two, 27, 0, 1, 754, 755] +[:key_held_player_two, 4, 0, 1, 755, 756] +[:key_held_player_two, 14, 0, 1, 756, 756] +[:key_held_player_two, 19, 0, 1, 757, 756] +[:key_held_player_two, 27, 0, 1, 758, 756] +[:key_held_player_two, 4, 0, 1, 759, 757] +[:key_held_player_two, 14, 0, 1, 760, 757] +[:key_held_player_two, 19, 0, 1, 761, 757] +[:key_held_player_two, 27, 0, 1, 762, 757] +[:key_held_player_two, 4, 0, 1, 763, 758] +[:key_held_player_two, 14, 0, 1, 764, 758] +[:key_held_player_two, 19, 0, 1, 765, 758] +[:key_held_player_two, 27, 0, 1, 766, 758] +[:key_held_player_two, 4, 0, 1, 767, 759] +[:key_held_player_two, 14, 0, 1, 768, 759] +[:key_held_player_two, 19, 0, 1, 769, 759] +[:key_held_player_two, 27, 0, 1, 770, 759] +[:key_held_player_two, 4, 0, 1, 771, 760] +[:key_held_player_two, 14, 0, 1, 772, 760] +[:key_held_player_two, 19, 0, 1, 773, 760] +[:key_held_player_two, 27, 0, 1, 774, 760] +[:key_held_player_two, 4, 0, 1, 775, 761] +[:key_up_player_two, 14, 0, 1, 776, 761] +[:key_held_player_two, 19, 0, 1, 777, 761] +[:key_held_player_two, 27, 0, 1, 778, 761] +[:key_held_player_two, 4, 0, 1, 779, 762] +[:key_held_player_two, 19, 0, 1, 780, 762] +[:key_held_player_two, 27, 0, 1, 781, 762] +[:key_held_player_two, 4, 0, 1, 782, 763] +[:key_held_player_two, 19, 0, 1, 783, 763] +[:key_held_player_two, 27, 0, 1, 784, 763] +[:key_held_player_two, 4, 0, 1, 785, 764] +[:key_held_player_two, 19, 0, 1, 786, 764] +[:key_held_player_two, 27, 0, 1, 787, 764] +[:key_held_player_two, 4, 0, 1, 788, 765] +[:key_held_player_two, 19, 0, 1, 789, 765] +[:key_held_player_two, 27, 0, 1, 790, 765] +[:key_held_player_two, 4, 0, 1, 791, 766] +[:key_down_player_two, 14, 0, 1, 792, 766] +[:key_held_player_two, 19, 0, 1, 793, 766] +[:key_held_player_two, 27, 0, 1, 794, 766] +[:key_held_player_two, 4, 0, 1, 795, 767] +[:key_held_player_two, 14, 0, 1, 796, 767] +[:key_held_player_two, 19, 0, 1, 797, 767] +[:key_held_player_two, 27, 0, 1, 798, 767] +[:key_held_player_two, 4, 0, 1, 799, 768] +[:key_held_player_two, 14, 0, 1, 800, 768] +[:key_held_player_two, 19, 0, 1, 801, 768] +[:key_held_player_two, 27, 0, 1, 802, 768] +[:key_held_player_two, 4, 0, 1, 803, 769] +[:key_held_player_two, 14, 0, 1, 804, 769] +[:key_held_player_two, 19, 0, 1, 805, 769] +[:key_held_player_two, 27, 0, 1, 806, 769] +[:key_held_player_two, 4, 0, 1, 807, 770] +[:key_held_player_two, 14, 0, 1, 808, 770] +[:key_held_player_two, 19, 0, 1, 809, 770] +[:key_held_player_two, 27, 0, 1, 810, 770] +[:key_held_player_two, 4, 0, 1, 811, 771] +[:key_held_player_two, 14, 0, 1, 812, 771] +[:key_held_player_two, 19, 0, 1, 813, 771] +[:key_held_player_two, 27, 0, 1, 814, 771] +[:key_held_player_two, 4, 0, 1, 815, 772] +[:key_held_player_two, 14, 0, 1, 816, 772] +[:key_held_player_two, 19, 0, 1, 817, 772] +[:key_held_player_two, 27, 0, 1, 818, 772] +[:key_held_player_two, 4, 0, 1, 819, 773] +[:key_held_player_two, 14, 0, 1, 820, 773] +[:key_held_player_two, 19, 0, 1, 821, 773] +[:key_held_player_two, 27, 0, 1, 822, 773] +[:key_held_player_two, 4, 0, 1, 823, 774] +[:key_up_player_two, 14, 0, 1, 824, 774] +[:key_held_player_two, 19, 0, 1, 825, 774] +[:key_held_player_two, 27, 0, 1, 826, 774] +[:key_held_player_two, 4, 0, 1, 827, 775] +[:key_held_player_two, 19, 0, 1, 828, 775] +[:key_held_player_two, 27, 0, 1, 829, 775] +[:key_up_player_two, 4, 0, 1, 830, 776] +[:key_held_player_two, 19, 0, 1, 831, 776] +[:key_up_player_two, 27, 0, 1, 832, 776] +[:key_held_player_two, 19, 0, 1, 833, 777] +[:key_held_player_two, 19, 0, 1, 834, 778] +[:key_down_player_two, 14, 0, 1, 835, 779] +[:key_held_player_two, 19, 0, 1, 836, 779] +[:key_held_player_two, 14, 0, 1, 837, 780] +[:key_held_player_two, 19, 0, 1, 838, 780] +[:key_held_player_two, 14, 0, 1, 839, 781] +[:key_held_player_two, 19, 0, 1, 840, 781] +[:key_held_player_two, 14, 0, 1, 841, 782] +[:key_held_player_two, 19, 0, 1, 842, 782] +[:key_held_player_two, 14, 0, 1, 843, 783] +[:key_held_player_two, 19, 0, 1, 844, 783] +[:key_held_player_two, 14, 0, 1, 845, 784] +[:key_held_player_two, 19, 0, 1, 846, 784] +[:key_up_player_two, 14, 0, 1, 847, 785] +[:key_held_player_two, 19, 0, 1, 848, 785] +[:key_held_player_two, 19, 0, 1, 849, 786] +[:key_held_player_two, 19, 0, 1, 850, 787] +[:key_held_player_two, 19, 0, 1, 851, 788] +[:key_held_player_two, 19, 0, 1, 852, 789] +[:key_held_player_two, 19, 0, 1, 853, 790] +[:key_held_player_two, 19, 0, 1, 854, 791] +[:key_held_player_two, 19, 0, 1, 855, 792] +[:key_held_player_two, 19, 0, 1, 856, 793] +[:key_held_player_two, 19, 0, 1, 857, 794] +[:key_held_player_two, 19, 0, 1, 858, 795] +[:key_held_player_two, 19, 0, 1, 859, 796] +[:key_held_player_two, 19, 0, 1, 860, 797] +[:key_held_player_two, 19, 0, 1, 861, 798] +[:key_held_player_two, 19, 0, 1, 862, 799] +[:key_held_player_two, 19, 0, 1, 863, 800] +[:key_held_player_two, 19, 0, 1, 864, 801] +[:key_held_player_two, 19, 0, 1, 865, 802] +[:key_held_player_two, 19, 0, 1, 866, 803] +[:key_down_player_two, 3, 0, 1, 867, 804] +[:key_held_player_two, 19, 0, 1, 868, 804] +[:key_down_player_two, 26, 0, 1, 869, 804] +[:key_held_player_two, 3, 0, 1, 870, 805] +[:key_held_player_two, 19, 0, 1, 871, 805] +[:key_held_player_two, 26, 0, 1, 872, 805] +[:key_held_player_two, 3, 0, 1, 873, 806] +[:key_held_player_two, 19, 0, 1, 874, 806] +[:key_held_player_two, 26, 0, 1, 875, 806] +[:key_held_player_two, 3, 0, 1, 876, 807] +[:key_held_player_two, 19, 0, 1, 877, 807] +[:key_held_player_two, 26, 0, 1, 878, 807] +[:key_held_player_two, 3, 0, 1, 879, 808] +[:key_held_player_two, 19, 0, 1, 880, 808] +[:key_held_player_two, 26, 0, 1, 881, 808] +[:key_held_player_two, 3, 0, 1, 882, 809] +[:key_held_player_two, 19, 0, 1, 883, 809] +[:key_held_player_two, 26, 0, 1, 884, 809] +[:key_held_player_two, 3, 0, 1, 885, 810] +[:key_held_player_two, 19, 0, 1, 886, 810] +[:key_held_player_two, 26, 0, 1, 887, 810] +[:key_held_player_two, 3, 0, 1, 888, 811] +[:key_held_player_two, 19, 0, 1, 889, 811] +[:key_held_player_two, 26, 0, 1, 890, 811] +[:key_held_player_two, 3, 0, 1, 891, 812] +[:key_held_player_two, 19, 0, 1, 892, 812] +[:key_held_player_two, 26, 0, 1, 893, 812] +[:key_held_player_two, 3, 0, 1, 894, 813] +[:key_held_player_two, 19, 0, 1, 895, 813] +[:key_held_player_two, 26, 0, 1, 896, 813] +[:key_up_player_two, 3, 0, 1, 897, 814] +[:key_held_player_two, 19, 0, 1, 898, 814] +[:key_up_player_two, 26, 0, 1, 899, 814] +[:key_held_player_two, 19, 0, 1, 900, 815] +[:key_held_player_two, 19, 0, 1, 901, 816] +[:key_held_player_two, 19, 0, 1, 902, 817] +[:key_held_player_two, 19, 0, 1, 903, 818] +[:key_held_player_two, 19, 0, 1, 904, 819] +[:key_held_player_two, 19, 0, 1, 905, 820] +[:key_held_player_two, 19, 0, 1, 906, 821] +[:key_held_player_two, 19, 0, 1, 907, 822] +[:key_held_player_two, 19, 0, 1, 908, 823] +[:key_held_player_two, 19, 0, 1, 909, 824] +[:key_held_player_two, 19, 0, 1, 910, 825] +[:key_held_player_two, 19, 0, 1, 911, 826] +[:key_held_player_two, 19, 0, 1, 912, 827] +[:key_held_player_two, 19, 0, 1, 913, 828] +[:key_held_player_two, 19, 0, 1, 914, 829] +[:key_held_player_two, 19, 0, 1, 915, 830] +[:key_held_player_two, 19, 0, 1, 916, 831] +[:key_held_player_two, 19, 0, 1, 917, 832] +[:key_held_player_two, 19, 0, 1, 918, 833] +[:key_held_player_two, 19, 0, 1, 919, 834] +[:key_held_player_two, 19, 0, 1, 920, 835] +[:key_down_player_two, 3, 0, 1, 921, 836] +[:key_held_player_two, 19, 0, 1, 922, 836] +[:key_down_player_two, 26, 0, 1, 923, 836] +[:key_held_player_two, 3, 0, 1, 924, 837] +[:key_held_player_two, 19, 0, 1, 925, 837] +[:key_held_player_two, 26, 0, 1, 926, 837] +[:key_held_player_two, 3, 0, 1, 927, 838] +[:key_held_player_two, 19, 0, 1, 928, 838] +[:key_held_player_two, 26, 0, 1, 929, 838] +[:key_held_player_two, 3, 0, 1, 930, 839] +[:key_held_player_two, 19, 0, 1, 931, 839] +[:key_held_player_two, 26, 0, 1, 932, 839] +[:key_held_player_two, 3, 0, 1, 933, 840] +[:key_held_player_two, 19, 0, 1, 934, 840] +[:key_held_player_two, 26, 0, 1, 935, 840] +[:key_held_player_two, 3, 0, 1, 936, 841] +[:key_held_player_two, 19, 0, 1, 937, 841] +[:key_held_player_two, 26, 0, 1, 938, 841] +[:key_held_player_two, 3, 0, 1, 939, 842] +[:key_held_player_two, 19, 0, 1, 940, 842] +[:key_held_player_two, 26, 0, 1, 941, 842] +[:key_held_player_two, 3, 0, 1, 942, 843] +[:key_held_player_two, 19, 0, 1, 943, 843] +[:key_held_player_two, 26, 0, 1, 944, 843] +[:key_held_player_two, 3, 0, 1, 945, 844] +[:key_held_player_two, 19, 0, 1, 946, 844] +[:key_held_player_two, 26, 0, 1, 947, 844] +[:key_up_player_two, 3, 0, 1, 948, 845] +[:key_held_player_two, 19, 0, 1, 949, 845] +[:key_up_player_two, 26, 0, 1, 950, 845] +[:key_held_player_two, 19, 0, 1, 951, 846] +[:key_held_player_two, 19, 0, 1, 952, 847] +[:key_held_player_two, 19, 0, 1, 953, 848] +[:key_held_player_two, 19, 0, 1, 954, 849] +[:key_held_player_two, 19, 0, 1, 955, 850] +[:key_held_player_two, 19, 0, 1, 956, 851] +[:key_held_player_two, 19, 0, 1, 957, 852] +[:key_held_player_two, 19, 0, 1, 958, 853] +[:key_held_player_two, 19, 0, 1, 959, 854] +[:key_held_player_two, 19, 0, 1, 960, 855] +[:key_held_player_two, 19, 0, 1, 961, 856] +[:key_held_player_two, 19, 0, 1, 962, 857] +[:key_held_player_two, 19, 0, 1, 963, 858] +[:key_down_player_two, 4, 0, 1, 964, 859] +[:key_held_player_two, 19, 0, 1, 965, 859] +[:key_down_player_two, 27, 0, 1, 966, 859] +[:key_held_player_two, 4, 0, 1, 967, 860] +[:key_held_player_two, 19, 0, 1, 968, 860] +[:key_held_player_two, 27, 0, 1, 969, 860] +[:key_held_player_two, 4, 0, 1, 970, 861] +[:key_held_player_two, 19, 0, 1, 971, 861] +[:key_held_player_two, 27, 0, 1, 972, 861] +[:key_held_player_two, 4, 0, 1, 973, 862] +[:key_held_player_two, 19, 0, 1, 974, 862] +[:key_held_player_two, 27, 0, 1, 975, 862] +[:key_held_player_two, 4, 0, 1, 976, 863] +[:key_held_player_two, 19, 0, 1, 977, 863] +[:key_held_player_two, 27, 0, 1, 978, 863] +[:key_held_player_two, 4, 0, 1, 979, 864] +[:key_held_player_two, 19, 0, 1, 980, 864] +[:key_held_player_two, 27, 0, 1, 981, 864] +[:key_held_player_two, 4, 0, 1, 982, 865] +[:key_held_player_two, 19, 0, 1, 983, 865] +[:key_held_player_two, 27, 0, 1, 984, 865] +[:key_held_player_two, 4, 0, 1, 985, 866] +[:key_held_player_two, 19, 0, 1, 986, 866] +[:key_held_player_two, 27, 0, 1, 987, 866] +[:key_up_player_two, 4, 0, 1, 988, 867] +[:key_held_player_two, 19, 0, 1, 989, 867] +[:key_up_player_two, 27, 0, 1, 990, 867] +[:key_held_player_two, 19, 0, 1, 991, 868] +[:key_held_player_two, 19, 0, 1, 992, 869] +[:key_held_player_two, 19, 0, 1, 993, 870] +[:key_held_player_two, 19, 0, 1, 994, 871] +[:key_held_player_two, 19, 0, 1, 995, 872] +[:key_held_player_two, 19, 0, 1, 996, 873] +[:key_held_player_two, 19, 0, 1, 997, 874] +[:key_held_player_two, 19, 0, 1, 998, 875] +[:key_held_player_two, 19, 0, 1, 999, 876] +[:key_held_player_two, 19, 0, 1, 1000, 877] +[:key_held_player_two, 19, 0, 1, 1001, 878] +[:key_held_player_two, 19, 0, 1, 1002, 879] +[:key_held_player_two, 19, 0, 1, 1003, 880] +[:key_held_player_two, 19, 0, 1, 1004, 881] +[:key_held_player_two, 19, 0, 1, 1005, 882] +[:key_held_player_two, 19, 0, 1, 1006, 883] +[:key_held_player_two, 19, 0, 1, 1007, 884] +[:key_held_player_two, 19, 0, 1, 1008, 885] +[:key_held_player_two, 19, 0, 1, 1009, 886] +[:key_held_player_two, 19, 0, 1, 1010, 887] +[:key_held_player_two, 19, 0, 1, 1011, 888] +[:key_held_player_two, 19, 0, 1, 1012, 889] +[:key_held_player_two, 19, 0, 1, 1013, 890] +[:key_held_player_two, 19, 0, 1, 1014, 891] +[:key_held_player_two, 19, 0, 1, 1015, 892] +[:key_held_player_two, 19, 0, 1, 1016, 893] +[:key_held_player_two, 19, 0, 1, 1017, 894] +[:key_held_player_two, 19, 0, 1, 1018, 895] +[:key_held_player_two, 19, 0, 1, 1019, 896] +[:key_held_player_two, 19, 0, 1, 1020, 897] +[:key_held_player_two, 19, 0, 1, 1021, 898] +[:key_held_player_two, 19, 0, 1, 1022, 899] +[:key_held_player_two, 19, 0, 1, 1023, 900] +[:key_up_player_two, 19, 0, 1, 1024, 901] +[:key_down_player_two, 19, 0, 1, 1025, 1003] +[:key_held_player_two, 19, 0, 1, 1026, 1004] +[:key_held_player_two, 19, 0, 1, 1027, 1005] +[:key_held_player_two, 19, 0, 1, 1028, 1006] +[:key_held_player_two, 19, 0, 1, 1029, 1007] +[:key_held_player_two, 19, 0, 1, 1030, 1008] +[:key_held_player_two, 19, 0, 1, 1031, 1009] +[:key_held_player_two, 19, 0, 1, 1032, 1010] +[:key_held_player_two, 19, 0, 1, 1033, 1011] +[:key_held_player_two, 19, 0, 1, 1034, 1012] +[:key_held_player_two, 19, 0, 1, 1035, 1013] +[:key_held_player_two, 19, 0, 1, 1036, 1014] +[:key_held_player_two, 19, 0, 1, 1037, 1015] +[:key_held_player_two, 19, 0, 1, 1038, 1016] +[:key_held_player_two, 19, 0, 1, 1039, 1017] +[:key_held_player_two, 19, 0, 1, 1040, 1018] +[:key_held_player_two, 19, 0, 1, 1041, 1019] +[:key_held_player_two, 19, 0, 1, 1042, 1020] +[:key_held_player_two, 19, 0, 1, 1043, 1021] +[:key_held_player_two, 19, 0, 1, 1044, 1022] +[:key_held_player_two, 19, 0, 1, 1045, 1023] +[:key_held_player_two, 19, 0, 1, 1046, 1024] +[:key_held_player_two, 19, 0, 1, 1047, 1025] +[:key_held_player_two, 19, 0, 1, 1048, 1026] +[:key_held_player_two, 19, 0, 1, 1049, 1027] +[:key_held_player_two, 19, 0, 1, 1050, 1028] +[:key_held_player_two, 19, 0, 1, 1051, 1029] +[:key_held_player_two, 19, 0, 1, 1052, 1030] +[:key_held_player_two, 19, 0, 1, 1053, 1031] +[:key_down_player_two, 3, 0, 1, 1054, 1032] +[:key_held_player_two, 19, 0, 1, 1055, 1032] +[:key_down_player_two, 26, 0, 1, 1056, 1032] +[:key_held_player_two, 3, 0, 1, 1057, 1033] +[:key_held_player_two, 19, 0, 1, 1058, 1033] +[:key_held_player_two, 26, 0, 1, 1059, 1033] +[:key_held_player_two, 3, 0, 1, 1060, 1034] +[:key_held_player_two, 19, 0, 1, 1061, 1034] +[:key_held_player_two, 26, 0, 1, 1062, 1034] +[:key_held_player_two, 3, 0, 1, 1063, 1035] +[:key_held_player_two, 19, 0, 1, 1064, 1035] +[:key_held_player_two, 26, 0, 1, 1065, 1035] +[:key_held_player_two, 3, 0, 1, 1066, 1036] +[:key_held_player_two, 19, 0, 1, 1067, 1036] +[:key_held_player_two, 26, 0, 1, 1068, 1036] +[:key_held_player_two, 3, 0, 1, 1069, 1037] +[:key_held_player_two, 19, 0, 1, 1070, 1037] +[:key_held_player_two, 26, 0, 1, 1071, 1037] +[:key_held_player_two, 3, 0, 1, 1072, 1038] +[:key_held_player_two, 19, 0, 1, 1073, 1038] +[:key_held_player_two, 26, 0, 1, 1074, 1038] +[:key_up_player_two, 3, 0, 1, 1075, 1039] +[:key_held_player_two, 19, 0, 1, 1076, 1039] +[:key_up_player_two, 26, 0, 1, 1077, 1039] +[:key_held_player_two, 19, 0, 1, 1078, 1040] +[:key_held_player_two, 19, 0, 1, 1079, 1041] +[:key_held_player_two, 19, 0, 1, 1080, 1042] +[:key_held_player_two, 19, 0, 1, 1081, 1043] +[:key_held_player_two, 19, 0, 1, 1082, 1044] +[:key_held_player_two, 19, 0, 1, 1083, 1045] +[:key_held_player_two, 19, 0, 1, 1084, 1046] +[:key_down_player_two, 15, 0, 1, 1085, 1047] +[:key_held_player_two, 19, 0, 1, 1086, 1047] +[:key_held_player_two, 15, 0, 1, 1087, 1048] +[:key_held_player_two, 19, 0, 1, 1088, 1048] +[:key_held_player_two, 15, 0, 1, 1089, 1049] +[:key_held_player_two, 19, 0, 1, 1090, 1049] +[:key_held_player_two, 15, 0, 1, 1091, 1050] +[:key_held_player_two, 19, 0, 1, 1092, 1050] +[:key_held_player_two, 15, 0, 1, 1093, 1051] +[:key_held_player_two, 19, 0, 1, 1094, 1051] +[:key_held_player_two, 15, 0, 1, 1095, 1052] +[:key_held_player_two, 19, 0, 1, 1096, 1052] +[:key_held_player_two, 15, 0, 1, 1097, 1053] +[:key_held_player_two, 19, 0, 1, 1098, 1053] +[:key_held_player_two, 15, 0, 1, 1099, 1054] +[:key_held_player_two, 19, 0, 1, 1100, 1054] +[:key_held_player_two, 15, 0, 1, 1101, 1055] +[:key_held_player_two, 19, 0, 1, 1102, 1055] +[:key_held_player_two, 15, 0, 1, 1103, 1056] +[:key_held_player_two, 19, 0, 1, 1104, 1056] +[:key_held_player_two, 15, 0, 1, 1105, 1057] +[:key_held_player_two, 19, 0, 1, 1106, 1057] +[:key_held_player_two, 15, 0, 1, 1107, 1058] +[:key_held_player_two, 19, 0, 1, 1108, 1058] +[:key_held_player_two, 15, 0, 1, 1109, 1059] +[:key_held_player_two, 19, 0, 1, 1110, 1059] +[:key_held_player_two, 15, 0, 1, 1111, 1060] +[:key_held_player_two, 19, 0, 1, 1112, 1060] +[:key_held_player_two, 15, 0, 1, 1113, 1061] +[:key_held_player_two, 19, 0, 1, 1114, 1061] +[:key_down_player_two, 4, 0, 1, 1115, 1062] +[:key_held_player_two, 15, 0, 1, 1116, 1062] +[:key_held_player_two, 19, 0, 1, 1117, 1062] +[:key_down_player_two, 27, 0, 1, 1118, 1062] +[:key_held_player_two, 4, 0, 1, 1119, 1063] +[:key_held_player_two, 15, 0, 1, 1120, 1063] +[:key_held_player_two, 19, 0, 1, 1121, 1063] +[:key_held_player_two, 27, 0, 1, 1122, 1063] +[:key_held_player_two, 4, 0, 1, 1123, 1064] +[:key_held_player_two, 15, 0, 1, 1124, 1064] +[:key_held_player_two, 19, 0, 1, 1125, 1064] +[:key_held_player_two, 27, 0, 1, 1126, 1064] +[:key_held_player_two, 4, 0, 1, 1127, 1065] +[:key_held_player_two, 15, 0, 1, 1128, 1065] +[:key_held_player_two, 19, 0, 1, 1129, 1065] +[:key_held_player_two, 27, 0, 1, 1130, 1065] +[:key_held_player_two, 4, 0, 1, 1131, 1066] +[:key_held_player_two, 15, 0, 1, 1132, 1066] +[:key_held_player_two, 19, 0, 1, 1133, 1066] +[:key_held_player_two, 27, 0, 1, 1134, 1066] +[:key_up_player_two, 4, 0, 1, 1135, 1067] +[:key_held_player_two, 15, 0, 1, 1136, 1067] +[:key_held_player_two, 19, 0, 1, 1137, 1067] +[:key_up_player_two, 27, 0, 1, 1138, 1067] +[:key_held_player_two, 15, 0, 1, 1139, 1068] +[:key_held_player_two, 19, 0, 1, 1140, 1068] +[:key_held_player_two, 15, 0, 1, 1141, 1069] +[:key_held_player_two, 19, 0, 1, 1142, 1069] +[:key_held_player_two, 15, 0, 1, 1143, 1070] +[:key_held_player_two, 19, 0, 1, 1144, 1070] +[:key_held_player_two, 15, 0, 1, 1145, 1071] +[:key_held_player_two, 19, 0, 1, 1146, 1071] +[:key_held_player_two, 15, 0, 1, 1147, 1072] +[:key_held_player_two, 19, 0, 1, 1148, 1072] +[:key_held_player_two, 15, 0, 1, 1149, 1073] +[:key_held_player_two, 19, 0, 1, 1150, 1073] +[:key_held_player_two, 15, 0, 1, 1151, 1074] +[:key_held_player_two, 19, 0, 1, 1152, 1074] +[:key_held_player_two, 15, 0, 1, 1153, 1075] +[:key_held_player_two, 19, 0, 1, 1154, 1075] +[:key_held_player_two, 15, 0, 1, 1155, 1076] +[:key_held_player_two, 19, 0, 1, 1156, 1076] +[:key_held_player_two, 15, 0, 1, 1157, 1077] +[:key_held_player_two, 19, 0, 1, 1158, 1077] +[:key_held_player_two, 15, 0, 1, 1159, 1078] +[:key_held_player_two, 19, 0, 1, 1160, 1078] +[:key_held_player_two, 15, 0, 1, 1161, 1079] +[:key_held_player_two, 19, 0, 1, 1162, 1079] +[:key_held_player_two, 15, 0, 1, 1163, 1080] +[:key_held_player_two, 19, 0, 1, 1164, 1080] +[:key_held_player_two, 15, 0, 1, 1165, 1081] +[:key_held_player_two, 19, 0, 1, 1166, 1081] +[:key_held_player_two, 15, 0, 1, 1167, 1082] +[:key_held_player_two, 19, 0, 1, 1168, 1082] +[:key_held_player_two, 15, 0, 1, 1169, 1083] +[:key_held_player_two, 19, 0, 1, 1170, 1083] +[:key_held_player_two, 15, 0, 1, 1171, 1084] +[:key_held_player_two, 19, 0, 1, 1172, 1084] +[:key_held_player_two, 15, 0, 1, 1173, 1085] +[:key_held_player_two, 19, 0, 1, 1174, 1085] +[:key_held_player_two, 15, 0, 1, 1175, 1086] +[:key_held_player_two, 19, 0, 1, 1176, 1086] +[:key_held_player_two, 15, 0, 1, 1177, 1087] +[:key_held_player_two, 19, 0, 1, 1178, 1087] +[:key_held_player_two, 15, 0, 1, 1179, 1088] +[:key_held_player_two, 19, 0, 1, 1180, 1088] +[:key_held_player_two, 15, 0, 1, 1181, 1089] +[:key_held_player_two, 19, 0, 1, 1182, 1089] +[:key_held_player_two, 15, 0, 1, 1183, 1090] +[:key_held_player_two, 19, 0, 1, 1184, 1090] +[:key_held_player_two, 15, 0, 1, 1185, 1091] +[:key_held_player_two, 19, 0, 1, 1186, 1091] +[:key_held_player_two, 15, 0, 1, 1187, 1092] +[:key_held_player_two, 19, 0, 1, 1188, 1092] +[:key_held_player_two, 15, 0, 1, 1189, 1093] +[:key_held_player_two, 19, 0, 1, 1190, 1093] +[:key_held_player_two, 15, 0, 1, 1191, 1094] +[:key_held_player_two, 19, 0, 1, 1192, 1094] +[:key_held_player_two, 15, 0, 1, 1193, 1095] +[:key_held_player_two, 19, 0, 1, 1194, 1095] +[:key_held_player_two, 15, 0, 1, 1195, 1096] +[:key_held_player_two, 19, 0, 1, 1196, 1096] +[:key_held_player_two, 15, 0, 1, 1197, 1097] +[:key_held_player_two, 19, 0, 1, 1198, 1097] +[:key_held_player_two, 15, 0, 1, 1199, 1098] +[:key_held_player_two, 19, 0, 1, 1200, 1098] +[:key_held_player_two, 15, 0, 1, 1201, 1099] +[:key_held_player_two, 19, 0, 1, 1202, 1099] +[:key_held_player_two, 15, 0, 1, 1203, 1100] +[:key_held_player_two, 19, 0, 1, 1204, 1100] +[:key_held_player_two, 15, 0, 1, 1205, 1101] +[:key_held_player_two, 19, 0, 1, 1206, 1101] +[:key_held_player_two, 15, 0, 1, 1207, 1102] +[:key_held_player_two, 19, 0, 1, 1208, 1102] +[:key_held_player_two, 15, 0, 1, 1209, 1103] +[:key_held_player_two, 19, 0, 1, 1210, 1103] +[:key_held_player_two, 15, 0, 1, 1211, 1104] +[:key_held_player_two, 19, 0, 1, 1212, 1104] +[:key_held_player_two, 15, 0, 1, 1213, 1105] +[:key_held_player_two, 19, 0, 1, 1214, 1105] +[:key_held_player_two, 15, 0, 1, 1215, 1106] +[:key_held_player_two, 19, 0, 1, 1216, 1106] +[:key_held_player_two, 15, 0, 1, 1217, 1107] +[:key_held_player_two, 19, 0, 1, 1218, 1107] +[:key_held_player_two, 15, 0, 1, 1219, 1108] +[:key_held_player_two, 19, 0, 1, 1220, 1108] +[:key_held_player_two, 15, 0, 1, 1221, 1109] +[:key_held_player_two, 19, 0, 1, 1222, 1109] +[:key_held_player_two, 15, 0, 1, 1223, 1110] +[:key_held_player_two, 19, 0, 1, 1224, 1110] +[:key_held_player_two, 15, 0, 1, 1225, 1111] +[:key_held_player_two, 19, 0, 1, 1226, 1111] +[:key_held_player_two, 15, 0, 1, 1227, 1112] +[:key_held_player_two, 19, 0, 1, 1228, 1112] +[:key_held_player_two, 15, 0, 1, 1229, 1113] +[:key_held_player_two, 19, 0, 1, 1230, 1113] +[:key_held_player_two, 15, 0, 1, 1231, 1114] +[:key_held_player_two, 19, 0, 1, 1232, 1114] +[:key_held_player_two, 15, 0, 1, 1233, 1115] +[:key_held_player_two, 19, 0, 1, 1234, 1115] +[:key_held_player_two, 15, 0, 1, 1235, 1116] +[:key_held_player_two, 19, 0, 1, 1236, 1116] +[:key_held_player_two, 15, 0, 1, 1237, 1117] +[:key_held_player_two, 19, 0, 1, 1238, 1117] +[:key_held_player_two, 15, 0, 1, 1239, 1118] +[:key_held_player_two, 19, 0, 1, 1240, 1118] +[:key_held_player_two, 15, 0, 1, 1241, 1119] +[:key_held_player_two, 19, 0, 1, 1242, 1119] +[:key_held_player_two, 15, 0, 1, 1243, 1120] +[:key_held_player_two, 19, 0, 1, 1244, 1120] +[:key_held_player_two, 15, 0, 1, 1245, 1121] +[:key_held_player_two, 19, 0, 1, 1246, 1121] +[:key_held_player_two, 15, 0, 1, 1247, 1122] +[:key_held_player_two, 19, 0, 1, 1248, 1122] +[:key_held_player_two, 15, 0, 1, 1249, 1123] +[:key_held_player_two, 19, 0, 1, 1250, 1123] +[:key_held_player_two, 15, 0, 1, 1251, 1124] +[:key_held_player_two, 19, 0, 1, 1252, 1124] +[:key_held_player_two, 15, 0, 1, 1253, 1125] +[:key_held_player_two, 19, 0, 1, 1254, 1125] +[:key_held_player_two, 15, 0, 1, 1255, 1126] +[:key_held_player_two, 19, 0, 1, 1256, 1126] +[:key_held_player_two, 15, 0, 1, 1257, 1127] +[:key_held_player_two, 19, 0, 1, 1258, 1127] +[:key_held_player_two, 15, 0, 1, 1259, 1128] +[:key_held_player_two, 19, 0, 1, 1260, 1128] +[:key_held_player_two, 15, 0, 1, 1261, 1129] +[:key_held_player_two, 19, 0, 1, 1262, 1129] +[:key_held_player_two, 15, 0, 1, 1263, 1130] +[:key_held_player_two, 19, 0, 1, 1264, 1130] +[:key_held_player_two, 15, 0, 1, 1265, 1131] +[:key_held_player_two, 19, 0, 1, 1266, 1131] +[:key_held_player_two, 15, 0, 1, 1267, 1132] +[:key_held_player_two, 19, 0, 1, 1268, 1132] +[:key_held_player_two, 15, 0, 1, 1269, 1133] +[:key_held_player_two, 19, 0, 1, 1270, 1133] +[:key_held_player_two, 15, 0, 1, 1271, 1134] +[:key_held_player_two, 19, 0, 1, 1272, 1134] +[:key_held_player_two, 15, 0, 1, 1273, 1135] +[:key_held_player_two, 19, 0, 1, 1274, 1135] +[:key_held_player_two, 15, 0, 1, 1275, 1136] +[:key_held_player_two, 19, 0, 1, 1276, 1136] +[:key_held_player_two, 15, 0, 1, 1277, 1137] +[:key_held_player_two, 19, 0, 1, 1278, 1137] +[:key_held_player_two, 15, 0, 1, 1279, 1138] +[:key_held_player_two, 19, 0, 1, 1280, 1138] +[:key_held_player_two, 15, 0, 1, 1281, 1139] +[:key_held_player_two, 19, 0, 1, 1282, 1139] +[:key_held_player_two, 15, 0, 1, 1283, 1140] +[:key_held_player_two, 19, 0, 1, 1284, 1140] +[:key_held_player_two, 15, 0, 1, 1285, 1141] +[:key_held_player_two, 19, 0, 1, 1286, 1141] +[:key_held_player_two, 15, 0, 1, 1287, 1142] +[:key_held_player_two, 19, 0, 1, 1288, 1142] +[:key_held_player_two, 15, 0, 1, 1289, 1143] +[:key_held_player_two, 19, 0, 1, 1290, 1143] +[:key_held_player_two, 15, 0, 1, 1291, 1144] +[:key_held_player_two, 19, 0, 1, 1292, 1144] +[:key_held_player_two, 15, 0, 1, 1293, 1145] +[:key_held_player_two, 19, 0, 1, 1294, 1145] +[:key_held_player_two, 15, 0, 1, 1295, 1146] +[:key_held_player_two, 19, 0, 1, 1296, 1146] +[:key_up_player_two, 15, 0, 1, 1297, 1147] +[:key_held_player_two, 19, 0, 1, 1298, 1147] +[:key_held_player_two, 19, 0, 1, 1299, 1148] +[:key_held_player_two, 19, 0, 1, 1300, 1149] +[:key_held_player_two, 19, 0, 1, 1301, 1150] +[:key_held_player_two, 19, 0, 1, 1302, 1151] +[:key_held_player_two, 19, 0, 1, 1303, 1152] +[:key_held_player_two, 19, 0, 1, 1304, 1153] +[:key_held_player_two, 19, 0, 1, 1305, 1154] +[:key_held_player_two, 19, 0, 1, 1306, 1155] +[:key_held_player_two, 19, 0, 1, 1307, 1156] +[:key_held_player_two, 19, 0, 1, 1308, 1157] +[:key_held_player_two, 19, 0, 1, 1309, 1158] +[:key_held_player_two, 19, 0, 1, 1310, 1159] +[:key_held_player_two, 19, 0, 1, 1311, 1160] +[:key_held_player_two, 19, 0, 1, 1312, 1161] +[:key_held_player_two, 19, 0, 1, 1313, 1162] +[:key_held_player_two, 19, 0, 1, 1314, 1163] +[:key_held_player_two, 19, 0, 1, 1315, 1164] +[:key_held_player_two, 19, 0, 1, 1316, 1165] +[:key_held_player_two, 19, 0, 1, 1317, 1166] +[:key_held_player_two, 19, 0, 1, 1318, 1167] +[:key_held_player_two, 19, 0, 1, 1319, 1168] +[:key_held_player_two, 19, 0, 1, 1320, 1169] +[:key_held_player_two, 19, 0, 1, 1321, 1170] +[:key_held_player_two, 19, 0, 1, 1322, 1171] +[:key_held_player_two, 19, 0, 1, 1323, 1172] +[:key_held_player_two, 19, 0, 1, 1324, 1173] +[:key_held_player_two, 19, 0, 1, 1325, 1174] +[:key_held_player_two, 19, 0, 1, 1326, 1175] +[:key_held_player_two, 19, 0, 1, 1327, 1176] +[:key_held_player_two, 19, 0, 1, 1328, 1177] +[:key_held_player_two, 19, 0, 1, 1329, 1178] +[:key_held_player_two, 19, 0, 1, 1330, 1179] +[:key_held_player_two, 19, 0, 1, 1331, 1180] +[:key_held_player_two, 19, 0, 1, 1332, 1181] +[:key_held_player_two, 19, 0, 1, 1333, 1182] +[:key_held_player_two, 19, 0, 1, 1334, 1183] +[:key_held_player_two, 19, 0, 1, 1335, 1184] +[:key_held_player_two, 19, 0, 1, 1336, 1185] +[:key_held_player_two, 19, 0, 1, 1337, 1186] +[:key_held_player_two, 19, 0, 1, 1338, 1187] +[:key_held_player_two, 19, 0, 1, 1339, 1188] +[:key_held_player_two, 19, 0, 1, 1340, 1189] +[:key_held_player_two, 19, 0, 1, 1341, 1190] +[:key_held_player_two, 19, 0, 1, 1342, 1191] +[:key_up_player_two, 19, 0, 1, 1343, 1192] +[:key_down_player_one, 3, 0, 1, 1344, 1320] +[:key_down_player_one, 26, 0, 1, 1345, 1320] +[:key_held_player_one, 3, 0, 1, 1346, 1321] +[:key_held_player_one, 26, 0, 1, 1347, 1321] +[:key_held_player_one, 3, 0, 1, 1348, 1322] +[:key_held_player_one, 26, 0, 1, 1349, 1322] +[:key_held_player_one, 3, 0, 1, 1350, 1323] +[:key_held_player_one, 26, 0, 1, 1351, 1323] +[:key_held_player_one, 3, 0, 1, 1352, 1324] +[:key_held_player_one, 26, 0, 1, 1353, 1324] +[:key_held_player_one, 3, 0, 1, 1354, 1325] +[:key_held_player_one, 26, 0, 1, 1355, 1325] +[:key_held_player_one, 3, 0, 1, 1356, 1326] +[:key_held_player_one, 26, 0, 1, 1357, 1326] +[:key_held_player_one, 3, 0, 1, 1358, 1327] +[:key_held_player_one, 26, 0, 1, 1359, 1327] +[:key_held_player_one, 3, 0, 1, 1360, 1328] +[:key_held_player_one, 26, 0, 1, 1361, 1328] +[:key_held_player_one, 3, 0, 1, 1362, 1329] +[:key_held_player_one, 26, 0, 1, 1363, 1329] +[:key_held_player_one, 3, 0, 1, 1364, 1330] +[:key_held_player_one, 26, 0, 1, 1365, 1330] +[:key_held_player_one, 3, 0, 1, 1366, 1331] +[:key_held_player_one, 26, 0, 1, 1367, 1331] +[:key_held_player_one, 3, 0, 1, 1368, 1332] +[:key_held_player_one, 26, 0, 1, 1369, 1332] +[:key_held_player_one, 3, 0, 1, 1370, 1333] +[:key_held_player_one, 26, 0, 1, 1371, 1333] +[:key_held_player_one, 3, 0, 1, 1372, 1334] +[:key_held_player_one, 26, 0, 1, 1373, 1334] +[:key_held_player_one, 3, 0, 1, 1374, 1335] +[:key_held_player_one, 26, 0, 1, 1375, 1335] +[:key_held_player_one, 3, 0, 1, 1376, 1336] +[:key_held_player_one, 26, 0, 1, 1377, 1336] +[:key_held_player_one, 3, 0, 1, 1378, 1337] +[:key_held_player_one, 26, 0, 1, 1379, 1337] +[:key_held_player_one, 3, 0, 1, 1380, 1338] +[:key_held_player_one, 26, 0, 1, 1381, 1338] +[:key_held_player_one, 3, 0, 1, 1382, 1339] +[:key_held_player_one, 26, 0, 1, 1383, 1339] +[:key_held_player_one, 3, 0, 1, 1384, 1340] +[:key_held_player_one, 26, 0, 1, 1385, 1340] +[:key_held_player_one, 3, 0, 1, 1386, 1341] +[:key_held_player_one, 26, 0, 1, 1387, 1341] +[:key_held_player_one, 3, 0, 1, 1388, 1342] +[:key_held_player_one, 26, 0, 1, 1389, 1342] +[:key_held_player_one, 3, 0, 1, 1390, 1343] +[:key_held_player_one, 26, 0, 1, 1391, 1343] +[:key_held_player_one, 3, 0, 1, 1392, 1344] +[:key_held_player_one, 26, 0, 1, 1393, 1344] +[:key_up_player_one, 3, 0, 1, 1394, 1345] +[:key_up_player_one, 26, 0, 1, 1395, 1345] +[:key_down_player_one, 4, 0, 1, 1396, 1351] +[:key_down_player_one, 27, 0, 1, 1397, 1351] +[:key_held_player_one, 4, 0, 1, 1398, 1352] +[:key_held_player_one, 27, 0, 1, 1399, 1352] +[:key_held_player_one, 4, 0, 1, 1400, 1353] +[:key_held_player_one, 27, 0, 1, 1401, 1353] +[:key_held_player_one, 4, 0, 1, 1402, 1354] +[:key_held_player_one, 27, 0, 1, 1403, 1354] +[:key_held_player_one, 4, 0, 1, 1404, 1355] +[:key_held_player_one, 27, 0, 1, 1405, 1355] +[:key_held_player_one, 4, 0, 1, 1406, 1356] +[:key_held_player_one, 27, 0, 1, 1407, 1356] +[:key_held_player_one, 4, 0, 1, 1408, 1357] +[:key_held_player_one, 27, 0, 1, 1409, 1357] +[:key_held_player_one, 4, 0, 1, 1410, 1358] +[:key_held_player_one, 27, 0, 1, 1411, 1358] +[:key_held_player_one, 4, 0, 1, 1412, 1359] +[:key_held_player_one, 27, 0, 1, 1413, 1359] +[:key_held_player_one, 4, 0, 1, 1414, 1360] +[:key_held_player_one, 27, 0, 1, 1415, 1360] +[:key_held_player_one, 4, 0, 1, 1416, 1361] +[:key_held_player_one, 27, 0, 1, 1417, 1361] +[:key_held_player_one, 4, 0, 1, 1418, 1362] +[:key_held_player_one, 27, 0, 1, 1419, 1362] +[:key_held_player_one, 4, 0, 1, 1420, 1363] +[:key_held_player_one, 27, 0, 1, 1421, 1363] +[:key_held_player_one, 4, 0, 1, 1422, 1364] +[:key_held_player_one, 27, 0, 1, 1423, 1364] +[:key_held_player_one, 4, 0, 1, 1424, 1365] +[:key_held_player_one, 27, 0, 1, 1425, 1365] +[:key_held_player_one, 4, 0, 1, 1426, 1366] +[:key_held_player_one, 27, 0, 1, 1427, 1366] +[:key_held_player_one, 4, 0, 1, 1428, 1367] +[:key_held_player_one, 27, 0, 1, 1429, 1367] +[:key_held_player_one, 4, 0, 1, 1430, 1368] +[:key_held_player_one, 27, 0, 1, 1431, 1368] +[:key_held_player_one, 4, 0, 1, 1432, 1369] +[:key_held_player_one, 27, 0, 1, 1433, 1369] +[:key_held_player_one, 4, 0, 1, 1434, 1370] +[:key_held_player_one, 27, 0, 1, 1435, 1370] +[:key_held_player_one, 4, 0, 1, 1436, 1371] +[:key_held_player_one, 27, 0, 1, 1437, 1371] +[:key_held_player_one, 4, 0, 1, 1438, 1372] +[:key_down_player_one, 19, 0, 1, 1439, 1372] +[:key_held_player_one, 27, 0, 1, 1440, 1372] +[:key_held_player_one, 4, 0, 1, 1441, 1373] +[:key_held_player_one, 19, 0, 1, 1442, 1373] +[:key_held_player_one, 27, 0, 1, 1443, 1373] +[:key_held_player_one, 4, 0, 1, 1444, 1374] +[:key_held_player_one, 19, 0, 1, 1445, 1374] +[:key_held_player_one, 27, 0, 1, 1446, 1374] +[:key_held_player_one, 4, 0, 1, 1447, 1375] +[:key_held_player_one, 19, 0, 1, 1448, 1375] +[:key_held_player_one, 27, 0, 1, 1449, 1375] +[:key_held_player_one, 4, 0, 1, 1450, 1376] +[:key_held_player_one, 19, 0, 1, 1451, 1376] +[:key_held_player_one, 27, 0, 1, 1452, 1376] +[:key_held_player_one, 4, 0, 1, 1453, 1377] +[:key_held_player_one, 19, 0, 1, 1454, 1377] +[:key_held_player_one, 27, 0, 1, 1455, 1377] +[:key_held_player_one, 4, 0, 1, 1456, 1378] +[:key_held_player_one, 19, 0, 1, 1457, 1378] +[:key_held_player_one, 27, 0, 1, 1458, 1378] +[:key_up_player_one, 4, 0, 1, 1459, 1379] +[:key_held_player_one, 19, 0, 1, 1460, 1379] +[:key_up_player_one, 27, 0, 1, 1461, 1379] +[:key_held_player_one, 19, 0, 1, 1462, 1380] +[:key_held_player_one, 19, 0, 1, 1463, 1381] +[:key_held_player_one, 19, 0, 1, 1464, 1382] +[:key_held_player_one, 19, 0, 1, 1465, 1383] +[:key_held_player_one, 19, 0, 1, 1466, 1384] +[:key_held_player_one, 19, 0, 1, 1467, 1385] +[:key_held_player_one, 19, 0, 1, 1468, 1386] +[:key_held_player_one, 19, 0, 1, 1469, 1387] +[:key_held_player_one, 19, 0, 1, 1470, 1388] +[:key_held_player_one, 19, 0, 1, 1471, 1389] +[:key_held_player_one, 19, 0, 1, 1472, 1390] +[:key_held_player_one, 19, 0, 1, 1473, 1391] +[:key_held_player_one, 19, 0, 1, 1474, 1392] +[:key_held_player_one, 19, 0, 1, 1475, 1393] +[:key_held_player_one, 19, 0, 1, 1476, 1394] +[:key_held_player_one, 19, 0, 1, 1477, 1395] +[:key_held_player_one, 19, 0, 1, 1478, 1396] +[:key_held_player_one, 19, 0, 1, 1479, 1397] +[:key_held_player_one, 19, 0, 1, 1480, 1398] +[:key_held_player_one, 19, 0, 1, 1481, 1399] +[:key_held_player_one, 19, 0, 1, 1482, 1400] +[:key_held_player_one, 19, 0, 1, 1483, 1401] +[:key_held_player_one, 19, 0, 1, 1484, 1402] +[:key_down_player_one, 3, 0, 1, 1485, 1403] +[:key_held_player_one, 19, 0, 1, 1486, 1403] +[:key_down_player_one, 26, 0, 1, 1487, 1403] +[:key_held_player_one, 3, 0, 1, 1488, 1404] +[:key_held_player_one, 19, 0, 1, 1489, 1404] +[:key_held_player_one, 26, 0, 1, 1490, 1404] +[:key_held_player_one, 3, 0, 1, 1491, 1405] +[:key_held_player_one, 19, 0, 1, 1492, 1405] +[:key_held_player_one, 26, 0, 1, 1493, 1405] +[:key_held_player_one, 3, 0, 1, 1494, 1406] +[:key_held_player_one, 19, 0, 1, 1495, 1406] +[:key_held_player_one, 26, 0, 1, 1496, 1406] +[:key_held_player_one, 3, 0, 1, 1497, 1407] +[:key_held_player_one, 19, 0, 1, 1498, 1407] +[:key_held_player_one, 26, 0, 1, 1499, 1407] +[:key_held_player_one, 3, 0, 1, 1500, 1408] +[:key_held_player_one, 19, 0, 1, 1501, 1408] +[:key_held_player_one, 26, 0, 1, 1502, 1408] +[:key_held_player_one, 3, 0, 1, 1503, 1409] +[:key_held_player_one, 19, 0, 1, 1504, 1409] +[:key_held_player_one, 26, 0, 1, 1505, 1409] +[:key_held_player_one, 3, 0, 1, 1506, 1410] +[:key_held_player_one, 19, 0, 1, 1507, 1410] +[:key_held_player_one, 26, 0, 1, 1508, 1410] +[:key_up_player_one, 3, 0, 1, 1509, 1411] +[:key_held_player_one, 19, 0, 1, 1510, 1411] +[:key_up_player_one, 26, 0, 1, 1511, 1411] +[:key_held_player_one, 19, 0, 1, 1512, 1412] +[:key_held_player_one, 19, 0, 1, 1513, 1413] +[:key_held_player_one, 19, 0, 1, 1514, 1414] +[:key_held_player_one, 19, 0, 1, 1515, 1415] +[:key_held_player_one, 19, 0, 1, 1516, 1416] +[:key_held_player_one, 19, 0, 1, 1517, 1417] +[:key_held_player_one, 19, 0, 1, 1518, 1418] +[:key_held_player_one, 19, 0, 1, 1519, 1419] +[:key_held_player_one, 19, 0, 1, 1520, 1420] +[:key_held_player_one, 19, 0, 1, 1521, 1421] +[:key_held_player_one, 19, 0, 1, 1522, 1422] +[:key_held_player_one, 19, 0, 1, 1523, 1423] +[:key_held_player_one, 19, 0, 1, 1524, 1424] +[:key_held_player_one, 19, 0, 1, 1525, 1425] +[:key_held_player_one, 19, 0, 1, 1526, 1426] +[:key_held_player_one, 19, 0, 1, 1527, 1427] +[:key_held_player_one, 19, 0, 1, 1528, 1428] +[:key_down_player_one, 15, 0, 1, 1529, 1429] +[:key_held_player_one, 19, 0, 1, 1530, 1429] +[:key_held_player_one, 15, 0, 1, 1531, 1430] +[:key_held_player_one, 19, 0, 1, 1532, 1430] +[:key_held_player_one, 15, 0, 1, 1533, 1431] +[:key_held_player_one, 19, 0, 1, 1534, 1431] +[:key_held_player_one, 15, 0, 1, 1535, 1432] +[:key_held_player_one, 19, 0, 1, 1536, 1432] +[:key_held_player_one, 15, 0, 1, 1537, 1433] +[:key_held_player_one, 19, 0, 1, 1538, 1433] +[:key_held_player_one, 15, 0, 1, 1539, 1434] +[:key_held_player_one, 19, 0, 1, 1540, 1434] +[:key_held_player_one, 15, 0, 1, 1541, 1435] +[:key_held_player_one, 19, 0, 1, 1542, 1435] +[:key_held_player_one, 15, 0, 1, 1543, 1436] +[:key_held_player_one, 19, 0, 1, 1544, 1436] +[:key_held_player_one, 15, 0, 1, 1545, 1437] +[:key_held_player_one, 19, 0, 1, 1546, 1437] +[:key_held_player_one, 15, 0, 1, 1547, 1438] +[:key_held_player_one, 19, 0, 1, 1548, 1438] +[:key_held_player_one, 15, 0, 1, 1549, 1439] +[:key_held_player_one, 19, 0, 1, 1550, 1439] +[:key_held_player_one, 15, 0, 1, 1551, 1440] +[:key_held_player_one, 19, 0, 1, 1552, 1440] +[:key_held_player_one, 15, 0, 1, 1553, 1441] +[:key_held_player_one, 19, 0, 1, 1554, 1441] +[:key_held_player_one, 15, 0, 1, 1555, 1442] +[:key_held_player_one, 19, 0, 1, 1556, 1442] +[:key_held_player_one, 15, 0, 1, 1557, 1443] +[:key_held_player_one, 19, 0, 1, 1558, 1443] +[:key_held_player_one, 15, 0, 1, 1559, 1444] +[:key_held_player_one, 19, 0, 1, 1560, 1444] +[:key_held_player_one, 15, 0, 1, 1561, 1445] +[:key_held_player_one, 19, 0, 1, 1562, 1445] +[:key_held_player_one, 15, 0, 1, 1563, 1446] +[:key_held_player_one, 19, 0, 1, 1564, 1446] +[:key_held_player_one, 15, 0, 1, 1565, 1447] +[:key_held_player_one, 19, 0, 1, 1566, 1447] +[:key_held_player_one, 15, 0, 1, 1567, 1448] +[:key_held_player_one, 19, 0, 1, 1568, 1448] +[:key_held_player_one, 15, 0, 1, 1569, 1449] +[:key_held_player_one, 19, 0, 1, 1570, 1449] +[:key_held_player_one, 15, 0, 1, 1571, 1450] +[:key_held_player_one, 19, 0, 1, 1572, 1450] +[:key_held_player_one, 15, 0, 1, 1573, 1451] +[:key_held_player_one, 19, 0, 1, 1574, 1451] +[:key_held_player_one, 15, 0, 1, 1575, 1452] +[:key_held_player_one, 19, 0, 1, 1576, 1452] +[:key_held_player_one, 15, 0, 1, 1577, 1453] +[:key_held_player_one, 19, 0, 1, 1578, 1453] +[:key_held_player_one, 15, 0, 1, 1579, 1454] +[:key_held_player_one, 19, 0, 1, 1580, 1454] +[:key_held_player_one, 15, 0, 1, 1581, 1455] +[:key_held_player_one, 19, 0, 1, 1582, 1455] +[:key_up_player_one, 15, 0, 1, 1583, 1456] +[:key_held_player_one, 19, 0, 1, 1584, 1456] +[:key_held_player_one, 19, 0, 1, 1585, 1457] +[:key_held_player_one, 19, 0, 1, 1586, 1458] +[:key_down_player_one, 4, 0, 1, 1587, 1459] +[:key_held_player_one, 19, 0, 1, 1588, 1459] +[:key_down_player_one, 27, 0, 1, 1589, 1459] +[:key_held_player_one, 4, 0, 1, 1590, 1460] +[:key_held_player_one, 19, 0, 1, 1591, 1460] +[:key_held_player_one, 27, 0, 1, 1592, 1460] +[:key_held_player_one, 4, 0, 1, 1593, 1461] +[:key_held_player_one, 19, 0, 1, 1594, 1461] +[:key_held_player_one, 27, 0, 1, 1595, 1461] +[:key_held_player_one, 4, 0, 1, 1596, 1462] +[:key_held_player_one, 19, 0, 1, 1597, 1462] +[:key_held_player_one, 27, 0, 1, 1598, 1462] +[:key_held_player_one, 4, 0, 1, 1599, 1463] +[:key_held_player_one, 19, 0, 1, 1600, 1463] +[:key_held_player_one, 27, 0, 1, 1601, 1463] +[:key_held_player_one, 4, 0, 1, 1602, 1464] +[:key_down_player_one, 15, 0, 1, 1603, 1464] +[:key_held_player_one, 19, 0, 1, 1604, 1464] +[:key_held_player_one, 27, 0, 1, 1605, 1464] +[:key_held_player_one, 4, 0, 1, 1606, 1465] +[:key_held_player_one, 15, 0, 1, 1607, 1465] +[:key_held_player_one, 19, 0, 1, 1608, 1465] +[:key_held_player_one, 27, 0, 1, 1609, 1465] +[:key_up_player_one, 4, 0, 1, 1610, 1466] +[:key_held_player_one, 15, 0, 1, 1611, 1466] +[:key_held_player_one, 19, 0, 1, 1612, 1466] +[:key_up_player_one, 27, 0, 1, 1613, 1466] +[:key_held_player_one, 15, 0, 1, 1614, 1467] +[:key_held_player_one, 19, 0, 1, 1615, 1467] +[:key_held_player_one, 15, 0, 1, 1616, 1468] +[:key_held_player_one, 19, 0, 1, 1617, 1468] +[:key_held_player_one, 15, 0, 1, 1618, 1469] +[:key_held_player_one, 19, 0, 1, 1619, 1469] +[:key_held_player_one, 15, 0, 1, 1620, 1470] +[:key_held_player_one, 19, 0, 1, 1621, 1470] +[:key_held_player_one, 15, 0, 1, 1622, 1471] +[:key_held_player_one, 19, 0, 1, 1623, 1471] +[:key_held_player_one, 15, 0, 1, 1624, 1472] +[:key_held_player_one, 19, 0, 1, 1625, 1472] +[:key_held_player_one, 15, 0, 1, 1626, 1473] +[:key_held_player_one, 19, 0, 1, 1627, 1473] +[:key_held_player_one, 15, 0, 1, 1628, 1474] +[:key_held_player_one, 19, 0, 1, 1629, 1474] +[:key_held_player_one, 15, 0, 1, 1630, 1475] +[:key_held_player_one, 19, 0, 1, 1631, 1475] +[:key_held_player_one, 15, 0, 1, 1632, 1476] +[:key_held_player_one, 19, 0, 1, 1633, 1476] +[:key_held_player_one, 15, 0, 1, 1634, 1477] +[:key_held_player_one, 19, 0, 1, 1635, 1477] +[:key_held_player_one, 15, 0, 1, 1636, 1478] +[:key_held_player_one, 19, 0, 1, 1637, 1478] +[:key_held_player_one, 15, 0, 1, 1638, 1479] +[:key_held_player_one, 19, 0, 1, 1639, 1479] +[:key_held_player_one, 15, 0, 1, 1640, 1480] +[:key_held_player_one, 19, 0, 1, 1641, 1480] +[:key_held_player_one, 15, 0, 1, 1642, 1481] +[:key_held_player_one, 19, 0, 1, 1643, 1481] +[:key_held_player_one, 15, 0, 1, 1644, 1482] +[:key_held_player_one, 19, 0, 1, 1645, 1482] +[:key_held_player_one, 15, 0, 1, 1646, 1483] +[:key_held_player_one, 19, 0, 1, 1647, 1483] +[:key_held_player_one, 15, 0, 1, 1648, 1484] +[:key_held_player_one, 19, 0, 1, 1649, 1484] +[:key_held_player_one, 15, 0, 1, 1650, 1485] +[:key_held_player_one, 19, 0, 1, 1651, 1485] +[:key_down_player_one, 3, 0, 1, 1652, 1486] +[:key_held_player_one, 15, 0, 1, 1653, 1486] +[:key_held_player_one, 19, 0, 1, 1654, 1486] +[:key_down_player_one, 26, 0, 1, 1655, 1486] +[:key_held_player_one, 3, 0, 1, 1656, 1487] +[:key_held_player_one, 15, 0, 1, 1657, 1487] +[:key_held_player_one, 19, 0, 1, 1658, 1487] +[:key_held_player_one, 26, 0, 1, 1659, 1487] +[:key_held_player_one, 3, 0, 1, 1660, 1488] +[:key_held_player_one, 15, 0, 1, 1661, 1488] +[:key_held_player_one, 19, 0, 1, 1662, 1488] +[:key_held_player_one, 26, 0, 1, 1663, 1488] +[:key_held_player_one, 3, 0, 1, 1664, 1489] +[:key_held_player_one, 15, 0, 1, 1665, 1489] +[:key_held_player_one, 19, 0, 1, 1666, 1489] +[:key_held_player_one, 26, 0, 1, 1667, 1489] +[:key_held_player_one, 3, 0, 1, 1668, 1490] +[:key_held_player_one, 15, 0, 1, 1669, 1490] +[:key_held_player_one, 19, 0, 1, 1670, 1490] +[:key_held_player_one, 26, 0, 1, 1671, 1490] +[:key_up_player_one, 3, 0, 1, 1672, 1491] +[:key_held_player_one, 15, 0, 1, 1673, 1491] +[:key_held_player_one, 19, 0, 1, 1674, 1491] +[:key_up_player_one, 26, 0, 1, 1675, 1491] +[:key_held_player_one, 15, 0, 1, 1676, 1492] +[:key_held_player_one, 19, 0, 1, 1677, 1492] +[:key_held_player_one, 15, 0, 1, 1678, 1493] +[:key_held_player_one, 19, 0, 1, 1679, 1493] +[:key_held_player_one, 15, 0, 1, 1680, 1494] +[:key_held_player_one, 19, 0, 1, 1681, 1494] +[:key_held_player_one, 15, 0, 1, 1682, 1495] +[:key_held_player_one, 19, 0, 1, 1683, 1495] +[:key_held_player_one, 15, 0, 1, 1684, 1496] +[:key_held_player_one, 19, 0, 1, 1685, 1496] +[:key_held_player_one, 15, 0, 1, 1686, 1497] +[:key_held_player_one, 19, 0, 1, 1687, 1497] +[:key_held_player_one, 15, 0, 1, 1688, 1498] +[:key_held_player_one, 19, 0, 1, 1689, 1498] +[:key_held_player_one, 15, 0, 1, 1690, 1499] +[:key_held_player_one, 19, 0, 1, 1691, 1499] +[:key_held_player_one, 15, 0, 1, 1692, 1500] +[:key_held_player_one, 19, 0, 1, 1693, 1500] +[:key_held_player_one, 15, 0, 1, 1694, 1501] +[:key_held_player_one, 19, 0, 1, 1695, 1501] +[:key_held_player_one, 15, 0, 1, 1696, 1502] +[:key_held_player_one, 19, 0, 1, 1697, 1502] +[:key_held_player_one, 15, 0, 1, 1698, 1503] +[:key_held_player_one, 19, 0, 1, 1699, 1503] +[:key_held_player_one, 15, 0, 1, 1700, 1504] +[:key_held_player_one, 19, 0, 1, 1701, 1504] +[:key_held_player_one, 15, 0, 1, 1702, 1505] +[:key_held_player_one, 19, 0, 1, 1703, 1505] +[:key_held_player_one, 15, 0, 1, 1704, 1506] +[:key_held_player_one, 19, 0, 1, 1705, 1506] +[:key_held_player_one, 15, 0, 1, 1706, 1507] +[:key_held_player_one, 19, 0, 1, 1707, 1507] +[:key_held_player_one, 15, 0, 1, 1708, 1508] +[:key_held_player_one, 19, 0, 1, 1709, 1508] +[:key_held_player_one, 15, 0, 1, 1710, 1509] +[:key_held_player_one, 19, 0, 1, 1711, 1509] +[:key_held_player_one, 15, 0, 1, 1712, 1510] +[:key_held_player_one, 19, 0, 1, 1713, 1510] +[:key_held_player_one, 15, 0, 1, 1714, 1511] +[:key_held_player_one, 19, 0, 1, 1715, 1511] +[:key_held_player_one, 15, 0, 1, 1716, 1512] +[:key_held_player_one, 19, 0, 1, 1717, 1512] +[:key_held_player_one, 15, 0, 1, 1718, 1513] +[:key_held_player_one, 19, 0, 1, 1719, 1513] +[:key_held_player_one, 15, 0, 1, 1720, 1514] +[:key_held_player_one, 19, 0, 1, 1721, 1514] +[:key_held_player_one, 15, 0, 1, 1722, 1515] +[:key_held_player_one, 19, 0, 1, 1723, 1515] +[:key_held_player_one, 15, 0, 1, 1724, 1516] +[:key_held_player_one, 19, 0, 1, 1725, 1516] +[:key_held_player_one, 15, 0, 1, 1726, 1517] +[:key_held_player_one, 19, 0, 1, 1727, 1517] +[:key_held_player_one, 15, 0, 1, 1728, 1518] +[:key_held_player_one, 19, 0, 1, 1729, 1518] +[:key_held_player_one, 15, 0, 1, 1730, 1519] +[:key_held_player_one, 19, 0, 1, 1731, 1519] +[:key_held_player_one, 15, 0, 1, 1732, 1520] +[:key_held_player_one, 19, 0, 1, 1733, 1520] +[:key_down_player_one, 4, 0, 1, 1734, 1521] +[:key_held_player_one, 15, 0, 1, 1735, 1521] +[:key_held_player_one, 19, 0, 1, 1736, 1521] +[:key_down_player_one, 27, 0, 1, 1737, 1521] +[:key_held_player_one, 4, 0, 1, 1738, 1522] +[:key_held_player_one, 15, 0, 1, 1739, 1522] +[:key_held_player_one, 19, 0, 1, 1740, 1522] +[:key_held_player_one, 27, 0, 1, 1741, 1522] +[:key_held_player_one, 4, 0, 1, 1742, 1523] +[:key_held_player_one, 15, 0, 1, 1743, 1523] +[:key_held_player_one, 19, 0, 1, 1744, 1523] +[:key_held_player_one, 27, 0, 1, 1745, 1523] +[:key_held_player_one, 4, 0, 1, 1746, 1524] +[:key_held_player_one, 15, 0, 1, 1747, 1524] +[:key_held_player_one, 19, 0, 1, 1748, 1524] +[:key_held_player_one, 27, 0, 1, 1749, 1524] +[:key_held_player_one, 4, 0, 1, 1750, 1525] +[:key_held_player_one, 15, 0, 1, 1751, 1525] +[:key_held_player_one, 19, 0, 1, 1752, 1525] +[:key_held_player_one, 27, 0, 1, 1753, 1525] +[:key_up_player_one, 4, 0, 1, 1754, 1526] +[:key_held_player_one, 15, 0, 1, 1755, 1526] +[:key_held_player_one, 19, 0, 1, 1756, 1526] +[:key_up_player_one, 27, 0, 1, 1757, 1526] +[:key_held_player_one, 15, 0, 1, 1758, 1527] +[:key_held_player_one, 19, 0, 1, 1759, 1527] +[:key_held_player_one, 15, 0, 1, 1760, 1528] +[:key_held_player_one, 19, 0, 1, 1761, 1528] +[:key_held_player_one, 15, 0, 1, 1762, 1529] +[:key_held_player_one, 19, 0, 1, 1763, 1529] +[:key_held_player_one, 15, 0, 1, 1764, 1530] +[:key_held_player_one, 19, 0, 1, 1765, 1530] +[:key_held_player_one, 15, 0, 1, 1766, 1531] +[:key_held_player_one, 19, 0, 1, 1767, 1531] +[:key_held_player_one, 15, 0, 1, 1768, 1532] +[:key_held_player_one, 19, 0, 1, 1769, 1532] +[:key_held_player_one, 15, 0, 1, 1770, 1533] +[:key_held_player_one, 19, 0, 1, 1771, 1533] +[:key_held_player_one, 15, 0, 1, 1772, 1534] +[:key_held_player_one, 19, 0, 1, 1773, 1534] +[:key_held_player_one, 15, 0, 1, 1774, 1535] +[:key_held_player_one, 19, 0, 1, 1775, 1535] +[:key_held_player_one, 15, 0, 1, 1776, 1536] +[:key_held_player_one, 19, 0, 1, 1777, 1536] +[:key_held_player_one, 15, 0, 1, 1778, 1537] +[:key_held_player_one, 19, 0, 1, 1779, 1537] +[:key_held_player_one, 15, 0, 1, 1780, 1538] +[:key_held_player_one, 19, 0, 1, 1781, 1538] +[:key_held_player_one, 15, 0, 1, 1782, 1539] +[:key_held_player_one, 19, 0, 1, 1783, 1539] +[:key_held_player_one, 15, 0, 1, 1784, 1540] +[:key_held_player_one, 19, 0, 1, 1785, 1540] +[:key_held_player_one, 15, 0, 1, 1786, 1541] +[:key_held_player_one, 19, 0, 1, 1787, 1541] +[:key_held_player_one, 15, 0, 1, 1788, 1542] +[:key_held_player_one, 19, 0, 1, 1789, 1542] +[:key_held_player_one, 15, 0, 1, 1790, 1543] +[:key_held_player_one, 19, 0, 1, 1791, 1543] +[:key_held_player_one, 15, 0, 1, 1792, 1544] +[:key_held_player_one, 19, 0, 1, 1793, 1544] +[:key_held_player_one, 15, 0, 1, 1794, 1545] +[:key_held_player_one, 19, 0, 1, 1795, 1545] +[:key_held_player_one, 15, 0, 1, 1796, 1546] +[:key_held_player_one, 19, 0, 1, 1797, 1546] +[:key_held_player_one, 15, 0, 1, 1798, 1547] +[:key_held_player_one, 19, 0, 1, 1799, 1547] +[:key_held_player_one, 15, 0, 1, 1800, 1548] +[:key_held_player_one, 19, 0, 1, 1801, 1548] +[:key_held_player_one, 15, 0, 1, 1802, 1549] +[:key_held_player_one, 19, 0, 1, 1803, 1549] +[:key_held_player_one, 15, 0, 1, 1804, 1550] +[:key_held_player_one, 19, 0, 1, 1805, 1550] +[:key_held_player_one, 15, 0, 1, 1806, 1551] +[:key_held_player_one, 19, 0, 1, 1807, 1551] +[:key_held_player_one, 15, 0, 1, 1808, 1552] +[:key_held_player_one, 19, 0, 1, 1809, 1552] +[:key_held_player_one, 15, 0, 1, 1810, 1553] +[:key_held_player_one, 19, 0, 1, 1811, 1553] +[:key_held_player_one, 15, 0, 1, 1812, 1554] +[:key_held_player_one, 19, 0, 1, 1813, 1554] +[:key_held_player_one, 15, 0, 1, 1814, 1555] +[:key_held_player_one, 19, 0, 1, 1815, 1555] +[:key_held_player_one, 15, 0, 1, 1816, 1556] +[:key_held_player_one, 19, 0, 1, 1817, 1556] +[:key_held_player_one, 15, 0, 1, 1818, 1557] +[:key_held_player_one, 19, 0, 1, 1819, 1557] +[:key_held_player_one, 15, 0, 1, 1820, 1558] +[:key_held_player_one, 19, 0, 1, 1821, 1558] +[:key_held_player_one, 15, 0, 1, 1822, 1559] +[:key_held_player_one, 19, 0, 1, 1823, 1559] +[:key_held_player_one, 15, 0, 1, 1824, 1560] +[:key_held_player_one, 19, 0, 1, 1825, 1560] +[:key_held_player_one, 15, 0, 1, 1826, 1561] +[:key_held_player_one, 19, 0, 1, 1827, 1561] +[:key_held_player_one, 15, 0, 1, 1828, 1562] +[:key_held_player_one, 19, 0, 1, 1829, 1562] +[:key_held_player_one, 15, 0, 1, 1830, 1563] +[:key_held_player_one, 19, 0, 1, 1831, 1563] +[:key_held_player_one, 15, 0, 1, 1832, 1564] +[:key_held_player_one, 19, 0, 1, 1833, 1564] +[:key_held_player_one, 15, 0, 1, 1834, 1565] +[:key_held_player_one, 19, 0, 1, 1835, 1565] +[:key_held_player_one, 15, 0, 1, 1836, 1566] +[:key_held_player_one, 19, 0, 1, 1837, 1566] +[:key_held_player_one, 15, 0, 1, 1838, 1567] +[:key_held_player_one, 19, 0, 1, 1839, 1567] +[:key_held_player_one, 15, 0, 1, 1840, 1568] +[:key_held_player_one, 19, 0, 1, 1841, 1568] +[:key_held_player_one, 15, 0, 1, 1842, 1569] +[:key_held_player_one, 19, 0, 1, 1843, 1569] +[:key_held_player_one, 15, 0, 1, 1844, 1570] +[:key_held_player_one, 19, 0, 1, 1845, 1570] +[:key_held_player_one, 15, 0, 1, 1846, 1571] +[:key_held_player_one, 19, 0, 1, 1847, 1571] +[:key_held_player_one, 15, 0, 1, 1848, 1572] +[:key_held_player_one, 19, 0, 1, 1849, 1572] +[:key_held_player_one, 15, 0, 1, 1850, 1573] +[:key_held_player_one, 19, 0, 1, 1851, 1573] +[:key_held_player_one, 15, 0, 1, 1852, 1574] +[:key_held_player_one, 19, 0, 1, 1853, 1574] +[:key_held_player_one, 15, 0, 1, 1854, 1575] +[:key_held_player_one, 19, 0, 1, 1855, 1575] +[:key_held_player_one, 15, 0, 1, 1856, 1576] +[:key_held_player_one, 19, 0, 1, 1857, 1576] +[:key_held_player_one, 15, 0, 1, 1858, 1577] +[:key_held_player_one, 19, 0, 1, 1859, 1577] +[:key_held_player_one, 15, 0, 1, 1860, 1578] +[:key_held_player_one, 19, 0, 1, 1861, 1578] +[:key_held_player_one, 15, 0, 1, 1862, 1579] +[:key_held_player_one, 19, 0, 1, 1863, 1579] +[:key_held_player_one, 15, 0, 1, 1864, 1580] +[:key_held_player_one, 19, 0, 1, 1865, 1580] +[:key_held_player_one, 15, 0, 1, 1866, 1581] +[:key_held_player_one, 19, 0, 1, 1867, 1581] +[:key_held_player_one, 15, 0, 1, 1868, 1582] +[:key_held_player_one, 19, 0, 1, 1869, 1582] +[:key_held_player_one, 15, 0, 1, 1870, 1583] +[:key_held_player_one, 19, 0, 1, 1871, 1583] +[:key_held_player_one, 15, 0, 1, 1872, 1584] +[:key_held_player_one, 19, 0, 1, 1873, 1584] +[:key_held_player_one, 15, 0, 1, 1874, 1585] +[:key_held_player_one, 19, 0, 1, 1875, 1585] +[:key_up_player_one, 15, 0, 1, 1876, 1586] +[:key_held_player_one, 19, 0, 1, 1877, 1586] +[:key_held_player_one, 19, 0, 1, 1878, 1587] +[:key_up_player_one, 19, 0, 1, 1879, 1588] +[:key_down_player_one, 19, 0, 1, 1880, 1713] +[:key_held_player_one, 19, 0, 1, 1881, 1714] +[:key_held_player_one, 19, 0, 1, 1882, 1715] +[:key_held_player_one, 19, 0, 1, 1883, 1716] +[:key_held_player_one, 19, 0, 1, 1884, 1717] +[:key_held_player_one, 19, 0, 1, 1885, 1718] +[:key_held_player_one, 19, 0, 1, 1886, 1719] +[:key_held_player_one, 19, 0, 1, 1887, 1720] +[:key_held_player_one, 19, 0, 1, 1888, 1721] +[:key_held_player_one, 19, 0, 1, 1889, 1722] +[:key_held_player_one, 19, 0, 1, 1890, 1723] +[:key_held_player_one, 19, 0, 1, 1891, 1724] +[:key_held_player_one, 19, 0, 1, 1892, 1725] +[:key_held_player_one, 19, 0, 1, 1893, 1726] +[:key_held_player_one, 19, 0, 1, 1894, 1727] +[:key_held_player_one, 19, 0, 1, 1895, 1728] +[:key_held_player_one, 19, 0, 1, 1896, 1729] +[:key_held_player_one, 19, 0, 1, 1897, 1730] +[:key_held_player_one, 19, 0, 1, 1898, 1731] +[:key_held_player_one, 19, 0, 1, 1899, 1732] +[:key_held_player_one, 19, 0, 1, 1900, 1733] +[:key_held_player_one, 19, 0, 1, 1901, 1734] +[:key_held_player_one, 19, 0, 1, 1902, 1735] +[:key_held_player_one, 19, 0, 1, 1903, 1736] +[:key_down_player_one, 4, 0, 1, 1904, 1737] +[:key_held_player_one, 19, 0, 1, 1905, 1737] +[:key_down_player_one, 27, 0, 1, 1906, 1737] +[:key_held_player_one, 4, 0, 1, 1907, 1738] +[:key_held_player_one, 19, 0, 1, 1908, 1738] +[:key_held_player_one, 27, 0, 1, 1909, 1738] +[:key_held_player_one, 4, 0, 1, 1910, 1739] +[:key_held_player_one, 19, 0, 1, 1911, 1739] +[:key_held_player_one, 27, 0, 1, 1912, 1739] +[:key_held_player_one, 4, 0, 1, 1913, 1740] +[:key_held_player_one, 19, 0, 1, 1914, 1740] +[:key_held_player_one, 27, 0, 1, 1915, 1740] +[:key_held_player_one, 4, 0, 1, 1916, 1741] +[:key_held_player_one, 19, 0, 1, 1917, 1741] +[:key_held_player_one, 27, 0, 1, 1918, 1741] +[:key_held_player_one, 4, 0, 1, 1919, 1742] +[:key_held_player_one, 19, 0, 1, 1920, 1742] +[:key_held_player_one, 27, 0, 1, 1921, 1742] +[:key_held_player_one, 4, 0, 1, 1922, 1743] +[:key_held_player_one, 19, 0, 1, 1923, 1743] +[:key_held_player_one, 27, 0, 1, 1924, 1743] +[:key_held_player_one, 4, 0, 1, 1925, 1744] +[:key_held_player_one, 19, 0, 1, 1926, 1744] +[:key_held_player_one, 27, 0, 1, 1927, 1744] +[:key_held_player_one, 4, 0, 1, 1928, 1745] +[:key_held_player_one, 19, 0, 1, 1929, 1745] +[:key_held_player_one, 27, 0, 1, 1930, 1745] +[:key_held_player_one, 4, 0, 1, 1931, 1746] +[:key_held_player_one, 19, 0, 1, 1932, 1746] +[:key_held_player_one, 27, 0, 1, 1933, 1746] +[:key_held_player_one, 4, 0, 1, 1934, 1747] +[:key_held_player_one, 19, 0, 1, 1935, 1747] +[:key_held_player_one, 27, 0, 1, 1936, 1747] +[:key_held_player_one, 4, 0, 1, 1937, 1748] +[:key_held_player_one, 19, 0, 1, 1938, 1748] +[:key_held_player_one, 27, 0, 1, 1939, 1748] +[:key_up_player_one, 4, 0, 1, 1940, 1749] +[:key_held_player_one, 19, 0, 1, 1941, 1749] +[:key_up_player_one, 27, 0, 1, 1942, 1749] +[:key_held_player_one, 19, 0, 1, 1943, 1750] +[:key_held_player_one, 19, 0, 1, 1944, 1751] +[:key_held_player_one, 19, 0, 1, 1945, 1752] +[:key_held_player_one, 19, 0, 1, 1946, 1753] +[:key_held_player_one, 19, 0, 1, 1947, 1754] +[:key_held_player_one, 19, 0, 1, 1948, 1755] +[:key_held_player_one, 19, 0, 1, 1949, 1756] +[:key_held_player_one, 19, 0, 1, 1950, 1757] +[:key_held_player_one, 19, 0, 1, 1951, 1758] +[:key_held_player_one, 19, 0, 1, 1952, 1759] +[:key_held_player_one, 19, 0, 1, 1953, 1760] +[:key_held_player_one, 19, 0, 1, 1954, 1761] +[:key_held_player_one, 19, 0, 1, 1955, 1762] +[:key_held_player_one, 19, 0, 1, 1956, 1763] +[:key_held_player_one, 19, 0, 1, 1957, 1764] +[:key_held_player_one, 19, 0, 1, 1958, 1765] +[:key_held_player_one, 19, 0, 1, 1959, 1766] +[:key_held_player_one, 19, 0, 1, 1960, 1767] +[:key_down_player_one, 14, 0, 1, 1961, 1768] +[:key_held_player_one, 19, 0, 1, 1962, 1768] +[:key_held_player_one, 14, 0, 1, 1963, 1769] +[:key_held_player_one, 19, 0, 1, 1964, 1769] +[:key_down_player_one, 3, 0, 1, 1965, 1770] +[:key_held_player_one, 14, 0, 1, 1966, 1770] +[:key_held_player_one, 19, 0, 1, 1967, 1770] +[:key_down_player_one, 26, 0, 1, 1968, 1770] +[:key_held_player_one, 3, 0, 1, 1969, 1771] +[:key_held_player_one, 14, 0, 1, 1970, 1771] +[:key_held_player_one, 19, 0, 1, 1971, 1771] +[:key_held_player_one, 26, 0, 1, 1972, 1771] +[:key_held_player_one, 3, 0, 1, 1973, 1772] +[:key_held_player_one, 14, 0, 1, 1974, 1772] +[:key_held_player_one, 19, 0, 1, 1975, 1772] +[:key_held_player_one, 26, 0, 1, 1976, 1772] +[:key_held_player_one, 3, 0, 1, 1977, 1773] +[:key_held_player_one, 14, 0, 1, 1978, 1773] +[:key_held_player_one, 19, 0, 1, 1979, 1773] +[:key_held_player_one, 26, 0, 1, 1980, 1773] +[:key_held_player_one, 3, 0, 1, 1981, 1774] +[:key_up_player_one, 14, 0, 1, 1982, 1774] +[:key_held_player_one, 19, 0, 1, 1983, 1774] +[:key_held_player_one, 26, 0, 1, 1984, 1774] +[:key_held_player_one, 3, 0, 1, 1985, 1775] +[:key_held_player_one, 19, 0, 1, 1986, 1775] +[:key_held_player_one, 26, 0, 1, 1987, 1775] +[:key_held_player_one, 3, 0, 1, 1988, 1776] +[:key_held_player_one, 19, 0, 1, 1989, 1776] +[:key_held_player_one, 26, 0, 1, 1990, 1776] +[:key_up_player_one, 3, 0, 1, 1991, 1777] +[:key_held_player_one, 19, 0, 1, 1992, 1777] +[:key_up_player_one, 26, 0, 1, 1993, 1777] +[:key_held_player_one, 19, 0, 1, 1994, 1778] +[:key_held_player_one, 19, 0, 1, 1995, 1779] +[:key_down_player_one, 14, 0, 1, 1996, 1780] +[:key_held_player_one, 19, 0, 1, 1997, 1780] +[:key_held_player_one, 14, 0, 1, 1998, 1781] +[:key_held_player_one, 19, 0, 1, 1999, 1781] +[:key_held_player_one, 14, 0, 1, 2000, 1782] +[:key_held_player_one, 19, 0, 1, 2001, 1782] +[:key_held_player_one, 14, 0, 1, 2002, 1783] +[:key_held_player_one, 19, 0, 1, 2003, 1783] +[:key_held_player_one, 14, 0, 1, 2004, 1784] +[:key_held_player_one, 19, 0, 1, 2005, 1784] +[:key_held_player_one, 14, 0, 1, 2006, 1785] +[:key_held_player_one, 19, 0, 1, 2007, 1785] +[:key_up_player_one, 14, 0, 1, 2008, 1786] +[:key_held_player_one, 19, 0, 1, 2009, 1786] +[:key_held_player_one, 19, 0, 1, 2010, 1787] +[:key_held_player_one, 19, 0, 1, 2011, 1788] +[:key_held_player_one, 19, 0, 1, 2012, 1789] +[:key_down_player_one, 14, 0, 1, 2013, 1790] +[:key_held_player_one, 19, 0, 1, 2014, 1790] +[:key_held_player_one, 14, 0, 1, 2015, 1791] +[:key_held_player_one, 19, 0, 1, 2016, 1791] +[:key_held_player_one, 14, 0, 1, 2017, 1792] +[:key_held_player_one, 19, 0, 1, 2018, 1792] +[:key_held_player_one, 14, 0, 1, 2019, 1793] +[:key_held_player_one, 19, 0, 1, 2020, 1793] +[:key_held_player_one, 14, 0, 1, 2021, 1794] +[:key_held_player_one, 19, 0, 1, 2022, 1794] +[:key_down_player_one, 4, 0, 1, 2023, 1795] +[:key_held_player_one, 14, 0, 1, 2024, 1795] +[:key_held_player_one, 19, 0, 1, 2025, 1795] +[:key_down_player_one, 27, 0, 1, 2026, 1795] +[:key_held_player_one, 4, 0, 1, 2027, 1796] +[:key_up_player_one, 14, 0, 1, 2028, 1796] +[:key_held_player_one, 19, 0, 1, 2029, 1796] +[:key_held_player_one, 27, 0, 1, 2030, 1796] +[:key_held_player_one, 4, 0, 1, 2031, 1797] +[:key_held_player_one, 19, 0, 1, 2032, 1797] +[:key_held_player_one, 27, 0, 1, 2033, 1797] +[:key_held_player_one, 4, 0, 1, 2034, 1798] +[:key_held_player_one, 19, 0, 1, 2035, 1798] +[:key_held_player_one, 27, 0, 1, 2036, 1798] +[:key_held_player_one, 4, 0, 1, 2037, 1799] +[:key_held_player_one, 19, 0, 1, 2038, 1799] +[:key_held_player_one, 27, 0, 1, 2039, 1799] +[:key_held_player_one, 4, 0, 1, 2040, 1800] +[:key_down_player_one, 14, 0, 1, 2041, 1800] +[:key_held_player_one, 19, 0, 1, 2042, 1800] +[:key_held_player_one, 27, 0, 1, 2043, 1800] +[:key_up_player_one, 4, 0, 1, 2044, 1801] +[:key_held_player_one, 14, 0, 1, 2045, 1801] +[:key_held_player_one, 19, 0, 1, 2046, 1801] +[:key_up_player_one, 27, 0, 1, 2047, 1801] +[:key_held_player_one, 14, 0, 1, 2048, 1802] +[:key_held_player_one, 19, 0, 1, 2049, 1802] +[:key_held_player_one, 14, 0, 1, 2050, 1803] +[:key_held_player_one, 19, 0, 1, 2051, 1803] +[:key_held_player_one, 14, 0, 1, 2052, 1804] +[:key_held_player_one, 19, 0, 1, 2053, 1804] +[:key_held_player_one, 14, 0, 1, 2054, 1805] +[:key_held_player_one, 19, 0, 1, 2055, 1805] +[:key_held_player_one, 14, 0, 1, 2056, 1806] +[:key_held_player_one, 19, 0, 1, 2057, 1806] +[:key_held_player_one, 14, 0, 1, 2058, 1807] +[:key_held_player_one, 19, 0, 1, 2059, 1807] +[:key_up_player_one, 14, 0, 1, 2060, 1808] +[:key_held_player_one, 19, 0, 1, 2061, 1808] +[:key_held_player_one, 19, 0, 1, 2062, 1809] +[:key_held_player_one, 19, 0, 1, 2063, 1810] +[:key_down_player_one, 3, 0, 1, 2064, 1811] +[:key_down_player_one, 14, 0, 1, 2065, 1811] +[:key_held_player_one, 19, 0, 1, 2066, 1811] +[:key_down_player_one, 26, 0, 1, 2067, 1811] +[:key_held_player_one, 3, 0, 1, 2068, 1812] +[:key_held_player_one, 14, 0, 1, 2069, 1812] +[:key_held_player_one, 19, 0, 1, 2070, 1812] +[:key_held_player_one, 26, 0, 1, 2071, 1812] +[:key_held_player_one, 3, 0, 1, 2072, 1813] +[:key_held_player_one, 14, 0, 1, 2073, 1813] +[:key_held_player_one, 19, 0, 1, 2074, 1813] +[:key_held_player_one, 26, 0, 1, 2075, 1813] +[:key_held_player_one, 3, 0, 1, 2076, 1814] +[:key_held_player_one, 14, 0, 1, 2077, 1814] +[:key_held_player_one, 19, 0, 1, 2078, 1814] +[:key_held_player_one, 26, 0, 1, 2079, 1814] +[:key_held_player_one, 3, 0, 1, 2080, 1815] +[:key_held_player_one, 14, 0, 1, 2081, 1815] +[:key_held_player_one, 19, 0, 1, 2082, 1815] +[:key_held_player_one, 26, 0, 1, 2083, 1815] +[:key_held_player_one, 3, 0, 1, 2084, 1816] +[:key_held_player_one, 14, 0, 1, 2085, 1816] +[:key_held_player_one, 19, 0, 1, 2086, 1816] +[:key_held_player_one, 26, 0, 1, 2087, 1816] +[:key_held_player_one, 3, 0, 1, 2088, 1817] +[:key_held_player_one, 14, 0, 1, 2089, 1817] +[:key_held_player_one, 19, 0, 1, 2090, 1817] +[:key_held_player_one, 26, 0, 1, 2091, 1817] +[:key_held_player_one, 3, 0, 1, 2092, 1818] +[:key_held_player_one, 14, 0, 1, 2093, 1818] +[:key_held_player_one, 19, 0, 1, 2094, 1818] +[:key_held_player_one, 26, 0, 1, 2095, 1818] +[:key_held_player_one, 3, 0, 1, 2096, 1819] +[:key_up_player_one, 14, 0, 1, 2097, 1819] +[:key_held_player_one, 19, 0, 1, 2098, 1819] +[:key_held_player_one, 26, 0, 1, 2099, 1819] +[:key_held_player_one, 3, 0, 1, 2100, 1820] +[:key_held_player_one, 19, 0, 1, 2101, 1820] +[:key_held_player_one, 26, 0, 1, 2102, 1820] +[:key_held_player_one, 3, 0, 1, 2103, 1821] +[:key_held_player_one, 19, 0, 1, 2104, 1821] +[:key_held_player_one, 26, 0, 1, 2105, 1821] +[:key_held_player_one, 3, 0, 1, 2106, 1822] +[:key_held_player_one, 19, 0, 1, 2107, 1822] +[:key_held_player_one, 26, 0, 1, 2108, 1822] +[:key_held_player_one, 3, 0, 1, 2109, 1823] +[:key_down_player_one, 14, 0, 1, 2110, 1823] +[:key_held_player_one, 19, 0, 1, 2111, 1823] +[:key_held_player_one, 26, 0, 1, 2112, 1823] +[:key_held_player_one, 3, 0, 1, 2113, 1824] +[:key_held_player_one, 14, 0, 1, 2114, 1824] +[:key_held_player_one, 19, 0, 1, 2115, 1824] +[:key_held_player_one, 26, 0, 1, 2116, 1824] +[:key_held_player_one, 3, 0, 1, 2117, 1825] +[:key_held_player_one, 14, 0, 1, 2118, 1825] +[:key_held_player_one, 19, 0, 1, 2119, 1825] +[:key_held_player_one, 26, 0, 1, 2120, 1825] +[:key_held_player_one, 3, 0, 1, 2121, 1826] +[:key_held_player_one, 14, 0, 1, 2122, 1826] +[:key_held_player_one, 19, 0, 1, 2123, 1826] +[:key_held_player_one, 26, 0, 1, 2124, 1826] +[:key_up_player_one, 3, 0, 1, 2125, 1827] +[:key_held_player_one, 14, 0, 1, 2126, 1827] +[:key_held_player_one, 19, 0, 1, 2127, 1827] +[:key_up_player_one, 26, 0, 1, 2128, 1827] +[:key_held_player_one, 14, 0, 1, 2129, 1828] +[:key_held_player_one, 19, 0, 1, 2130, 1828] +[:key_held_player_one, 14, 0, 1, 2131, 1829] +[:key_held_player_one, 19, 0, 1, 2132, 1829] +[:key_up_player_one, 14, 0, 1, 2133, 1830] +[:key_held_player_one, 19, 0, 1, 2134, 1830] +[:key_held_player_one, 19, 0, 1, 2135, 1831] +[:key_held_player_one, 19, 0, 1, 2136, 1832] +[:key_held_player_one, 19, 0, 1, 2137, 1833] +[:key_down_player_one, 14, 0, 1, 2138, 1834] +[:key_held_player_one, 19, 0, 1, 2139, 1834] +[:key_held_player_one, 14, 0, 1, 2140, 1835] +[:key_held_player_one, 19, 0, 1, 2141, 1835] +[:key_held_player_one, 14, 0, 1, 2142, 1836] +[:key_held_player_one, 19, 0, 1, 2143, 1836] +[:key_held_player_one, 14, 0, 1, 2144, 1837] +[:key_held_player_one, 19, 0, 1, 2145, 1837] +[:key_held_player_one, 14, 0, 1, 2146, 1838] +[:key_held_player_one, 19, 0, 1, 2147, 1838] +[:key_held_player_one, 14, 0, 1, 2148, 1839] +[:key_held_player_one, 19, 0, 1, 2149, 1839] +[:key_held_player_one, 14, 0, 1, 2150, 1840] +[:key_held_player_one, 19, 0, 1, 2151, 1840] +[:key_up_player_one, 14, 0, 1, 2152, 1841] +[:key_held_player_one, 19, 0, 1, 2153, 1841] +[:key_held_player_one, 19, 0, 1, 2154, 1842] +[:key_held_player_one, 19, 0, 1, 2155, 1843] +[:key_held_player_one, 19, 0, 1, 2156, 1844] +[:key_held_player_one, 19, 0, 1, 2157, 1845] +[:key_held_player_one, 19, 0, 1, 2158, 1846] +[:key_held_player_one, 19, 0, 1, 2159, 1847] +[:key_held_player_one, 19, 0, 1, 2160, 1848] +[:key_held_player_one, 19, 0, 1, 2161, 1849] +[:key_held_player_one, 19, 0, 1, 2162, 1850] +[:key_held_player_one, 19, 0, 1, 2163, 1851] +[:key_held_player_one, 19, 0, 1, 2164, 1852] +[:key_held_player_one, 19, 0, 1, 2165, 1853] +[:key_held_player_one, 19, 0, 1, 2166, 1854] +[:key_held_player_one, 19, 0, 1, 2167, 1855] +[:key_held_player_one, 19, 0, 1, 2168, 1856] +[:key_held_player_one, 19, 0, 1, 2169, 1857] +[:key_held_player_one, 19, 0, 1, 2170, 1858] +[:key_held_player_one, 19, 0, 1, 2171, 1859] +[:key_down_player_one, 14, 0, 1, 2172, 1860] +[:key_held_player_one, 19, 0, 1, 2173, 1860] +[:key_held_player_one, 14, 0, 1, 2174, 1861] +[:key_held_player_one, 19, 0, 1, 2175, 1861] +[:key_held_player_one, 14, 0, 1, 2176, 1862] +[:key_held_player_one, 19, 0, 1, 2177, 1862] +[:key_down_player_one, 3, 0, 1, 2178, 1863] +[:key_held_player_one, 14, 0, 1, 2179, 1863] +[:key_held_player_one, 19, 0, 1, 2180, 1863] +[:key_down_player_one, 26, 0, 1, 2181, 1863] +[:key_held_player_one, 3, 0, 1, 2182, 1864] +[:key_held_player_one, 14, 0, 1, 2183, 1864] +[:key_held_player_one, 19, 0, 1, 2184, 1864] +[:key_held_player_one, 26, 0, 1, 2185, 1864] +[:key_held_player_one, 3, 0, 1, 2186, 1865] +[:key_held_player_one, 14, 0, 1, 2187, 1865] +[:key_held_player_one, 19, 0, 1, 2188, 1865] +[:key_held_player_one, 26, 0, 1, 2189, 1865] +[:key_held_player_one, 3, 0, 1, 2190, 1866] +[:key_held_player_one, 14, 0, 1, 2191, 1866] +[:key_held_player_one, 19, 0, 1, 2192, 1866] +[:key_held_player_one, 26, 0, 1, 2193, 1866] +[:key_held_player_one, 3, 0, 1, 2194, 1867] +[:key_held_player_one, 14, 0, 1, 2195, 1867] +[:key_held_player_one, 19, 0, 1, 2196, 1867] +[:key_held_player_one, 26, 0, 1, 2197, 1867] +[:key_held_player_one, 3, 0, 1, 2198, 1868] +[:key_up_player_one, 14, 0, 1, 2199, 1868] +[:key_held_player_one, 19, 0, 1, 2200, 1868] +[:key_held_player_one, 26, 0, 1, 2201, 1868] +[:key_held_player_one, 3, 0, 1, 2202, 1869] +[:key_held_player_one, 19, 0, 1, 2203, 1869] +[:key_held_player_one, 26, 0, 1, 2204, 1869] +[:key_held_player_one, 3, 0, 1, 2205, 1870] +[:key_held_player_one, 19, 0, 1, 2206, 1870] +[:key_held_player_one, 26, 0, 1, 2207, 1870] +[:key_held_player_one, 3, 0, 1, 2208, 1871] +[:key_held_player_one, 19, 0, 1, 2209, 1871] +[:key_held_player_one, 26, 0, 1, 2210, 1871] +[:key_held_player_one, 3, 0, 1, 2211, 1872] +[:key_held_player_one, 19, 0, 1, 2212, 1872] +[:key_held_player_one, 26, 0, 1, 2213, 1872] +[:key_held_player_one, 3, 0, 1, 2214, 1873] +[:key_held_player_one, 19, 0, 1, 2215, 1873] +[:key_held_player_one, 26, 0, 1, 2216, 1873] +[:key_held_player_one, 3, 0, 1, 2217, 1874] +[:key_down_player_one, 14, 0, 1, 2218, 1874] +[:key_held_player_one, 19, 0, 1, 2219, 1874] +[:key_held_player_one, 26, 0, 1, 2220, 1874] +[:key_held_player_one, 3, 0, 1, 2221, 1875] +[:key_held_player_one, 14, 0, 1, 2222, 1875] +[:key_held_player_one, 19, 0, 1, 2223, 1875] +[:key_held_player_one, 26, 0, 1, 2224, 1875] +[:key_held_player_one, 3, 0, 1, 2225, 1876] +[:key_held_player_one, 14, 0, 1, 2226, 1876] +[:key_held_player_one, 19, 0, 1, 2227, 1876] +[:key_held_player_one, 26, 0, 1, 2228, 1876] +[:key_held_player_one, 3, 0, 1, 2229, 1877] +[:key_held_player_one, 14, 0, 1, 2230, 1877] +[:key_held_player_one, 19, 0, 1, 2231, 1877] +[:key_held_player_one, 26, 0, 1, 2232, 1877] +[:key_held_player_one, 3, 0, 1, 2233, 1878] +[:key_held_player_one, 14, 0, 1, 2234, 1878] +[:key_held_player_one, 19, 0, 1, 2235, 1878] +[:key_held_player_one, 26, 0, 1, 2236, 1878] +[:key_held_player_one, 3, 0, 1, 2237, 1879] +[:key_held_player_one, 14, 0, 1, 2238, 1879] +[:key_held_player_one, 19, 0, 1, 2239, 1879] +[:key_held_player_one, 26, 0, 1, 2240, 1879] +[:key_up_player_one, 3, 0, 1, 2241, 1880] +[:key_held_player_one, 14, 0, 1, 2242, 1880] +[:key_held_player_one, 19, 0, 1, 2243, 1880] +[:key_up_player_one, 26, 0, 1, 2244, 1880] +[:key_held_player_one, 14, 0, 1, 2245, 1881] +[:key_held_player_one, 19, 0, 1, 2246, 1881] +[:key_up_player_one, 14, 0, 1, 2247, 1882] +[:key_held_player_one, 19, 0, 1, 2248, 1882] +[:key_held_player_one, 19, 0, 1, 2249, 1883] +[:key_held_player_one, 19, 0, 1, 2250, 1884] +[:key_held_player_one, 19, 0, 1, 2251, 1885] +[:key_held_player_one, 19, 0, 1, 2252, 1886] +[:key_held_player_one, 19, 0, 1, 2253, 1887] +[:key_held_player_one, 19, 0, 1, 2254, 1888] +[:key_held_player_one, 19, 0, 1, 2255, 1889] +[:key_held_player_one, 19, 0, 1, 2256, 1890] +[:key_held_player_one, 19, 0, 1, 2257, 1891] +[:key_held_player_one, 19, 0, 1, 2258, 1892] +[:key_held_player_one, 19, 0, 1, 2259, 1893] +[:key_held_player_one, 19, 0, 1, 2260, 1894] +[:key_held_player_one, 19, 0, 1, 2261, 1895] +[:key_held_player_one, 19, 0, 1, 2262, 1896] +[:key_held_player_one, 19, 0, 1, 2263, 1897] +[:key_down_player_one, 4, 0, 1, 2264, 1898] +[:key_held_player_one, 19, 0, 1, 2265, 1898] +[:key_down_player_one, 27, 0, 1, 2266, 1898] +[:key_held_player_one, 4, 0, 1, 2267, 1899] +[:key_held_player_one, 19, 0, 1, 2268, 1899] +[:key_held_player_one, 27, 0, 1, 2269, 1899] +[:key_held_player_one, 4, 0, 1, 2270, 1900] +[:key_held_player_one, 19, 0, 1, 2271, 1900] +[:key_held_player_one, 27, 0, 1, 2272, 1900] +[:key_held_player_one, 4, 0, 1, 2273, 1901] +[:key_held_player_one, 19, 0, 1, 2274, 1901] +[:key_held_player_one, 27, 0, 1, 2275, 1901] +[:key_held_player_one, 4, 0, 1, 2276, 1902] +[:key_held_player_one, 19, 0, 1, 2277, 1902] +[:key_held_player_one, 27, 0, 1, 2278, 1902] +[:key_held_player_one, 4, 0, 1, 2279, 1903] +[:key_held_player_one, 19, 0, 1, 2280, 1903] +[:key_held_player_one, 27, 0, 1, 2281, 1903] +[:key_held_player_one, 4, 0, 1, 2282, 1904] +[:key_held_player_one, 19, 0, 1, 2283, 1904] +[:key_held_player_one, 27, 0, 1, 2284, 1904] +[:key_up_player_one, 4, 0, 1, 2285, 1905] +[:key_held_player_one, 19, 0, 1, 2286, 1905] +[:key_up_player_one, 27, 0, 1, 2287, 1905] +[:key_held_player_one, 19, 0, 1, 2288, 1906] +[:key_held_player_one, 19, 0, 1, 2289, 1907] +[:key_held_player_one, 19, 0, 1, 2290, 1908] +[:key_held_player_one, 19, 0, 1, 2291, 1909] +[:key_held_player_one, 19, 0, 1, 2292, 1910] +[:key_held_player_one, 19, 0, 1, 2293, 1911] +[:key_held_player_one, 19, 0, 1, 2294, 1912] +[:key_held_player_one, 19, 0, 1, 2295, 1913] +[:key_held_player_one, 19, 0, 1, 2296, 1914] +[:key_up_player_one, 19, 0, 1, 2297, 1915] +[:key_down_raw, 1073741906, 0, 2, 2298, 2063] +[:key_down_raw, 1073741906, 0, 2, 2299, 2063] +[:key_down_raw, 1073741906, 0, 2, 2300, 2066] +[:key_down_raw, 1073741906, 0, 2, 2301, 2070] +[:key_down_raw, 1073741906, 0, 2, 2302, 2072] +[:key_down_raw, 1073741906, 0, 2, 2303, 2074] +[:key_down_raw, 1073741906, 0, 2, 2304, 2076] +[:key_down_raw, 1073741906, 0, 2, 2305, 2078] +[:key_down_raw, 1073741906, 0, 2, 2306, 2080] +[:key_down_raw, 1073741906, 0, 2, 2307, 2082] +[:key_down_raw, 1073741906, 0, 2, 2308, 2084] +[:key_down_raw, 1073741906, 0, 2, 2309, 2086] +[:key_down_raw, 1073741906, 0, 2, 2310, 2088] +[:key_down_raw, 1073741906, 0, 2, 2311, 2090] +[:key_down_raw, 1073741906, 0, 2, 2312, 2092] +[:key_down_raw, 1073741906, 0, 2, 2313, 2094] +[:key_down_raw, 1073741906, 0, 2, 2314, 2096] +[:key_down_raw, 1073741906, 0, 2, 2315, 2098] +[:key_down_raw, 1073741906, 0, 2, 2316, 2100] +[:key_down_raw, 1073741906, 0, 2, 2317, 2102] +[:key_down_raw, 1073741906, 0, 2, 2318, 2104] +[:key_down_raw, 1073741906, 0, 2, 2319, 2106] +[:key_down_raw, 1073741906, 0, 2, 2320, 2108] +[:key_down_raw, 1073741906, 0, 2, 2321, 2110] +[:key_down_raw, 1073741906, 0, 2, 2322, 2113] +[:key_down_raw, 1073741906, 0, 2, 2323, 2115] +[:key_down_raw, 1073741906, 0, 2, 2324, 2117] +[:key_down_raw, 1073741906, 0, 2, 2325, 2119] +[:key_down_raw, 1073741906, 0, 2, 2326, 2121] +[:key_down_raw, 1073741906, 0, 2, 2327, 2123] +[:key_down_raw, 1073741906, 0, 2, 2328, 2125] +[:key_down_raw, 1073741906, 0, 2, 2329, 2127] +[:key_down_raw, 1073741906, 0, 2, 2330, 2129] +[:key_down_raw, 1073741906, 0, 2, 2331, 2131] +[:key_down_raw, 1073741906, 0, 2, 2332, 2133] +[:key_down_raw, 1073741906, 0, 2, 2333, 2135] +[:key_down_raw, 1073741906, 0, 2, 2334, 2137] +[:key_down_raw, 1073741906, 0, 2, 2335, 2139] +[:key_down_raw, 1073741906, 0, 2, 2336, 2141] +[:key_down_raw, 1073741904, 0, 2, 2337, 2141] +[:key_up_raw, 1073741904, 0, 2, 2338, 2145] +[:key_down_raw, 1073741904, 0, 2, 2339, 2151] +[:key_up_raw, 1073741904, 0, 2, 2340, 2156] +[:key_down_raw, 1073741904, 0, 2, 2341, 2160] +[:key_up_raw, 1073741904, 0, 2, 2342, 2163] +[:key_down_raw, 1073741904, 0, 2, 2343, 2177] +[:key_down_raw, 1073741904, 0, 2, 2344, 2202] +[:key_down_raw, 1073741904, 0, 2, 2345, 2204] +[:key_down_raw, 1073741904, 0, 2, 2346, 2206] +[:key_down_raw, 1073741904, 0, 2, 2347, 2208] +[:key_down_raw, 32, 0, 2, 2348, 2208] +[:key_down_raw, 32, 0, 2, 2349, 2233] +[:key_down_raw, 32, 0, 2, 2350, 2235] +[:key_down_raw, 32, 0, 2, 2351, 2237] +[:key_down_raw, 32, 0, 2, 2352, 2239] +[:key_down_raw, 32, 0, 2, 2353, 2241] +[:key_down_raw, 32, 0, 2, 2354, 2244] +[:key_down_raw, 32, 0, 2, 2355, 2246] +[:key_down_raw, 32, 0, 2, 2356, 2247] +[:key_down_raw, 32, 0, 2, 2357, 2249] +[:key_down_raw, 32, 0, 2, 2358, 2251] +[:key_down_raw, 32, 0, 2, 2359, 2254] +[:key_down_raw, 32, 0, 2, 2360, 2255] +[:key_down_raw, 32, 0, 2, 2361, 2257] +[:key_down_raw, 32, 0, 2, 2362, 2259] +[:key_up_raw, 1073741904, 0, 2, 2363, 2261] +[:key_up_raw, 32, 0, 2, 2364, 2261] +[:key_down_raw, 1073741904, 0, 2, 2365, 2299] +[:key_up_raw, 1073741904, 0, 2, 2366, 2320] +[:key_down_raw, 1073741905, 0, 2, 2367, 2338] +[:key_up_raw, 1073741905, 0, 2, 2368, 2342] +[:key_down_raw, 1073741905, 0, 2, 2369, 2348] +[:key_up_raw, 1073741905, 0, 2, 2370, 2354] +[:key_down_raw, 1073741905, 0, 2, 2371, 2360] +[:key_up_raw, 1073741905, 0, 2, 2372, 2363] +[:key_down_raw, 1073741905, 0, 2, 2373, 2367] +[:key_up_raw, 1073741905, 0, 2, 2374, 2371] +[:key_down_raw, 1073741905, 0, 2, 2375, 2376] +[:key_up_raw, 1073741905, 0, 2, 2376, 2380] +[:key_up_raw, 1073741906, 0, 2, 2377, 2384] +[:key_down_raw, 1073742051, 1024, 2, 2378, 2682] +[:key_down_raw, 113, 1024, 2, 2379, 2732] diff --git a/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png b/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png Binary files differnew file mode 100644 index 0000000..78ae7d0 --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/sprites/blue_bullet.png diff --git a/samples/99_genre_arcade/dueling_starships/sprites/flame.png b/samples/99_genre_arcade/dueling_starships/sprites/flame.png Binary files differnew file mode 100644 index 0000000..6143f2f --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/sprites/flame.png diff --git a/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png b/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png Binary files differnew file mode 100644 index 0000000..3bb6219 --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/sprites/red_bullet.png diff --git a/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png b/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png Binary files differnew file mode 100644 index 0000000..3ef5f0b --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/sprites/ship_blue.png diff --git a/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png b/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png Binary files differnew file mode 100644 index 0000000..af729b7 --- /dev/null +++ b/samples/99_genre_arcade/dueling_starships/sprites/ship_red.png diff --git a/samples/99_genre_arcade/flappy_dragon/CREDITS.txt b/samples/99_genre_arcade/flappy_dragon/CREDITS.txt new file mode 100644 index 0000000..e02ebbd --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/CREDITS.txt @@ -0,0 +1,3 @@ +code: Amir Rajan, https://twitter.com/amirrajan +graphics and audio: Nick Culbertson, https://twitter.com/MobyPixel + diff --git a/samples/99_genre_arcade/flappy_dragon/app/main.rb b/samples/99_genre_arcade/flappy_dragon/app/main.rb new file mode 100644 index 0000000..56ce3ec --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/app/main.rb @@ -0,0 +1,360 @@ +class FlappyDragon + attr_accessor :grid, :inputs, :state, :outputs + + def tick + defaults + render + calc + process_inputs + end + + def defaults + state.flap_power = 11 + state.gravity = 0.9 + state.ceiling = 600 + state.ceiling_flap_power = 6 + state.wall_countdown_length = 100 + state.wall_gap_size = 100 + state.wall_countdown ||= 0 + state.hi_score ||= 0 + state.score ||= 0 + state.walls ||= [] + state.x ||= 50 + state.y ||= 500 + state.dy ||= 0 + state.scene ||= :menu + state.scene_at ||= 0 + state.difficulty ||= :normal + state.new_difficulty ||= :normal + state.countdown ||= 4.seconds + state.flash_at ||= 0 + end + + def render + outputs.sounds << "sounds/flappy-song.ogg" if state.tick_count == 1 + render_score + render_menu + render_game + end + + def render_score + outputs.primitives << [10, 710, "HI SCORE: #{state.hi_score}", large_white_typeset].label + outputs.primitives << [10, 680, "SCORE: #{state.score}", large_white_typeset].label + outputs.primitives << [10, 650, "DIFFICULTY: #{state.difficulty.upcase}", large_white_typeset].label + end + + def render_menu + return unless state.scene == :menu + render_overlay + + outputs.labels << [640, 700, "Flappy Dragon", 50, 1, 255, 255, 255] + outputs.labels << [640, 500, "Instructions: Press Spacebar to flap. Don't die.", 4, 1, 255, 255, 255] + outputs.labels << [430, 430, "[Tab] Change difficulty", 4, 0, 255, 255, 255] + outputs.labels << [430, 400, "[Enter] Start at New Difficulty ", 4, 0, 255, 255, 255] + outputs.labels << [430, 370, "[Escape] Cancel/Resume ", 4, 0, 255, 255, 255] + outputs.labels << [640, 300, "(mouse, touch, and game controllers work, too!) ", 4, 1, 255, 255, 255] + outputs.labels << [640, 200, "Difficulty: #{state.new_difficulty.capitalize}", 4, 1, 255, 255, 255] + + outputs.labels << [10, 100, "Code: @amirrajan", 255, 255, 255] + outputs.labels << [10, 80, "Art: @mobypixel", 255, 255, 255] + outputs.labels << [10, 60, "Music: @mobypixel", 255, 255, 255] + outputs.labels << [10, 40, "Engine: DragonRuby GTK", 255, 255, 255] + end + + def render_overlay + outputs.primitives << [grid.rect.scale_rect(1.1, 0, 0), 0, 0, 0, 230].solid + end + + def render_game + render_game_over + render_background + render_walls + render_dragon + render_flash + end + + def render_game_over + return unless state.scene == :game + outputs.labels << [638, 358, score_text, 20, 1] + outputs.labels << [635, 360, score_text, 20, 1, 255, 255, 255] + outputs.labels << [638, 428, countdown_text, 20, 1] + outputs.labels << [635, 430, countdown_text, 20, 1, 255, 255, 255] + end + + def render_background + outputs.sprites << [0, 0, 1280, 720, 'sprites/background.png'] + + scroll_point_at = state.tick_count + scroll_point_at = state.scene_at if state.scene == :menu + scroll_point_at = state.death_at if state.countdown > 0 + scroll_point_at ||= 0 + + outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_back.png', 0.25) + outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_middle.png', 0.50) + outputs.sprites << scrolling_background(scroll_point_at, 'sprites/parallax_front.png', 1.00, -80) + end + + def render_walls + state.walls.each do |w| + w.sprites = [ + [w.x, w.bottom_height - 720, 100, 720, 'sprites/wall.png', 180], + [w.x, w.top_y, 100, 720, 'sprites/wallbottom.png', 0] + ] + end + outputs.sprites << state.walls.map(&:sprites) + end + + def render_dragon + state.show_death = true if state.countdown == 3.seconds + + render_debug_hitbox false + + if state.show_death == false || !state.death_at + animation_index = state.flapped_at.frame_index 6, 2, false if state.flapped_at + sprite_name = "sprites/dragon_fly#{animation_index.or(0) + 1}.png" + state.dragon_sprite = [state.x, state.y, 100, 80, sprite_name, state.dy * 1.2] + else + sprite_name = "sprites/dragon_die.png" + state.dragon_sprite = [state.x, state.y, 100, 80, sprite_name, state.dy * 1.2] + sprite_changed_elapsed = state.death_at.elapsed_time - 1.seconds + state.dragon_sprite.angle += (sprite_changed_elapsed ** 1.3) * state.death_fall_direction * -1 + state.dragon_sprite.x += (sprite_changed_elapsed ** 1.2) * state.death_fall_direction + state.dragon_sprite.y += (sprite_changed_elapsed * 14 - sprite_changed_elapsed ** 1.6) + end + + outputs.sprites << state.dragon_sprite + end + + def render_debug_hitbox show + return unless show + outputs.borders << [dragon_collision_box.rect, 255, 0, 0] if state.dragon_sprite + outputs.borders << state.walls.flat_map do |w| + w.sprites.map { |s| [s.rect, 255, 0, 0] } + end + end + + def render_flash + return unless state.flash_at + + outputs.primitives << [grid.rect, + white, + 255 * state.flash_at.ease(20, :flip)].solid + + state.flash_at = 0 if state.flash_at.elapsed_time > 20 + end + + def calc + return unless state.scene == :game + reset_game if state.countdown == 1 + state.countdown -= 1 and return if state.countdown > 0 + calc_walls + calc_flap + calc_game_over + end + + def calc_walls + state.walls.each { |w| w.x -= 8 } + + walls_count_before_removal = state.walls.length + + state.walls.reject! { |w| w.x < -100 } + + state.score += 1 if state.walls.count < walls_count_before_removal + + state.wall_countdown -= 1 and return if state.wall_countdown > 0 + + state.walls << state.new_entity(:wall) do |w| + w.x = grid.right + w.opening = grid.top + .randomize(:ratio) + .greater(200) + .lesser(520) + w.bottom_height = w.opening - state.wall_gap_size + w.top_y = w.opening + state.wall_gap_size + end + + state.wall_countdown = state.wall_countdown_length + end + + def calc_flap + state.y += state.dy + state.dy = state.dy.lesser state.flap_power + state.dy -= state.gravity + return if state.y < state.ceiling + state.y = state.ceiling + state.dy = state.dy.lesser state.ceiling_flap_power + end + + def calc_game_over + return unless game_over? + + state.death_at = state.tick_count + state.death_from = state.walls.first + state.death_fall_direction = -1 + state.death_fall_direction = 1 if state.x > state.death_from.x + outputs.sounds << "sounds/hit-sound.wav" + begin_countdown + end + + def process_inputs + process_inputs_menu + process_inputs_game + end + + def process_inputs_menu + return unless state.scene == :menu + + changediff = inputs.keyboard.key_down.tab || inputs.controller_one.key_down.select + if inputs.mouse.click + p = inputs.mouse.click.point + if (p.y >= 165) && (p.y < 200) && (p.x >= 500) && (p.x < 800) + changediff = true + end + end + + if changediff + case state.new_difficulty + when :easy + state.new_difficulty = :normal + when :normal + state.new_difficulty = :hard + when :hard + state.new_difficulty = :flappy + when :flappy + state.new_difficulty = :easy + end + end + + if inputs.keyboard.key_down.enter || inputs.controller_one.key_down.start || inputs.controller_one.key_down.a + state.difficulty = state.new_difficulty + change_to_scene :game + reset_game false + state.hi_score = 0 + begin_countdown + end + + if inputs.keyboard.key_down.escape || (inputs.mouse.click && !changediff) || inputs.controller_one.key_down.b + state.new_difficulty = state.difficulty + change_to_scene :game + end + end + + def process_inputs_game + return unless state.scene == :game + + clicked_menu = false + if inputs.mouse.click + p = inputs.mouse.click.point + clicked_menu = (p.y >= 620) && (p.x < 275) + end + + if clicked_menu || inputs.keyboard.key_down.escape || inputs.keyboard.key_down.enter || inputs.controller_one.key_down.start + change_to_scene :menu + elsif (inputs.mouse.down || inputs.mouse.click || inputs.keyboard.key_down.space || inputs.controller_one.key_down.a) && state.countdown == 0 + state.dy = 0 + state.dy += state.flap_power + state.flapped_at = state.tick_count + outputs.sounds << "sounds/fly-sound.wav" + end + end + + def scrolling_background at, path, rate, y = 0 + [ + [ 0 - at.*(rate) % 1440, y, 1440, 720, path], + [1440 - at.*(rate) % 1440, y, 1440, 720, path] + ] + end + + def white + [255, 255, 255] + end + + def large_white_typeset + [5, 0, 255, 255, 255] + end + + def at_beginning? + state.walls.count == 0 + end + + def dragon_collision_box + state.dragon_sprite + .scale_rect(1.0 - collision_forgiveness, 0.5, 0.5) + .rect_shift_right(10) + .rect_shift_up(state.dy * 2) + end + + def game_over? + return true if state.y <= 0.-(500 * collision_forgiveness) && !at_beginning? + + state.walls + .flat_map { |w| w.sprites } + .any? do |s| + s.intersect_rect?(dragon_collision_box) + end + end + + def collision_forgiveness + case state.difficulty + when :easy + 0.9 + when :normal + 0.7 + when :hard + 0.5 + when :flappy + 0.3 + else + 0.9 + end + end + + def countdown_text + state.countdown ||= -1 + return "" if state.countdown == 0 + return "GO!" if state.countdown.idiv(60) == 0 + return "GAME OVER" if state.death_at + return "READY?" + end + + def begin_countdown + state.countdown = 4.seconds + end + + def score_text + return "" unless state.countdown > 1.seconds + return "" unless state.death_at + return "SCORE: 0 (LOL)" if state.score == 0 + return "HI SCORE: #{state.score}" if state.score == state.hi_score + return "SCORE: #{state.score}" + end + + def reset_game set_flash = true + state.flash_at = state.tick_count if set_flash + state.walls = [] + state.y = 500 + state.dy = 0 + state.hi_score = state.hi_score.greater(state.score) + state.score = 0 + state.wall_countdown = state.wall_countdown_length.fdiv(2) + state.show_death = false + state.death_at = nil + end + + def change_to_scene scene + state.scene = scene + state.scene_at = state.tick_count + inputs.keyboard.clear + inputs.controller_one.clear + end +end + +$flappy_dragon = FlappyDragon.new + +def tick args + $flappy_dragon.grid = args.grid + $flappy_dragon.inputs = args.inputs + $flappy_dragon.state = args.state + $flappy_dragon.outputs = args.outputs + $flappy_dragon.tick +end diff --git a/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt b/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt new file mode 100644 index 0000000..c25563f --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC (code), Nick Culbertson @mobypixel (art/music) + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt b/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt new file mode 100644 index 0000000..022ab17 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/metadata/game_metadata.txt @@ -0,0 +1,6 @@ +devid=dragonruby +devtitle=DragonRuby LLC +gameid=flappydragon +gametitle=Flappy Dragon +version=1.3 +icon=sprites/dragon_fly1.png diff --git a/samples/99_genre_arcade/flappy_dragon/replay.txt b/samples/99_genre_arcade/flappy_dragon/replay.txt new file mode 100644 index 0000000..3640a47 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/replay.txt @@ -0,0 +1,957 @@ +replay_version 2.0 +stopped_at 2687 +seed 100 +recorded_at Wed Oct 30 01:03:33 2019 +[:mouse_move, 230, 226, 2, 1, 1] +[:mouse_move, 242, 232, 2, 2, 2] +[:mouse_move, 243, 232, 2, 3, 4] +[:mouse_move, 245, 233, 2, 4, 6] +[:mouse_move, 247, 233, 2, 5, 7] +[:mouse_move, 248, 234, 2, 6, 39] +[:mouse_move, 250, 236, 2, 7, 40] +[:mouse_move, 252, 240, 2, 8, 41] +[:mouse_move, 256, 244, 2, 9, 42] +[:mouse_move, 262, 248, 2, 10, 43] +[:mouse_move, 266, 250, 2, 11, 44] +[:mouse_move, 268, 252, 2, 12, 45] +[:mouse_move, 269, 252, 2, 13, 48] +[:mouse_move, 269, 253, 2, 14, 52] +[:mouse_move, 272, 257, 2, 15, 53] +[:mouse_move, 275, 262, 2, 16, 54] +[:mouse_move, 278, 268, 2, 17, 55] +[:mouse_move, 281, 274, 2, 18, 56] +[:mouse_move, 288, 280, 2, 19, 57] +[:mouse_move, 296, 286, 2, 20, 58] +[:mouse_move, 308, 294, 2, 21, 59] +[:mouse_move, 327, 302, 2, 22, 60] +[:mouse_move, 353, 310, 2, 23, 61] +[:mouse_move, 375, 315, 2, 24, 62] +[:mouse_move, 394, 317, 2, 25, 63] +[:mouse_move, 406, 317, 2, 26, 64] +[:mouse_move, 413, 317, 2, 27, 65] +[:mouse_move, 418, 315, 2, 28, 66] +[:mouse_move, 419, 314, 2, 29, 67] +[:mouse_move, 419, 313, 2, 30, 68] +[:mouse_move, 418, 311, 2, 31, 69] +[:mouse_move, 417, 308, 2, 32, 70] +[:mouse_move, 416, 306, 2, 33, 71] +[:mouse_move, 414, 306, 2, 34, 72] +[:mouse_move, 414, 305, 2, 35, 73] +[:mouse_move, 413, 305, 2, 36, 76] +[:mouse_move, 413, 306, 2, 37, 80] +[:mouse_move, 413, 307, 2, 38, 83] +[:mouse_move, 413, 308, 2, 39, 84] +[:mouse_move, 414, 309, 2, 40, 85] +[:mouse_move, 414, 310, 2, 41, 86] +[:mouse_move, 414, 311, 2, 42, 87] +[:mouse_move, 413, 312, 2, 43, 88] +[:mouse_move, 412, 313, 2, 44, 90] +[:mouse_move, 413, 312, 2, 45, 94] +[:mouse_move, 416, 310, 2, 46, 95] +[:mouse_move, 419, 307, 2, 47, 96] +[:mouse_move, 421, 305, 2, 48, 97] +[:mouse_move, 422, 305, 2, 49, 98] +[:mouse_move, 421, 305, 2, 50, 101] +[:mouse_move, 421, 306, 2, 51, 104] +[:mouse_move, 421, 307, 2, 52, 105] +[:mouse_move, 420, 307, 2, 53, 106] +[:mouse_move, 420, 308, 2, 54, 107] +[:mouse_move, 419, 309, 2, 55, 108] +[:mouse_move, 418, 309, 2, 56, 109] +[:mouse_move, 416, 311, 2, 57, 110] +[:mouse_move, 411, 312, 2, 58, 111] +[:mouse_move, 407, 314, 2, 59, 112] +[:mouse_move, 404, 315, 2, 60, 113] +[:mouse_move, 400, 317, 2, 61, 114] +[:mouse_move, 397, 318, 2, 62, 115] +[:mouse_move, 395, 320, 2, 63, 116] +[:mouse_move, 395, 321, 2, 64, 117] +[:mouse_move, 395, 322, 2, 65, 120] +[:mouse_move, 397, 323, 2, 66, 121] +[:mouse_move, 401, 325, 2, 67, 122] +[:mouse_move, 405, 326, 2, 68, 123] +[:mouse_move, 410, 326, 2, 69, 124] +[:mouse_move, 416, 327, 2, 70, 125] +[:mouse_move, 421, 327, 2, 71, 126] +[:mouse_move, 426, 328, 2, 72, 127] +[:mouse_move, 430, 328, 2, 73, 128] +[:mouse_move, 436, 328, 2, 74, 129] +[:mouse_move, 441, 327, 2, 75, 130] +[:mouse_move, 448, 327, 2, 76, 131] +[:mouse_move, 454, 326, 2, 77, 132] +[:mouse_move, 462, 326, 2, 78, 133] +[:mouse_move, 471, 326, 2, 79, 134] +[:mouse_move, 482, 327, 2, 80, 135] +[:mouse_move, 496, 328, 2, 81, 136] +[:mouse_move, 507, 329, 2, 82, 137] +[:mouse_move, 519, 329, 2, 83, 138] +[:mouse_move, 530, 329, 2, 84, 139] +[:mouse_move, 540, 329, 2, 85, 140] +[:mouse_move, 551, 330, 2, 86, 141] +[:mouse_move, 561, 330, 2, 87, 142] +[:mouse_move, 567, 330, 2, 88, 143] +[:mouse_move, 573, 330, 2, 89, 144] +[:mouse_move, 578, 329, 2, 90, 145] +[:mouse_move, 582, 329, 2, 91, 146] +[:mouse_move, 587, 329, 2, 92, 147] +[:mouse_move, 593, 328, 2, 93, 148] +[:mouse_move, 599, 328, 2, 94, 149] +[:mouse_move, 605, 327, 2, 95, 150] +[:mouse_move, 613, 327, 2, 96, 151] +[:mouse_move, 621, 327, 2, 97, 152] +[:mouse_move, 632, 327, 2, 98, 153] +[:mouse_move, 645, 328, 2, 99, 154] +[:mouse_move, 658, 328, 2, 100, 155] +[:mouse_move, 669, 328, 2, 101, 156] +[:mouse_move, 685, 328, 2, 102, 157] +[:mouse_move, 702, 328, 2, 103, 158] +[:mouse_move, 721, 328, 2, 104, 159] +[:mouse_move, 741, 328, 2, 105, 160] +[:mouse_move, 766, 327, 2, 106, 161] +[:mouse_move, 790, 326, 2, 107, 162] +[:mouse_move, 811, 325, 2, 108, 163] +[:mouse_move, 827, 323, 2, 109, 164] +[:mouse_move, 835, 321, 2, 110, 165] +[:mouse_move, 838, 318, 2, 111, 166] +[:mouse_move, 839, 317, 2, 112, 167] +[:mouse_move, 839, 316, 2, 113, 168] +[:mouse_move, 839, 315, 2, 114, 171] +[:mouse_move, 838, 316, 2, 115, 180] +[:mouse_move, 837, 316, 2, 116, 181] +[:mouse_move, 835, 317, 2, 117, 215] +[:mouse_move, 830, 318, 2, 118, 216] +[:mouse_move, 821, 321, 2, 119, 217] +[:mouse_move, 796, 324, 2, 120, 218] +[:mouse_move, 772, 328, 2, 121, 219] +[:mouse_move, 750, 331, 2, 122, 220] +[:mouse_move, 730, 332, 2, 123, 221] +[:mouse_move, 714, 333, 2, 124, 222] +[:mouse_move, 699, 333, 2, 125, 223] +[:mouse_move, 686, 331, 2, 126, 224] +[:mouse_move, 676, 330, 2, 127, 225] +[:mouse_move, 667, 330, 2, 128, 226] +[:mouse_move, 659, 330, 2, 129, 227] +[:mouse_move, 650, 330, 2, 130, 228] +[:mouse_move, 640, 330, 2, 131, 229] +[:mouse_move, 630, 329, 2, 132, 230] +[:mouse_move, 620, 329, 2, 133, 231] +[:mouse_move, 610, 330, 2, 134, 232] +[:mouse_move, 598, 330, 2, 135, 233] +[:mouse_move, 585, 330, 2, 136, 234] +[:mouse_move, 571, 330, 2, 137, 235] +[:mouse_move, 558, 331, 2, 138, 236] +[:mouse_move, 546, 333, 2, 139, 237] +[:mouse_move, 533, 334, 2, 140, 238] +[:mouse_move, 520, 336, 2, 141, 239] +[:mouse_move, 506, 338, 2, 142, 240] +[:mouse_move, 497, 340, 2, 143, 241] +[:mouse_move, 489, 342, 2, 144, 242] +[:mouse_move, 482, 343, 2, 145, 243] +[:mouse_move, 476, 344, 2, 146, 244] +[:mouse_move, 472, 345, 2, 147, 245] +[:mouse_move, 470, 345, 2, 148, 246] +[:mouse_move, 469, 346, 2, 149, 248] +[:mouse_move, 467, 346, 2, 150, 249] +[:mouse_move, 465, 347, 2, 151, 250] +[:mouse_move, 461, 347, 2, 152, 251] +[:mouse_move, 459, 348, 2, 153, 252] +[:mouse_move, 458, 348, 2, 154, 253] +[:mouse_move, 457, 348, 2, 155, 254] +[:mouse_move, 454, 347, 2, 156, 255] +[:mouse_move, 450, 347, 2, 157, 256] +[:mouse_move, 443, 347, 2, 158, 257] +[:mouse_move, 434, 347, 2, 159, 258] +[:mouse_move, 426, 347, 2, 160, 259] +[:mouse_move, 422, 347, 2, 161, 260] +[:mouse_move, 420, 348, 2, 162, 261] +[:mouse_move, 423, 348, 2, 163, 265] +[:mouse_move, 430, 349, 2, 164, 266] +[:mouse_move, 438, 349, 2, 165, 267] +[:mouse_move, 445, 350, 2, 166, 268] +[:mouse_move, 453, 350, 2, 167, 269] +[:mouse_move, 454, 350, 2, 168, 269] +[:mouse_move, 461, 352, 2, 169, 270] +[:mouse_move, 470, 352, 2, 170, 271] +[:mouse_move, 477, 353, 2, 171, 272] +[:mouse_move, 486, 354, 2, 172, 273] +[:mouse_move, 499, 354, 2, 173, 274] +[:mouse_move, 509, 354, 2, 174, 275] +[:mouse_move, 522, 355, 2, 175, 276] +[:mouse_move, 532, 355, 2, 176, 277] +[:mouse_move, 538, 355, 2, 177, 278] +[:mouse_move, 544, 355, 2, 178, 279] +[:mouse_move, 549, 356, 2, 179, 280] +[:mouse_move, 554, 356, 2, 180, 281] +[:mouse_move, 561, 356, 2, 181, 282] +[:mouse_move, 568, 356, 2, 182, 283] +[:mouse_move, 573, 356, 2, 183, 284] +[:mouse_move, 579, 356, 2, 184, 285] +[:mouse_move, 586, 357, 2, 185, 286] +[:mouse_move, 595, 357, 2, 186, 287] +[:mouse_move, 601, 358, 2, 187, 288] +[:mouse_move, 612, 358, 2, 188, 289] +[:mouse_move, 624, 358, 2, 189, 290] +[:mouse_move, 633, 359, 2, 190, 291] +[:mouse_move, 645, 359, 2, 191, 292] +[:mouse_move, 654, 359, 2, 192, 293] +[:mouse_move, 665, 360, 2, 193, 294] +[:mouse_move, 676, 360, 2, 194, 295] +[:mouse_move, 686, 361, 2, 195, 296] +[:mouse_move, 695, 361, 2, 196, 297] +[:mouse_move, 705, 362, 2, 197, 298] +[:mouse_move, 712, 362, 2, 198, 299] +[:mouse_move, 721, 362, 2, 199, 300] +[:mouse_move, 728, 362, 2, 200, 301] +[:mouse_move, 736, 362, 2, 201, 302] +[:mouse_move, 743, 362, 2, 202, 303] +[:mouse_move, 750, 362, 2, 203, 304] +[:mouse_move, 758, 362, 2, 204, 305] +[:mouse_move, 769, 362, 2, 205, 306] +[:mouse_move, 779, 362, 2, 206, 307] +[:mouse_move, 788, 361, 2, 207, 308] +[:mouse_move, 793, 360, 2, 208, 309] +[:mouse_move, 796, 360, 2, 209, 310] +[:mouse_move, 797, 359, 2, 210, 311] +[:mouse_move, 796, 360, 2, 211, 353] +[:mouse_move, 793, 362, 2, 212, 354] +[:mouse_move, 786, 366, 2, 213, 355] +[:mouse_move, 771, 375, 2, 214, 356] +[:mouse_move, 750, 389, 2, 215, 357] +[:mouse_move, 724, 407, 2, 216, 358] +[:mouse_move, 693, 427, 2, 217, 359] +[:mouse_move, 662, 445, 2, 218, 360] +[:mouse_move, 635, 460, 2, 219, 361] +[:mouse_move, 609, 473, 2, 220, 362] +[:mouse_move, 590, 483, 2, 221, 363] +[:mouse_move, 578, 489, 2, 222, 364] +[:mouse_move, 569, 494, 2, 223, 365] +[:mouse_move, 563, 497, 2, 224, 366] +[:mouse_move, 560, 498, 2, 225, 367] +[:mouse_move, 557, 500, 2, 226, 368] +[:mouse_move, 554, 501, 2, 227, 369] +[:mouse_move, 549, 504, 2, 228, 370] +[:mouse_move, 541, 506, 2, 229, 371] +[:mouse_move, 534, 509, 2, 230, 372] +[:mouse_move, 526, 513, 2, 231, 373] +[:mouse_move, 521, 516, 2, 232, 374] +[:mouse_move, 516, 519, 2, 233, 375] +[:mouse_move, 514, 522, 2, 234, 376] +[:mouse_move, 514, 525, 2, 235, 377] +[:mouse_move, 516, 531, 2, 236, 378] +[:mouse_move, 520, 538, 2, 237, 379] +[:mouse_move, 523, 546, 2, 238, 380] +[:mouse_move, 524, 553, 2, 239, 381] +[:mouse_move, 525, 561, 2, 240, 382] +[:mouse_move, 528, 567, 2, 241, 383] +[:mouse_move, 532, 573, 2, 242, 384] +[:mouse_move, 537, 578, 2, 243, 385] +[:mouse_move, 546, 582, 2, 244, 386] +[:mouse_move, 561, 585, 2, 245, 387] +[:mouse_move, 583, 588, 2, 246, 388] +[:mouse_move, 608, 592, 2, 247, 389] +[:mouse_move, 637, 594, 2, 248, 390] +[:mouse_move, 664, 594, 2, 249, 391] +[:mouse_move, 691, 593, 2, 250, 392] +[:mouse_move, 712, 589, 2, 251, 393] +[:mouse_move, 733, 585, 2, 252, 394] +[:mouse_move, 749, 580, 2, 253, 395] +[:mouse_move, 762, 574, 2, 254, 396] +[:mouse_move, 774, 567, 2, 255, 397] +[:mouse_move, 781, 562, 2, 256, 398] +[:mouse_move, 788, 555, 2, 257, 399] +[:mouse_move, 791, 551, 2, 258, 400] +[:mouse_move, 792, 546, 2, 259, 401] +[:mouse_move, 791, 539, 2, 260, 402] +[:mouse_move, 788, 531, 2, 261, 403] +[:mouse_move, 784, 524, 2, 262, 404] +[:mouse_move, 777, 519, 2, 263, 405] +[:mouse_move, 769, 513, 2, 264, 406] +[:mouse_move, 756, 505, 2, 265, 407] +[:mouse_move, 737, 497, 2, 266, 408] +[:mouse_move, 710, 486, 2, 267, 409] +[:mouse_move, 684, 481, 2, 268, 410] +[:mouse_move, 665, 480, 2, 269, 411] +[:mouse_move, 646, 477, 2, 270, 412] +[:mouse_move, 627, 476, 2, 271, 413] +[:mouse_move, 605, 474, 2, 272, 414] +[:mouse_move, 586, 473, 2, 273, 415] +[:mouse_move, 571, 475, 2, 274, 416] +[:mouse_move, 560, 478, 2, 275, 417] +[:mouse_move, 550, 484, 2, 276, 418] +[:mouse_move, 540, 489, 2, 277, 419] +[:mouse_move, 532, 496, 2, 278, 420] +[:mouse_move, 525, 504, 2, 279, 421] +[:mouse_move, 521, 512, 2, 280, 422] +[:mouse_move, 520, 521, 2, 281, 423] +[:mouse_move, 520, 532, 2, 282, 424] +[:mouse_move, 522, 541, 2, 283, 425] +[:mouse_move, 524, 549, 2, 284, 426] +[:mouse_move, 529, 555, 2, 285, 427] +[:mouse_move, 534, 561, 2, 286, 428] +[:mouse_move, 541, 568, 2, 287, 429] +[:mouse_move, 555, 576, 2, 288, 430] +[:mouse_move, 572, 583, 2, 289, 431] +[:mouse_move, 596, 588, 2, 290, 432] +[:mouse_move, 628, 595, 2, 291, 433] +[:mouse_move, 663, 598, 2, 292, 434] +[:mouse_move, 698, 600, 2, 293, 435] +[:mouse_move, 730, 599, 2, 294, 436] +[:mouse_move, 762, 598, 2, 295, 437] +[:mouse_move, 787, 596, 2, 296, 438] +[:mouse_move, 806, 592, 2, 297, 439] +[:mouse_move, 818, 588, 2, 298, 440] +[:mouse_move, 824, 584, 2, 299, 441] +[:mouse_move, 826, 581, 2, 300, 442] +[:mouse_move, 827, 578, 2, 301, 443] +[:mouse_move, 827, 576, 2, 302, 444] +[:mouse_move, 827, 573, 2, 303, 445] +[:mouse_move, 827, 572, 2, 304, 446] +[:mouse_move, 827, 571, 2, 305, 448] +[:mouse_move, 826, 570, 2, 306, 486] +[:mouse_move, 826, 569, 2, 307, 487] +[:key_down_raw, 9, 0, 2, 308, 487] +[:mouse_move, 826, 568, 2, 309, 488] +[:mouse_move, 825, 568, 2, 310, 489] +[:mouse_move, 825, 567, 2, 311, 490] +[:key_up_raw, 9, 0, 2, 312, 494] +[:key_down_raw, 9, 0, 2, 313, 515] +[:key_up_raw, 9, 0, 2, 314, 525] +[:mouse_move, 824, 567, 2, 315, 535] +[:mouse_move, 821, 567, 2, 316, 536] +[:mouse_move, 816, 567, 2, 317, 537] +[:mouse_move, 808, 568, 2, 318, 538] +[:mouse_move, 803, 568, 2, 319, 539] +[:mouse_move, 797, 568, 2, 320, 540] +[:mouse_move, 792, 567, 2, 321, 541] +[:mouse_move, 788, 567, 2, 322, 542] +[:mouse_move, 786, 566, 2, 323, 543] +[:mouse_move, 785, 565, 2, 324, 544] +[:mouse_move, 784, 564, 2, 325, 545] +[:mouse_move, 779, 563, 2, 326, 546] +[:mouse_move, 774, 562, 2, 327, 547] +[:mouse_move, 771, 562, 2, 328, 548] +[:mouse_move, 766, 562, 2, 329, 549] +[:mouse_move, 761, 562, 2, 330, 550] +[:mouse_move, 755, 561, 2, 331, 551] +[:mouse_move, 748, 561, 2, 332, 552] +[:mouse_move, 740, 560, 2, 333, 553] +[:mouse_move, 733, 561, 2, 334, 554] +[:mouse_move, 726, 562, 2, 335, 555] +[:mouse_move, 720, 562, 2, 336, 556] +[:mouse_move, 713, 563, 2, 337, 557] +[:mouse_move, 707, 565, 2, 338, 558] +[:mouse_move, 702, 566, 2, 339, 559] +[:mouse_move, 701, 566, 2, 340, 560] +[:mouse_move, 702, 566, 2, 341, 561] +[:mouse_move, 706, 566, 2, 342, 562] +[:mouse_move, 711, 565, 2, 343, 563] +[:mouse_move, 722, 564, 2, 344, 564] +[:mouse_move, 737, 562, 2, 345, 565] +[:mouse_move, 747, 560, 2, 346, 566] +[:mouse_move, 749, 560, 2, 347, 567] +[:mouse_move, 745, 560, 2, 348, 569] +[:mouse_move, 724, 557, 2, 349, 570] +[:mouse_move, 697, 557, 2, 350, 571] +[:mouse_move, 678, 558, 2, 351, 572] +[:mouse_move, 663, 561, 2, 352, 573] +[:mouse_move, 660, 561, 2, 353, 574] +[:mouse_move, 661, 560, 2, 354, 575] +[:mouse_move, 665, 556, 2, 355, 576] +[:mouse_move, 674, 554, 2, 356, 577] +[:mouse_move, 693, 551, 2, 357, 578] +[:mouse_move, 723, 548, 2, 358, 579] +[:mouse_move, 742, 546, 2, 359, 580] +[:mouse_move, 746, 546, 2, 360, 581] +[:mouse_move, 742, 547, 2, 361, 583] +[:mouse_move, 724, 548, 2, 362, 584] +[:mouse_move, 702, 552, 2, 363, 585] +[:mouse_move, 684, 556, 2, 364, 586] +[:mouse_move, 673, 558, 2, 365, 587] +[:mouse_move, 668, 560, 2, 366, 588] +[:mouse_move, 669, 560, 2, 367, 590] +[:mouse_move, 678, 560, 2, 368, 591] +[:mouse_move, 696, 560, 2, 369, 592] +[:mouse_move, 714, 560, 2, 370, 593] +[:mouse_move, 729, 558, 2, 371, 594] +[:mouse_move, 736, 558, 2, 372, 595] +[:mouse_move, 732, 558, 2, 373, 597] +[:mouse_move, 718, 560, 2, 374, 598] +[:mouse_move, 701, 563, 2, 375, 599] +[:mouse_move, 685, 566, 2, 376, 600] +[:mouse_move, 676, 569, 2, 377, 601] +[:mouse_move, 674, 569, 2, 378, 602] +[:mouse_move, 680, 569, 2, 379, 604] +[:mouse_move, 696, 567, 2, 380, 605] +[:mouse_move, 712, 564, 2, 381, 606] +[:mouse_move, 723, 562, 2, 382, 607] +[:mouse_move, 727, 561, 2, 383, 608] +[:mouse_move, 724, 561, 2, 384, 610] +[:mouse_move, 708, 563, 2, 385, 611] +[:mouse_move, 693, 565, 2, 386, 612] +[:mouse_move, 686, 567, 2, 387, 613] +[:mouse_move, 690, 565, 2, 388, 616] +[:mouse_move, 695, 563, 2, 389, 617] +[:mouse_move, 696, 563, 2, 390, 618] +[:mouse_move, 693, 564, 2, 391, 626] +[:mouse_move, 689, 565, 2, 392, 627] +[:mouse_move, 685, 566, 2, 393, 628] +[:mouse_move, 683, 567, 2, 394, 629] +[:mouse_move, 683, 566, 2, 395, 633] +[:mouse_move, 684, 566, 2, 396, 634] +[:key_down_raw, 13, 0, 2, 397, 730] +[:key_up_raw, 13, 0, 2, 398, 735] +[:mouse_move, 681, 567, 2, 399, 888] +[:mouse_move, 675, 566, 2, 400, 889] +[:mouse_move, 660, 562, 2, 401, 890] +[:mouse_move, 641, 554, 2, 402, 891] +[:mouse_move, 600, 541, 2, 403, 892] +[:mouse_move, 568, 532, 2, 404, 893] +[:mouse_move, 565, 532, 2, 405, 894] +[:mouse_move, 579, 533, 2, 406, 895] +[:mouse_move, 597, 531, 2, 407, 896] +[:mouse_move, 612, 530, 2, 408, 897] +[:mouse_move, 616, 529, 2, 409, 898] +[:mouse_move, 613, 529, 2, 410, 904] +[:mouse_move, 602, 531, 2, 411, 905] +[:mouse_move, 536, 530, 2, 412, 906] +[:mouse_move, 422, 494, 2, 413, 907] +[:mouse_move, 364, 443, 2, 414, 908] +[:mouse_move, 350, 420, 2, 415, 909] +[:mouse_move, 340, 404, 2, 416, 910] +[:mouse_move, 318, 384, 2, 417, 911] +[:mouse_move, 298, 366, 2, 418, 912] +[:mouse_move, 289, 357, 2, 419, 913] +[:mouse_move, 289, 356, 2, 420, 913] +[:mouse_move, 285, 352, 2, 421, 914] +[:mouse_move, 283, 345, 2, 422, 915] +[:mouse_move, 282, 339, 2, 423, 916] +[:mouse_move, 279, 328, 2, 424, 917] +[:mouse_move, 275, 311, 2, 425, 918] +[:mouse_move, 268, 294, 2, 426, 919] +[:mouse_move, 263, 285, 2, 427, 920] +[:mouse_move, 253, 277, 2, 428, 921] +[:mouse_move, 229, 258, 2, 429, 922] +[:mouse_move, 183, 222, 2, 430, 923] +[:mouse_move, 144, 196, 2, 431, 924] +[:mouse_move, 119, 178, 2, 432, 925] +[:mouse_move, 101, 165, 2, 433, 926] +[:mouse_move, 86, 154, 2, 434, 927] +[:mouse_move, 78, 147, 2, 435, 928] +[:mouse_move, 74, 142, 2, 436, 929] +[:mouse_move, 71, 138, 2, 437, 930] +[:mouse_move, 67, 133, 2, 438, 931] +[:mouse_move, 60, 130, 2, 439, 932] +[:mouse_move, 56, 125, 2, 440, 933] +[:mouse_move, 55, 124, 2, 441, 934] +[:mouse_move, 54, 124, 2, 442, 941] +[:mouse_move, 51, 122, 2, 443, 942] +[:mouse_move, 40, 117, 2, 444, 943] +[:mouse_move, 32, 112, 2, 445, 944] +[:mouse_move, 26, 108, 2, 446, 945] +[:mouse_move, 25, 108, 2, 447, 946] +[:mouse_move, 25, 107, 2, 448, 949] +[:mouse_move, 27, 108, 2, 449, 952] +[:mouse_move, 34, 110, 2, 450, 953] +[:mouse_move, 43, 112, 2, 451, 954] +[:mouse_move, 53, 113, 2, 452, 955] +[:mouse_move, 65, 114, 2, 453, 956] +[:mouse_move, 81, 114, 2, 454, 957] +[:mouse_move, 96, 115, 2, 455, 958] +[:mouse_move, 112, 116, 2, 456, 959] +[:mouse_move, 118, 117, 2, 457, 960] +[:mouse_move, 123, 117, 2, 458, 961] +[:mouse_move, 130, 117, 2, 459, 962] +[:mouse_move, 134, 117, 2, 460, 963] +[:mouse_move, 138, 117, 2, 461, 964] +[:mouse_move, 142, 117, 2, 462, 965] +[:mouse_move, 148, 117, 2, 463, 966] +[:mouse_move, 151, 117, 2, 464, 967] +[:mouse_move, 155, 116, 2, 465, 968] +[:mouse_move, 157, 115, 2, 466, 969] +[:mouse_move, 161, 115, 2, 467, 970] +[:mouse_move, 163, 114, 2, 468, 971] +[:mouse_move, 164, 114, 2, 469, 972] +[:mouse_move, 166, 114, 2, 470, 973] +[:mouse_move, 168, 114, 2, 471, 974] +[:mouse_move, 171, 115, 2, 472, 975] +[:mouse_move, 178, 116, 2, 473, 976] +[:mouse_move, 188, 117, 2, 474, 977] +[:mouse_move, 200, 117, 2, 475, 978] +[:mouse_move, 210, 117, 2, 476, 979] +[:mouse_move, 217, 117, 2, 477, 980] +[:mouse_move, 224, 117, 2, 478, 981] +[:mouse_move, 230, 117, 2, 479, 982] +[:mouse_move, 233, 116, 2, 480, 983] +[:mouse_move, 234, 116, 2, 481, 984] +[:mouse_move, 235, 116, 2, 482, 985] +[:mouse_move, 234, 116, 2, 483, 994] +[:key_down_raw, 32, 0, 2, 484, 998] +[:key_up_raw, 32, 0, 2, 485, 1004] +[:key_down_raw, 32, 0, 2, 486, 1008] +[:key_up_raw, 32, 0, 2, 487, 1013] +[:key_down_raw, 32, 0, 2, 488, 1017] +[:key_up_raw, 32, 0, 2, 489, 1021] +[:key_down_raw, 32, 0, 2, 490, 1025] +[:key_up_raw, 32, 0, 2, 491, 1029] +[:key_down_raw, 32, 0, 2, 492, 1034] +[:key_up_raw, 32, 0, 2, 493, 1037] +[:key_down_raw, 32, 0, 2, 494, 1042] +[:key_up_raw, 32, 0, 2, 495, 1046] +[:mouse_move, 244, 118, 2, 496, 1052] +[:mouse_move, 304, 142, 2, 497, 1053] +[:mouse_move, 425, 192, 2, 498, 1054] +[:mouse_move, 494, 240, 2, 499, 1055] +[:mouse_move, 513, 264, 2, 500, 1056] +[:mouse_move, 516, 272, 2, 501, 1057] +[:mouse_move, 520, 279, 2, 502, 1058] +[:mouse_move, 531, 290, 2, 503, 1059] +[:mouse_move, 548, 301, 2, 504, 1060] +[:mouse_move, 567, 311, 2, 505, 1061] +[:mouse_move, 584, 316, 2, 506, 1062] +[:mouse_move, 598, 318, 2, 507, 1063] +[:mouse_move, 605, 318, 2, 508, 1064] +[:mouse_move, 612, 317, 2, 509, 1065] +[:mouse_move, 618, 317, 2, 510, 1066] +[:mouse_move, 625, 317, 2, 511, 1067] +[:mouse_move, 629, 316, 2, 512, 1068] +[:mouse_move, 632, 315, 2, 513, 1069] +[:key_down_raw, 32, 0, 2, 514, 1083] +[:key_up_raw, 32, 0, 2, 515, 1089] +[:mouse_move, 633, 316, 2, 516, 1094] +[:mouse_move, 640, 325, 2, 517, 1095] +[:mouse_move, 653, 337, 2, 518, 1096] +[:mouse_move, 679, 349, 2, 519, 1097] +[:mouse_move, 708, 359, 2, 520, 1098] +[:mouse_move, 742, 368, 2, 521, 1099] +[:mouse_move, 771, 374, 2, 522, 1100] +[:mouse_move, 792, 380, 2, 523, 1101] +[:mouse_move, 807, 386, 2, 524, 1102] +[:mouse_move, 818, 389, 2, 525, 1103] +[:mouse_move, 825, 391, 2, 526, 1104] +[:mouse_move, 827, 392, 2, 527, 1105] +[:mouse_move, 828, 392, 2, 528, 1106] +[:mouse_move, 828, 393, 2, 529, 1108] +[:mouse_move, 834, 396, 2, 530, 1109] +[:mouse_move, 839, 402, 2, 531, 1110] +[:mouse_move, 841, 404, 2, 532, 1111] +[:key_down_raw, 32, 0, 2, 533, 1112] +[:key_up_raw, 32, 0, 2, 534, 1117] +[:key_down_raw, 32, 0, 2, 535, 1136] +[:key_up_raw, 32, 0, 2, 536, 1141] +[:key_down_raw, 32, 0, 2, 537, 1150] +[:key_up_raw, 32, 0, 2, 538, 1156] +[:key_down_raw, 32, 0, 2, 539, 1161] +[:key_up_raw, 32, 0, 2, 540, 1165] +[:key_down_raw, 32, 0, 2, 541, 1188] +[:key_up_raw, 32, 0, 2, 542, 1195] +[:key_down_raw, 32, 0, 2, 543, 1216] +[:key_up_raw, 32, 0, 2, 544, 1222] +[:key_down_raw, 32, 0, 2, 545, 1242] +[:key_up_raw, 32, 0, 2, 546, 1248] +[:key_down_raw, 32, 0, 2, 547, 1255] +[:key_up_raw, 32, 0, 2, 548, 1260] +[:key_down_raw, 32, 0, 2, 549, 1264] +[:key_up_raw, 32, 0, 2, 550, 1267] +[:key_down_raw, 32, 0, 2, 551, 1283] +[:key_up_raw, 32, 0, 2, 552, 1290] +[:key_down_raw, 32, 0, 2, 553, 1329] +[:key_up_raw, 32, 0, 2, 554, 1336] +[:key_down_raw, 32, 0, 2, 555, 1349] +[:key_up_raw, 32, 0, 2, 556, 1354] +[:key_down_raw, 32, 0, 2, 557, 1359] +[:key_up_raw, 32, 0, 2, 558, 1363] +[:key_down_raw, 32, 0, 2, 559, 1387] +[:key_up_raw, 32, 0, 2, 560, 1393] +[:key_down_raw, 32, 0, 2, 561, 1416] +[:key_up_raw, 32, 0, 2, 562, 1422] +[:key_down_raw, 32, 0, 2, 563, 1428] +[:key_up_raw, 32, 0, 2, 564, 1431] +[:key_down_raw, 32, 0, 2, 565, 1436] +[:key_up_raw, 32, 0, 2, 566, 1440] +[:key_down_raw, 32, 0, 2, 567, 1445] +[:key_up_raw, 32, 0, 2, 568, 1448] +[:key_down_raw, 32, 0, 2, 569, 1472] +[:key_up_raw, 32, 0, 2, 570, 1481] +[:key_down_raw, 32, 0, 2, 571, 1504] +[:key_up_raw, 32, 0, 2, 572, 1509] +[:key_down_raw, 32, 0, 2, 573, 1531] +[:key_up_raw, 32, 0, 2, 574, 1537] +[:key_down_raw, 32, 0, 2, 575, 1555] +[:key_up_raw, 32, 0, 2, 576, 1559] +[:key_down_raw, 32, 0, 2, 577, 1565] +[:key_up_raw, 32, 0, 2, 578, 1569] +[:key_down_raw, 32, 0, 2, 579, 1590] +[:key_up_raw, 32, 0, 2, 580, 1594] +[:key_down_raw, 32, 0, 2, 581, 1600] +[:key_up_raw, 32, 0, 2, 582, 1604] +[:key_down_raw, 32, 0, 2, 583, 1609] +[:key_up_raw, 32, 0, 2, 584, 1612] +[:key_down_raw, 32, 0, 2, 585, 1617] +[:key_up_raw, 32, 0, 2, 586, 1621] +[:key_down_raw, 32, 0, 2, 587, 1653] +[:key_up_raw, 32, 0, 2, 588, 1658] +[:key_down_raw, 32, 0, 2, 589, 1669] +[:key_up_raw, 32, 0, 2, 590, 1674] +[:key_down_raw, 32, 0, 2, 591, 1701] +[:key_up_raw, 32, 0, 2, 592, 1706] +[:key_down_raw, 32, 0, 2, 593, 1712] +[:key_up_raw, 32, 0, 2, 594, 1716] +[:key_down_raw, 32, 0, 2, 595, 1722] +[:key_up_raw, 32, 0, 2, 596, 1725] +[:key_down_raw, 32, 0, 2, 597, 1730] +[:key_up_raw, 32, 0, 2, 598, 1733] +[:key_down_raw, 32, 0, 2, 599, 1738] +[:key_up_raw, 32, 0, 2, 600, 1743] +[:key_down_raw, 32, 0, 2, 601, 1769] +[:key_up_raw, 32, 0, 2, 602, 1775] +[:key_down_raw, 32, 0, 2, 603, 1790] +[:key_up_raw, 32, 0, 2, 604, 1795] +[:key_down_raw, 32, 0, 2, 605, 1835] +[:key_up_raw, 32, 0, 2, 606, 1841] +[:key_down_raw, 32, 0, 2, 607, 1850] +[:key_up_raw, 32, 0, 2, 608, 1856] +[:key_down_raw, 32, 0, 2, 609, 1877] +[:key_up_raw, 32, 0, 2, 610, 1884] +[:key_down_raw, 32, 0, 2, 611, 1904] +[:key_up_raw, 32, 0, 2, 612, 1908] +[:key_down_raw, 32, 0, 2, 613, 1935] +[:key_up_raw, 32, 0, 2, 614, 1940] +[:key_down_raw, 32, 0, 2, 615, 1950] +[:key_up_raw, 32, 0, 2, 616, 1956] +[:key_down_raw, 32, 0, 2, 617, 1962] +[:key_up_raw, 32, 0, 2, 618, 1966] +[:key_down_raw, 32, 0, 2, 619, 1993] +[:key_up_raw, 32, 0, 2, 620, 1999] +[:mouse_move, 828, 408, 2, 621, 2035] +[:mouse_move, 797, 419, 2, 622, 2036] +[:mouse_move, 775, 427, 2, 623, 2037] +[:mouse_move, 766, 429, 2, 624, 2038] +[:mouse_move, 763, 430, 2, 625, 2039] +[:mouse_move, 759, 433, 2, 626, 2040] +[:mouse_move, 756, 433, 2, 627, 2041] +[:mouse_move, 752, 433, 2, 628, 2042] +[:mouse_move, 746, 432, 2, 629, 2043] +[:mouse_move, 740, 430, 2, 630, 2044] +[:mouse_move, 728, 429, 2, 631, 2045] +[:mouse_move, 713, 427, 2, 632, 2046] +[:mouse_move, 697, 427, 2, 633, 2047] +[:mouse_move, 685, 429, 2, 634, 2048] +[:mouse_move, 678, 432, 2, 635, 2049] +[:mouse_move, 675, 433, 2, 636, 2050] +[:mouse_move, 673, 433, 2, 637, 2051] +[:mouse_move, 670, 433, 2, 638, 2052] +[:mouse_move, 665, 433, 2, 639, 2053] +[:mouse_move, 659, 432, 2, 640, 2054] +[:mouse_move, 654, 433, 2, 641, 2055] +[:mouse_move, 654, 434, 2, 642, 2056] +[:mouse_move, 659, 440, 2, 643, 2057] +[:mouse_move, 670, 450, 2, 644, 2058] +[:mouse_move, 685, 458, 2, 645, 2059] +[:mouse_move, 708, 462, 2, 646, 2060] +[:mouse_move, 745, 461, 2, 647, 2061] +[:mouse_move, 792, 455, 2, 648, 2062] +[:mouse_move, 827, 443, 2, 649, 2063] +[:mouse_move, 848, 429, 2, 650, 2064] +[:mouse_move, 861, 412, 2, 651, 2065] +[:mouse_move, 868, 393, 2, 652, 2066] +[:mouse_move, 868, 373, 2, 653, 2067] +[:mouse_move, 859, 352, 2, 654, 2068] +[:mouse_move, 844, 334, 2, 655, 2069] +[:mouse_move, 830, 320, 2, 656, 2070] +[:mouse_move, 812, 305, 2, 657, 2071] +[:mouse_move, 787, 288, 2, 658, 2072] +[:mouse_move, 747, 266, 2, 659, 2073] +[:mouse_move, 696, 245, 2, 660, 2074] +[:mouse_move, 653, 236, 2, 661, 2075] +[:mouse_move, 622, 233, 2, 662, 2076] +[:mouse_move, 598, 232, 2, 663, 2077] +[:mouse_move, 576, 231, 2, 664, 2078] +[:mouse_move, 553, 230, 2, 665, 2079] +[:mouse_move, 535, 233, 2, 666, 2080] +[:mouse_move, 519, 238, 2, 667, 2081] +[:mouse_move, 503, 246, 2, 668, 2082] +[:mouse_move, 490, 256, 2, 669, 2083] +[:mouse_move, 482, 265, 2, 670, 2084] +[:mouse_move, 472, 276, 2, 671, 2085] +[:mouse_move, 464, 289, 2, 672, 2086] +[:mouse_move, 459, 302, 2, 673, 2087] +[:mouse_move, 457, 318, 2, 674, 2088] +[:mouse_move, 457, 337, 2, 675, 2089] +[:mouse_move, 461, 354, 2, 676, 2090] +[:mouse_move, 471, 368, 2, 677, 2091] +[:mouse_move, 484, 378, 2, 678, 2092] +[:mouse_move, 504, 389, 2, 679, 2093] +[:mouse_move, 536, 402, 2, 680, 2094] +[:mouse_move, 574, 413, 2, 681, 2095] +[:mouse_move, 613, 424, 2, 682, 2096] +[:mouse_move, 658, 430, 2, 683, 2097] +[:mouse_move, 695, 434, 2, 684, 2098] +[:mouse_move, 722, 435, 2, 685, 2099] +[:mouse_move, 748, 432, 2, 686, 2100] +[:mouse_move, 769, 425, 2, 687, 2101] +[:mouse_move, 784, 417, 2, 688, 2102] +[:mouse_move, 796, 408, 2, 689, 2103] +[:mouse_move, 804, 398, 2, 690, 2104] +[:mouse_move, 808, 385, 2, 691, 2105] +[:mouse_move, 809, 364, 2, 692, 2106] +[:mouse_move, 805, 342, 2, 693, 2107] +[:mouse_move, 798, 326, 2, 694, 2108] +[:mouse_move, 790, 313, 2, 695, 2109] +[:mouse_move, 777, 302, 2, 696, 2110] +[:mouse_move, 756, 288, 2, 697, 2111] +[:mouse_move, 724, 266, 2, 698, 2112] +[:mouse_move, 688, 245, 2, 699, 2113] +[:mouse_move, 656, 234, 2, 700, 2114] +[:mouse_move, 630, 229, 2, 701, 2115] +[:mouse_move, 610, 225, 2, 702, 2116] +[:mouse_move, 592, 221, 2, 703, 2117] +[:mouse_move, 569, 218, 2, 704, 2118] +[:mouse_move, 547, 218, 2, 705, 2119] +[:mouse_move, 532, 224, 2, 706, 2120] +[:mouse_move, 518, 233, 2, 707, 2121] +[:mouse_move, 506, 244, 2, 708, 2122] +[:mouse_move, 494, 257, 2, 709, 2123] +[:mouse_move, 481, 278, 2, 710, 2124] +[:mouse_move, 467, 304, 2, 711, 2125] +[:mouse_move, 462, 322, 2, 712, 2126] +[:mouse_move, 465, 338, 2, 713, 2127] +[:mouse_move, 471, 352, 2, 714, 2128] +[:mouse_move, 483, 365, 2, 715, 2129] +[:mouse_move, 498, 379, 2, 716, 2130] +[:mouse_move, 519, 392, 2, 717, 2131] +[:mouse_move, 550, 404, 2, 718, 2132] +[:mouse_move, 594, 413, 2, 719, 2133] +[:mouse_move, 643, 416, 2, 720, 2134] +[:mouse_move, 686, 410, 2, 721, 2135] +[:mouse_move, 727, 398, 2, 722, 2136] +[:mouse_move, 762, 380, 2, 723, 2137] +[:mouse_move, 786, 358, 2, 724, 2138] +[:mouse_move, 797, 327, 2, 725, 2139] +[:mouse_move, 798, 289, 2, 726, 2140] +[:mouse_move, 790, 258, 2, 727, 2141] +[:mouse_move, 777, 238, 2, 728, 2142] +[:mouse_move, 769, 231, 2, 729, 2143] +[:mouse_move, 762, 229, 2, 730, 2144] +[:mouse_move, 756, 227, 2, 731, 2145] +[:mouse_move, 747, 229, 2, 732, 2146] +[:mouse_move, 741, 233, 2, 733, 2147] +[:mouse_move, 734, 242, 2, 734, 2148] +[:mouse_move, 726, 256, 2, 735, 2149] +[:mouse_move, 716, 278, 2, 736, 2150] +[:mouse_move, 712, 304, 2, 737, 2151] +[:mouse_move, 711, 323, 2, 738, 2152] +[:mouse_move, 712, 336, 2, 739, 2153] +[:mouse_move, 712, 344, 2, 740, 2154] +[:mouse_move, 711, 352, 2, 741, 2155] +[:mouse_move, 708, 356, 2, 742, 2156] +[:mouse_move, 706, 359, 2, 743, 2157] +[:mouse_move, 705, 359, 2, 744, 2187] +[:mouse_move, 704, 360, 2, 745, 2188] +[:mouse_move, 702, 361, 2, 746, 2189] +[:mouse_move, 701, 362, 2, 747, 2196] +[:mouse_move, 698, 363, 2, 748, 2197] +[:mouse_move, 694, 364, 2, 749, 2198] +[:mouse_move, 690, 365, 2, 750, 2199] +[:mouse_move, 685, 368, 2, 751, 2200] +[:mouse_move, 682, 370, 2, 752, 2201] +[:mouse_move, 679, 371, 2, 753, 2202] +[:mouse_move, 679, 370, 2, 754, 2210] +[:mouse_move, 674, 368, 2, 755, 2211] +[:mouse_move, 664, 363, 2, 756, 2212] +[:mouse_move, 654, 361, 2, 757, 2213] +[:mouse_move, 644, 359, 2, 758, 2214] +[:mouse_move, 635, 357, 2, 759, 2215] +[:mouse_move, 629, 356, 2, 760, 2216] +[:mouse_move, 627, 355, 2, 761, 2217] +[:mouse_move, 628, 354, 2, 762, 2219] +[:mouse_move, 630, 354, 2, 763, 2220] +[:mouse_move, 631, 354, 2, 764, 2221] +[:mouse_move, 632, 354, 2, 765, 2222] +[:mouse_move, 633, 354, 2, 766, 2223] +[:mouse_move, 631, 354, 2, 767, 2234] +[:mouse_move, 627, 355, 2, 768, 2235] +[:mouse_move, 621, 356, 2, 769, 2236] +[:mouse_move, 612, 356, 2, 770, 2237] +[:mouse_move, 602, 356, 2, 771, 2238] +[:mouse_move, 598, 356, 2, 772, 2239] +[:mouse_move, 599, 356, 2, 773, 2244] +[:mouse_move, 599, 355, 2, 774, 2245] +[:mouse_move, 600, 355, 2, 775, 2246] +[:mouse_move, 599, 356, 2, 776, 2250] +[:key_down_raw, 32, 0, 2, 777, 2258] +[:key_up_raw, 32, 0, 2, 778, 2263] +[:key_down_raw, 32, 0, 2, 779, 2268] +[:mouse_move, 605, 359, 2, 780, 2271] +[:mouse_move, 622, 365, 2, 781, 2272] +[:key_up_raw, 32, 0, 2, 782, 2272] +[:mouse_move, 648, 377, 2, 783, 2273] +[:mouse_move, 673, 393, 2, 784, 2274] +[:mouse_move, 689, 406, 2, 785, 2275] +[:mouse_move, 700, 413, 2, 786, 2276] +[:mouse_move, 709, 418, 2, 787, 2277] +[:key_down_raw, 32, 0, 2, 788, 2277] +[:mouse_move, 711, 419, 2, 789, 2277] +[:mouse_move, 718, 421, 2, 790, 2278] +[:mouse_move, 724, 423, 2, 791, 2279] +[:mouse_move, 728, 425, 2, 792, 2280] +[:mouse_move, 730, 426, 2, 793, 2281] +[:key_up_raw, 32, 0, 2, 794, 2281] +[:key_down_raw, 32, 0, 2, 795, 2286] +[:mouse_move, 731, 425, 2, 796, 2286] +[:key_up_raw, 32, 0, 2, 797, 2290] +[:key_down_raw, 32, 0, 2, 798, 2294] +[:mouse_move, 732, 425, 2, 799, 2294] +[:key_up_raw, 32, 0, 2, 800, 2298] +[:mouse_move, 732, 424, 2, 801, 2298] +[:key_down_raw, 32, 0, 2, 802, 2302] +[:key_up_raw, 32, 0, 2, 803, 2306] +[:key_down_raw, 32, 0, 2, 804, 2311] +[:key_up_raw, 32, 0, 2, 805, 2315] +[:key_down_raw, 32, 0, 2, 806, 2347] +[:key_up_raw, 32, 0, 2, 807, 2352] +[:key_down_raw, 32, 0, 2, 808, 2374] +[:key_up_raw, 32, 0, 2, 809, 2379] +[:key_down_raw, 32, 0, 2, 810, 2386] +[:key_up_raw, 32, 0, 2, 811, 2389] +[:key_down_raw, 32, 0, 2, 812, 2395] +[:mouse_move, 721, 424, 2, 813, 2397] +[:mouse_move, 706, 425, 2, 814, 2398] +[:mouse_move, 695, 428, 2, 815, 2399] +[:key_up_raw, 32, 0, 2, 816, 2399] +[:mouse_move, 689, 430, 2, 817, 2400] +[:mouse_move, 684, 433, 2, 818, 2401] +[:mouse_move, 680, 433, 2, 819, 2402] +[:mouse_move, 676, 432, 2, 820, 2403] +[:mouse_move, 670, 429, 2, 821, 2404] +[:mouse_move, 668, 429, 2, 822, 2405] +[:key_down_raw, 32, 0, 2, 823, 2405] +[:mouse_move, 667, 429, 2, 824, 2405] +[:key_up_raw, 32, 0, 2, 825, 2410] +[:mouse_move, 668, 428, 2, 826, 2415] +[:mouse_move, 669, 426, 2, 827, 2416] +[:mouse_move, 669, 425, 2, 828, 2417] +[:mouse_move, 669, 424, 2, 829, 2418] +[:mouse_move, 668, 423, 2, 830, 2419] +[:mouse_move, 666, 421, 2, 831, 2436] +[:mouse_move, 664, 421, 2, 832, 2437] +[:mouse_move, 661, 420, 2, 833, 2438] +[:mouse_move, 659, 419, 2, 834, 2439] +[:mouse_move, 657, 418, 2, 835, 2440] +[:mouse_move, 656, 418, 2, 836, 2441] +[:mouse_move, 653, 418, 2, 837, 2442] +[:mouse_move, 652, 418, 2, 838, 2443] +[:mouse_move, 651, 417, 2, 839, 2444] +[:mouse_move, 650, 417, 2, 840, 2464] +[:mouse_move, 646, 418, 2, 841, 2465] +[:mouse_move, 636, 417, 2, 842, 2466] +[:mouse_move, 624, 413, 2, 843, 2467] +[:mouse_move, 612, 411, 2, 844, 2468] +[:mouse_move, 605, 410, 2, 845, 2469] +[:mouse_move, 601, 409, 2, 846, 2470] +[:mouse_move, 597, 408, 2, 847, 2471] +[:mouse_move, 592, 407, 2, 848, 2472] +[:mouse_move, 586, 406, 2, 849, 2473] +[:mouse_move, 579, 406, 2, 850, 2474] +[:mouse_move, 570, 407, 2, 851, 2475] +[:mouse_move, 564, 409, 2, 852, 2476] +[:mouse_move, 561, 413, 2, 853, 2477] +[:mouse_move, 558, 418, 2, 854, 2478] +[:mouse_move, 561, 424, 2, 855, 2479] +[:mouse_move, 573, 437, 2, 856, 2480] +[:mouse_move, 600, 454, 2, 857, 2481] +[:mouse_move, 643, 473, 2, 858, 2482] +[:mouse_move, 698, 487, 2, 859, 2483] +[:mouse_move, 763, 494, 2, 860, 2484] +[:mouse_move, 839, 496, 2, 861, 2485] +[:mouse_move, 900, 489, 2, 862, 2486] +[:mouse_move, 935, 483, 2, 863, 2487] +[:mouse_move, 951, 475, 2, 864, 2488] +[:mouse_move, 955, 469, 2, 865, 2489] +[:mouse_move, 956, 459, 2, 866, 2490] +[:mouse_move, 953, 444, 2, 867, 2491] +[:mouse_move, 947, 427, 2, 868, 2492] +[:mouse_move, 934, 409, 2, 869, 2493] +[:mouse_move, 909, 386, 2, 870, 2494] +[:mouse_move, 876, 362, 2, 871, 2495] +[:mouse_move, 851, 346, 2, 872, 2496] +[:mouse_move, 834, 336, 2, 873, 2497] +[:mouse_move, 820, 325, 2, 874, 2498] +[:mouse_move, 797, 313, 2, 875, 2499] +[:mouse_move, 766, 299, 2, 876, 2500] +[:mouse_move, 724, 280, 2, 877, 2501] +[:mouse_move, 685, 269, 2, 878, 2502] +[:mouse_move, 664, 266, 2, 879, 2503] +[:mouse_move, 650, 266, 2, 880, 2504] +[:mouse_move, 640, 266, 2, 881, 2505] +[:mouse_move, 625, 266, 2, 882, 2506] +[:mouse_move, 603, 268, 2, 883, 2507] +[:mouse_move, 580, 273, 2, 884, 2508] +[:mouse_move, 564, 278, 2, 885, 2509] +[:mouse_move, 553, 283, 2, 886, 2510] +[:mouse_move, 541, 291, 2, 887, 2511] +[:mouse_move, 531, 297, 2, 888, 2512] +[:mouse_move, 520, 305, 2, 889, 2513] +[:mouse_move, 510, 315, 2, 890, 2514] +[:mouse_move, 503, 328, 2, 891, 2515] +[:mouse_move, 499, 339, 2, 892, 2516] +[:mouse_move, 497, 348, 2, 893, 2517] +[:mouse_move, 497, 358, 2, 894, 2518] +[:mouse_move, 504, 372, 2, 895, 2519] +[:mouse_move, 516, 387, 2, 896, 2520] +[:mouse_move, 532, 398, 2, 897, 2521] +[:mouse_move, 552, 409, 2, 898, 2522] +[:mouse_move, 573, 419, 2, 899, 2523] +[:mouse_move, 595, 428, 2, 900, 2524] +[:mouse_move, 620, 440, 2, 901, 2525] +[:mouse_move, 650, 449, 2, 902, 2526] +[:mouse_move, 685, 456, 2, 903, 2527] +[:mouse_move, 722, 459, 2, 904, 2528] +[:mouse_move, 760, 460, 2, 905, 2529] +[:mouse_move, 787, 458, 2, 906, 2530] +[:mouse_move, 813, 455, 2, 907, 2531] +[:mouse_move, 832, 451, 2, 908, 2532] +[:mouse_move, 842, 444, 2, 909, 2533] +[:mouse_move, 848, 439, 2, 910, 2534] +[:mouse_move, 851, 429, 2, 911, 2535] +[:mouse_move, 851, 417, 2, 912, 2536] +[:mouse_move, 848, 404, 2, 913, 2537] +[:mouse_move, 844, 396, 2, 914, 2538] +[:mouse_move, 842, 392, 2, 915, 2539] +[:mouse_move, 837, 387, 2, 916, 2540] +[:mouse_move, 828, 381, 2, 917, 2541] +[:mouse_move, 822, 377, 2, 918, 2542] +[:mouse_move, 820, 375, 2, 919, 2543] +[:mouse_move, 818, 375, 2, 920, 2544] +[:mouse_move, 817, 374, 2, 921, 2545] +[:mouse_move, 816, 374, 2, 922, 2550] +[:mouse_move, 813, 374, 2, 923, 2551] +[:mouse_move, 804, 373, 2, 924, 2552] +[:mouse_move, 785, 366, 2, 925, 2553] +[:mouse_move, 741, 348, 2, 926, 2554] +[:mouse_move, 669, 313, 2, 927, 2555] +[:mouse_move, 561, 261, 2, 928, 2556] +[:mouse_move, 432, 200, 2, 929, 2557] +[:mouse_move, 324, 152, 2, 930, 2558] +[:mouse_move, 237, 115, 2, 931, 2559] +[:mouse_move, 169, 82, 2, 932, 2560] +[:mouse_move, 116, 55, 2, 933, 2561] +[:mouse_move, 71, 38, 2, 934, 2562] +[:mouse_move, 42, 29, 2, 935, 2563] +[:mouse_move, 32, 27, 2, 936, 2564] +[:mouse_move, 24, 24, 2, 937, 2565] +[:mouse_move, 16, 22, 2, 938, 2566] +[:mouse_move, 10, 20, 2, 939, 2567] +[:mouse_move, 7, 18, 2, 940, 2568] +[:mouse_move, 4, 17, 2, 941, 2569] +[:mouse_move, 2, 14, 2, 942, 2570] +[:mouse_move, 0, 12, 2, 943, 2572] +[:mouse_move, -3, 11, 2, 944, 2573] +[:mouse_move, -4, 10, 2, 945, 2574] +[:mouse_move, -5, 9, 2, 946, 2578] +[:mouse_move, -8, 8, 2, 947, 2579] +[:mouse_move, -11, 6, 2, 948, 2580] +[:mouse_move, -14, 4, 2, 949, 2581] +[:mouse_move, -17, 3, 2, 950, 2582] +[:mouse_move, -18, 2, 2, 951, 2583] +[:mouse_move, -20, 0, 2, 952, 2584] +[:mouse_move, -22, 0, 2, 953, 2585] diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg b/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg Binary files differnew file mode 100644 index 0000000..aa02e8b --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sounds/flappy-song.ogg diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav b/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav Binary files differnew file mode 100644 index 0000000..d621920 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sounds/fly-sound.wav diff --git a/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav b/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav Binary files differnew file mode 100644 index 0000000..a701537 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sounds/hit-sound.wav diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/background.png b/samples/99_genre_arcade/flappy_dragon/sprites/background.png Binary files differnew file mode 100644 index 0000000..6a0a42b --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/background.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png Binary files differnew file mode 100644 index 0000000..bb312e9 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_die.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png Binary files differnew file mode 100644 index 0000000..fb179af --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly1.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png Binary files differnew file mode 100644 index 0000000..8cfe531 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly2.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png Binary files differnew file mode 100644 index 0000000..cb462e1 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly3.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png Binary files differnew file mode 100644 index 0000000..04c4977 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly4.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png Binary files differnew file mode 100644 index 0000000..b29fa3d --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly5.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png Binary files differnew file mode 100644 index 0000000..99f4e74 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/dragon_fly6.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png Binary files differnew file mode 100644 index 0000000..15c7e2f --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_back.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png Binary files differnew file mode 100644 index 0000000..44d6a8a --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_front.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png Binary files differnew file mode 100644 index 0000000..a3c16b1 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/parallax_middle.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/wall.png b/samples/99_genre_arcade/flappy_dragon/sprites/wall.png Binary files differnew file mode 100644 index 0000000..fe94955 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/wall.png diff --git a/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png b/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png Binary files differnew file mode 100644 index 0000000..1668be8 --- /dev/null +++ b/samples/99_genre_arcade/flappy_dragon/sprites/wallbottom.png diff --git a/samples/99_genre_arcade/pong/app/main.rb b/samples/99_genre_arcade/pong/app/main.rb new file mode 100644 index 0000000..bd4eb45 --- /dev/null +++ b/samples/99_genre_arcade/pong/app/main.rb @@ -0,0 +1,159 @@ +def tick args + defaults args + render args + calc args + input args +end + +def defaults args + args.state.ball.debounce ||= 3 * 60 + args.state.ball.size ||= 10 + args.state.ball.size_half ||= args.state.ball.size / 2 + args.state.ball.x ||= 640 + args.state.ball.y ||= 360 + args.state.ball.dx ||= 5.randomize(:sign) + args.state.ball.dy ||= 5.randomize(:sign) + args.state.left_paddle.y ||= 360 + args.state.right_paddle.y ||= 360 + args.state.paddle.h ||= 120 + args.state.paddle.w ||= 10 + args.state.left_paddle.score ||= 0 + args.state.right_paddle.score ||= 0 +end + +def render args + render_center_line args + render_scores args + render_countdown args + render_ball args + render_paddles args + render_instructions args +end + +begin :render_methods + def render_center_line args + args.outputs.lines << [640, 0, 640, 720] + end + + def render_scores args + args.outputs.labels << [ + [320, 650, args.state.left_paddle.score, 10, 1], + [960, 650, args.state.right_paddle.score, 10, 1] + ] + end + + def render_countdown args + return unless args.state.ball.debounce > 0 + args.outputs.labels << [640, 360, "%.2f" % args.state.ball.debounce.fdiv(60), 10, 1] + end + + def render_ball args + args.outputs.solids << solid_ball(args) + end + + def render_paddles args + args.outputs.solids << solid_left_paddle(args) + args.outputs.solids << solid_right_paddle(args) + end + + def render_instructions args + args.outputs.labels << [320, 30, "W and S keys to move left paddle.", 0, 1] + args.outputs.labels << [920, 30, "O and L keys to move right paddle.", 0, 1] + end +end + +def calc args + args.state.ball.debounce -= 1 and return if args.state.ball.debounce > 0 + calc_move_ball args + calc_collision_with_left_paddle args + calc_collision_with_right_paddle args + calc_collision_with_walls args +end + +begin :calc_methods + def calc_move_ball args + args.state.ball.x += args.state.ball.dx + args.state.ball.y += args.state.ball.dy + end + + def calc_collision_with_left_paddle args + if solid_left_paddle(args).intersect_rect? solid_ball(args) + args.state.ball.dx *= -1 + elsif args.state.ball.x < 0 + args.state.right_paddle.score += 1 + calc_reset_round args + end + end + + def calc_collision_with_right_paddle args + if solid_right_paddle(args).intersect_rect? solid_ball(args) + args.state.ball.dx *= -1 + elsif args.state.ball.x > 1280 + args.state.left_paddle.score += 1 + calc_reset_round args + end + end + + def calc_collision_with_walls args + if args.state.ball.y + args.state.ball.size_half > 720 + args.state.ball.y = 720 - args.state.ball.size_half + args.state.ball.dy *= -1 + elsif args.state.ball.y - args.state.ball.size_half < 0 + args.state.ball.y = args.state.ball.size_half + args.state.ball.dy *= -1 + end + end + + def calc_reset_round args + args.state.ball.x = 640 + args.state.ball.y = 360 + args.state.ball.dx = 5.randomize(:sign) + args.state.ball.dy = 5.randomize(:sign) + args.state.ball.debounce = 3 * 60 + end +end + +def input args + input_left_paddle args + input_right_paddle args +end + +begin :input_methods + def input_left_paddle args + if args.inputs.controller_one.key_down.down || args.inputs.keyboard.key_down.s + args.state.left_paddle.y -= 40 + elsif args.inputs.controller_one.key_down.up || args.inputs.keyboard.key_down.w + args.state.left_paddle.y += 40 + end + end + + def input_right_paddle args + if args.inputs.controller_two.key_down.down || args.inputs.keyboard.key_down.l + args.state.right_paddle.y -= 40 + elsif args.inputs.controller_two.key_down.up || args.inputs.keyboard.key_down.o + args.state.right_paddle.y += 40 + end + end +end + +begin :assets + def solid_ball args + centered_rect args.state.ball.x, args.state.ball.y, args.state.ball.size, args.state.ball.size + end + + def solid_left_paddle args + centered_rect_vertically 0, args.state.left_paddle.y, args.state.paddle.w, args.state.paddle.h + end + + def solid_right_paddle args + centered_rect_vertically 1280 - args.state.paddle.w, args.state.right_paddle.y, args.state.paddle.w, args.state.paddle.h + end + + def centered_rect x, y, w, h + [x - w / 2, y - h / 2, w, h] + end + + def centered_rect_vertically x, y, w, h + [x, y - h / 2, w, h] + end +end diff --git a/samples/99_genre_arcade/pong/license-for-sample.txt b/samples/99_genre_arcade/pong/license-for-sample.txt new file mode 100644 index 0000000..100dcec --- /dev/null +++ b/samples/99_genre_arcade/pong/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/99_genre_arcade/pong/replay.txt b/samples/99_genre_arcade/pong/replay.txt new file mode 100644 index 0000000..c7cc8ed --- /dev/null +++ b/samples/99_genre_arcade/pong/replay.txt @@ -0,0 +1,292 @@ +replay_version 2.0 +stopped_at 1167 +seed 100 +recorded_at Sun Sep 29 23:31:58 2019 +[:mouse_move, 846, 461, 2, 1, 84] +[:mouse_move, 819, 466, 2, 2, 85] +[:mouse_move, 773, 482, 2, 3, 86] +[:mouse_move, 755, 489, 2, 4, 87] +[:mouse_move, 729, 506, 2, 5, 88] +[:mouse_move, 706, 522, 2, 6, 89] +[:mouse_move, 686, 544, 2, 7, 90] +[:mouse_move, 677, 557, 2, 8, 91] +[:mouse_move, 672, 569, 2, 9, 92] +[:mouse_move, 670, 575, 2, 10, 93] +[:mouse_move, 669, 583, 2, 11, 94] +[:mouse_move, 668, 585, 2, 12, 95] +[:mouse_move, 667, 590, 2, 13, 96] +[:mouse_move, 663, 593, 2, 14, 97] +[:mouse_move, 653, 600, 2, 15, 98] +[:mouse_move, 645, 602, 2, 16, 99] +[:mouse_move, 604, 608, 2, 17, 100] +[:mouse_move, 557, 611, 2, 18, 101] +[:mouse_move, 467, 615, 2, 19, 102] +[:mouse_move, 410, 619, 2, 20, 103] +[:mouse_move, 291, 631, 2, 21, 104] +[:mouse_move, 268, 635, 2, 22, 105] +[:mouse_move, 221, 643, 2, 23, 106] +[:mouse_move, 195, 649, 2, 24, 107] +[:mouse_move, 175, 654, 2, 25, 108] +[:mouse_move, 159, 659, 2, 26, 109] +[:mouse_move, 152, 662, 2, 27, 110] +[:mouse_move, 145, 668, 2, 28, 111] +[:mouse_move, 145, 670, 2, 29, 112] +[:mouse_move, 144, 676, 2, 30, 123] +[:mouse_move, 143, 680, 2, 31, 124] +[:mouse_move, 138, 687, 2, 32, 125] +[:mouse_move, 136, 691, 2, 33, 126] +[:mouse_move, 132, 698, 2, 34, 127] +[:mouse_move, 129, 701, 2, 35, 128] +[:mouse_move, 128, 704, 2, 36, 129] +[:mouse_move, 126, 706, 2, 37, 130] +[:mouse_move, 126, 707, 2, 38, 131] +[:mouse_move, 130, 707, 2, 39, 133] +[:mouse_move, 132, 707, 2, 40, 134] +[:mouse_move, 135, 707, 2, 41, 135] +[:mouse_move, 141, 706, 2, 42, 136] +[:mouse_move, 145, 705, 2, 43, 137] +[:mouse_move, 155, 703, 2, 44, 138] +[:mouse_move, 160, 701, 2, 45, 139] +[:mouse_move, 170, 699, 2, 46, 140] +[:mouse_move, 174, 698, 2, 47, 141] +[:mouse_move, 182, 696, 2, 48, 142] +[:mouse_move, 187, 696, 2, 49, 143] +[:mouse_move, 192, 695, 2, 50, 144] +[:mouse_move, 197, 695, 2, 51, 145] +[:mouse_move, 203, 695, 2, 52, 146] +[:mouse_move, 205, 695, 2, 53, 147] +[:mouse_move, 211, 695, 2, 54, 148] +[:mouse_move, 214, 695, 2, 55, 149] +[:mouse_move, 219, 695, 2, 56, 150] +[:mouse_move, 222, 695, 2, 57, 151] +[:mouse_move, 228, 695, 2, 58, 152] +[:mouse_move, 231, 695, 2, 59, 153] +[:mouse_move, 237, 695, 2, 60, 154] +[:mouse_move, 241, 695, 2, 61, 155] +[:mouse_move, 246, 695, 2, 62, 156] +[:mouse_move, 250, 695, 2, 63, 157] +[:mouse_move, 257, 695, 2, 64, 158] +[:mouse_move, 260, 695, 2, 65, 159] +[:mouse_move, 267, 696, 2, 66, 160] +[:mouse_move, 271, 696, 2, 67, 161] +[:mouse_move, 275, 697, 2, 68, 162] +[:mouse_move, 283, 698, 2, 69, 163] +[:mouse_move, 288, 698, 2, 70, 164] +[:mouse_move, 297, 699, 2, 71, 165] +[:mouse_move, 303, 700, 2, 72, 166] +[:mouse_move, 313, 701, 2, 73, 167] +[:mouse_move, 318, 702, 2, 74, 168] +[:mouse_move, 330, 703, 2, 75, 169] +[:mouse_move, 337, 704, 2, 76, 170] +[:mouse_move, 350, 705, 2, 77, 171] +[:mouse_move, 356, 706, 2, 78, 172] +[:mouse_move, 371, 707, 2, 79, 173] +[:mouse_move, 377, 708, 2, 80, 174] +[:mouse_move, 393, 709, 2, 81, 175] +[:mouse_move, 401, 709, 2, 82, 176] +[:mouse_move, 410, 709, 2, 83, 177] +[:mouse_move, 415, 709, 2, 84, 178] +[:mouse_move, 422, 709, 2, 85, 179] +[:mouse_move, 424, 709, 2, 86, 180] +[:mouse_move, 429, 709, 2, 87, 181] +[:mouse_move, 430, 709, 2, 88, 182] +[:mouse_move, 432, 709, 2, 89, 183] +[:mouse_move, 433, 709, 2, 90, 185] +[:mouse_move, 434, 709, 2, 91, 190] +[:mouse_move, 435, 708, 2, 92, 192] +[:mouse_move, 437, 708, 2, 93, 193] +[:mouse_move, 440, 707, 2, 94, 194] +[:mouse_move, 442, 706, 2, 95, 195] +[:mouse_move, 446, 705, 2, 96, 196] +[:mouse_move, 448, 704, 2, 97, 197] +[:mouse_move, 451, 704, 2, 98, 198] +[:mouse_move, 451, 703, 2, 99, 199] +[:mouse_move, 452, 703, 2, 100, 200] +[:mouse_move, 453, 703, 2, 101, 201] +[:mouse_move, 454, 703, 2, 102, 210] +[:mouse_move, 462, 703, 2, 103, 225] +[:mouse_move, 475, 703, 2, 104, 226] +[:mouse_move, 511, 703, 2, 105, 227] +[:mouse_move, 535, 703, 2, 106, 228] +[:mouse_move, 603, 709, 2, 107, 229] +[:mouse_move, 645, 711, 2, 108, 230] +[:mouse_move, 692, 714, 2, 109, 231] +[:mouse_move, 703, 715, 2, 110, 232] +[:mouse_move, 725, 715, 2, 111, 233] +[:mouse_move, 735, 715, 2, 112, 234] +[:mouse_move, 745, 715, 2, 113, 235] +[:mouse_move, 747, 715, 2, 114, 236] +[:mouse_move, 744, 716, 2, 115, 238] +[:mouse_move, 735, 716, 2, 116, 239] +[:mouse_move, 732, 716, 2, 117, 240] +[:mouse_move, 726, 716, 2, 118, 241] +[:mouse_move, 723, 716, 2, 119, 242] +[:mouse_move, 721, 717, 2, 120, 243] +[:mouse_move, 720, 717, 2, 121, 244] +[:mouse_move, 721, 717, 2, 122, 246] +[:mouse_move, 722, 717, 2, 123, 247] +[:mouse_move, 726, 716, 2, 124, 248] +[:mouse_move, 728, 715, 2, 125, 249] +[:mouse_move, 732, 713, 2, 126, 250] +[:mouse_move, 733, 713, 2, 127, 251] +[:mouse_move, 736, 711, 2, 128, 252] +[:mouse_move, 738, 711, 2, 129, 253] +[:mouse_move, 739, 709, 2, 130, 254] +[:mouse_move, 740, 708, 2, 131, 255] +[:mouse_move, 743, 708, 2, 132, 273] +[:mouse_move, 745, 708, 2, 133, 274] +[:mouse_move, 751, 708, 2, 134, 275] +[:mouse_move, 755, 708, 2, 135, 276] +[:mouse_move, 764, 708, 2, 136, 277] +[:mouse_move, 769, 708, 2, 137, 278] +[:mouse_move, 778, 709, 2, 138, 279] +[:mouse_move, 782, 709, 2, 139, 280] +[:mouse_move, 790, 709, 2, 140, 281] +[:mouse_move, 794, 709, 2, 141, 282] +[:mouse_move, 801, 710, 2, 142, 283] +[:mouse_move, 804, 710, 2, 143, 284] +[:mouse_move, 812, 710, 2, 144, 285] +[:mouse_move, 815, 710, 2, 145, 286] +[:mouse_move, 823, 710, 2, 146, 287] +[:mouse_move, 827, 710, 2, 147, 288] +[:mouse_move, 835, 710, 2, 148, 289] +[:mouse_move, 838, 710, 2, 149, 290] +[:mouse_move, 846, 710, 2, 150, 291] +[:mouse_move, 851, 710, 2, 151, 292] +[:mouse_move, 859, 710, 2, 152, 293] +[:mouse_move, 862, 710, 2, 153, 294] +[:mouse_move, 872, 710, 2, 154, 295] +[:mouse_move, 876, 710, 2, 155, 296] +[:mouse_move, 880, 710, 2, 156, 297] +[:mouse_move, 891, 710, 2, 157, 298] +[:mouse_move, 895, 710, 2, 158, 299] +[:mouse_move, 904, 710, 2, 159, 300] +[:mouse_move, 909, 710, 2, 160, 301] +[:mouse_move, 918, 710, 2, 161, 302] +[:mouse_move, 922, 709, 2, 162, 303] +[:mouse_move, 928, 709, 2, 163, 304] +[:mouse_move, 931, 709, 2, 164, 305] +[:mouse_move, 939, 708, 2, 165, 306] +[:mouse_move, 942, 707, 2, 166, 307] +[:mouse_move, 948, 707, 2, 167, 308] +[:mouse_move, 952, 707, 2, 168, 309] +[:mouse_move, 958, 706, 2, 169, 310] +[:mouse_move, 960, 706, 2, 170, 311] +[:mouse_move, 965, 706, 2, 171, 312] +[:mouse_move, 967, 706, 2, 172, 313] +[:mouse_move, 973, 706, 2, 173, 314] +[:mouse_move, 975, 706, 2, 174, 315] +[:mouse_move, 981, 706, 2, 175, 316] +[:mouse_move, 983, 706, 2, 176, 317] +[:mouse_move, 989, 706, 2, 177, 318] +[:mouse_move, 992, 707, 2, 178, 319] +[:mouse_move, 998, 708, 2, 179, 320] +[:mouse_move, 1001, 709, 2, 180, 321] +[:mouse_move, 1008, 710, 2, 181, 322] +[:mouse_move, 1011, 710, 2, 182, 323] +[:mouse_move, 1019, 711, 2, 183, 324] +[:mouse_move, 1023, 711, 2, 184, 325] +[:mouse_move, 1028, 711, 2, 185, 326] +[:mouse_move, 1039, 711, 2, 186, 327] +[:mouse_move, 1044, 711, 2, 187, 328] +[:mouse_move, 1054, 709, 2, 188, 329] +[:mouse_move, 1059, 708, 2, 189, 330] +[:mouse_move, 1067, 707, 2, 190, 331] +[:mouse_move, 1068, 706, 2, 191, 332] +[:mouse_move, 1074, 705, 2, 192, 333] +[:mouse_move, 1076, 705, 2, 193, 334] +[:mouse_move, 1078, 704, 2, 194, 335] +[:mouse_move, 1079, 704, 2, 195, 336] +[:mouse_move, 1080, 703, 2, 196, 338] +[:mouse_move, 1079, 703, 2, 197, 353] +[:mouse_move, 1067, 698, 2, 198, 354] +[:mouse_move, 1050, 690, 2, 199, 355] +[:mouse_move, 1007, 673, 2, 200, 356] +[:mouse_move, 980, 663, 2, 201, 357] +[:mouse_move, 920, 639, 2, 202, 358] +[:mouse_move, 888, 626, 2, 203, 359] +[:mouse_move, 854, 611, 2, 204, 360] +[:mouse_move, 847, 607, 2, 205, 361] +[:mouse_move, 821, 593, 2, 206, 362] +[:key_down_raw, 111, 0, 2, 207, 524] +[:key_up_raw, 111, 0, 2, 208, 529] +[:key_down_raw, 111, 0, 2, 209, 533] +[:key_up_raw, 111, 0, 2, 210, 536] +[:key_down_raw, 111, 0, 2, 211, 541] +[:key_up_raw, 111, 0, 2, 212, 544] +[:key_down_raw, 111, 0, 2, 213, 549] +[:key_up_raw, 111, 0, 2, 214, 551] +[:key_down_raw, 111, 0, 2, 215, 556] +[:key_up_raw, 111, 0, 2, 216, 560] +[:key_down_raw, 108, 0, 2, 217, 591] +[:key_up_raw, 108, 0, 2, 218, 595] +[:key_down_raw, 108, 0, 2, 219, 601] +[:key_up_raw, 108, 0, 2, 220, 606] +[:key_down_raw, 108, 0, 2, 221, 612] +[:key_up_raw, 108, 0, 2, 222, 614] +[:key_down_raw, 119, 0, 2, 223, 651] +[:key_up_raw, 119, 0, 2, 224, 658] +[:key_down_raw, 119, 0, 2, 225, 662] +[:key_up_raw, 119, 0, 2, 226, 666] +[:key_down_raw, 115, 0, 2, 227, 678] +[:key_up_raw, 115, 0, 2, 228, 684] +[:key_down_raw, 115, 0, 2, 229, 689] +[:key_up_raw, 115, 0, 2, 230, 693] +[:key_down_raw, 115, 0, 2, 231, 698] +[:key_up_raw, 115, 0, 2, 232, 700] +[:key_down_raw, 115, 0, 2, 233, 704] +[:key_up_raw, 115, 0, 2, 234, 709] +[:key_down_raw, 115, 0, 2, 235, 713] +[:key_up_raw, 115, 0, 2, 236, 717] +[:key_down_raw, 119, 0, 2, 237, 727] +[:key_up_raw, 119, 0, 2, 238, 732] +[:key_down_raw, 119, 0, 2, 239, 738] +[:key_up_raw, 119, 0, 2, 240, 741] +[:key_down_raw, 119, 0, 2, 241, 745] +[:key_up_raw, 119, 0, 2, 242, 749] +[:key_down_raw, 119, 0, 2, 243, 754] +[:key_up_raw, 119, 0, 2, 244, 758] +[:key_down_raw, 119, 0, 2, 245, 762] +[:key_up_raw, 119, 0, 2, 246, 766] +[:key_down_raw, 119, 0, 2, 247, 770] +[:key_up_raw, 119, 0, 2, 248, 773] +[:key_down_raw, 119, 0, 2, 249, 777] +[:key_up_raw, 119, 0, 2, 250, 781] +[:key_down_raw, 119, 0, 2, 251, 786] +[:key_up_raw, 119, 0, 2, 252, 790] +[:key_down_raw, 119, 0, 2, 253, 793] +[:key_up_raw, 119, 0, 2, 254, 798] +[:key_down_raw, 119, 0, 2, 255, 804] +[:key_up_raw, 119, 0, 2, 256, 809] +[:key_down_raw, 115, 0, 2, 257, 849] +[:key_up_raw, 115, 0, 2, 258, 854] +[:key_down_raw, 108, 0, 2, 259, 980] +[:key_up_raw, 108, 0, 2, 260, 987] +[:key_down_raw, 108, 0, 2, 261, 992] +[:key_up_raw, 108, 0, 2, 262, 995] +[:key_down_raw, 108, 0, 2, 263, 1000] +[:key_up_raw, 108, 0, 2, 264, 1004] +[:key_down_raw, 108, 0, 2, 265, 1009] +[:key_up_raw, 108, 0, 2, 266, 1012] +[:key_down_raw, 108, 0, 2, 267, 1017] +[:key_up_raw, 108, 0, 2, 268, 1020] +[:key_down_raw, 108, 0, 2, 269, 1024] +[:key_up_raw, 108, 0, 2, 270, 1030] +[:key_down_raw, 111, 0, 2, 271, 1040] +[:key_up_raw, 111, 0, 2, 272, 1045] +[:key_down_raw, 111, 0, 2, 273, 1051] +[:key_up_raw, 111, 0, 2, 274, 1054] +[:key_down_raw, 108, 0, 2, 275, 1059] +[:key_up_raw, 108, 0, 2, 276, 1064] +[:key_down_raw, 108, 0, 2, 277, 1068] +[:key_up_raw, 108, 0, 2, 278, 1072] +[:key_down_raw, 111, 0, 2, 279, 1078] +[:key_up_raw, 111, 0, 2, 280, 1081] +[:key_down_raw, 111, 0, 2, 281, 1086] +[:key_up_raw, 111, 0, 2, 282, 1090] +[:key_down_raw, 111, 0, 2, 283, 1095] +[:key_up_raw, 111, 0, 2, 284, 1098] +[:key_down_raw, 111, 0, 2, 285, 1103] +[:key_up_raw, 111, 0, 2, 286, 1107] +[:key_down_raw, 1073742051, 1024, 2, 287, 1165] +[:key_down_raw, 113, 1024, 2, 288, 1166] diff --git a/samples/99_genre_arcade/snakemoji/app/main.rb b/samples/99_genre_arcade/snakemoji/app/main.rb new file mode 100644 index 0000000..3bffa22 --- /dev/null +++ b/samples/99_genre_arcade/snakemoji/app/main.rb @@ -0,0 +1,165 @@ +# coding: utf-8 +################################ +# So I was working on a snake game while +# learning DragonRuby, and at some point I had a thought +# what if I use "😀" as a function name, surely it wont work right...? +# RIGHT....? +# BUT IT DID, IT WORKED +# it all went downhill from then +# Created by Anton K. (ai Doge) +# https://gist.github.com/scorp200 +#############LICENSE############ +# Feel free to use this anywhere and however you want +# You can sell this to EA for $1,000,000 if you want, its completely free. +# Just rememeber you are helping this... thing... to spread... +# ALSO! I am not liable for any mental, physical or financial damage caused. +#############LICENSE############ + + +class Array + #Helper function + def move! vector + self.x += vector.x + self.y += vector.y + return self + end + + #Helper function to draw snake body + def draw! 🎮, 📺, color + translate 📺.solids, 🎮.⛓, [self.x * 🎮.⚖️ + 🎮.🛶 / 2, self.y * 🎮.⚖️ + 🎮.🛶 / 2, 🎮.⚖️ - 🎮.🛶, 🎮.⚖️ - 🎮.🛶, color] + end + + #This is where it all started, I was trying to find good way to multiply a map by a number, * is already used so is ** + #I kept trying different combinations of symbols, when suddenly... + def 😀 value + self.map {|d| d * value} + end +end + +#Draw stuff with an offset +def translate output_collection, ⛓, what + what.x += ⛓.x + what.y += ⛓.y + output_collection << what +end + +BLUE = [33, 150, 243] +RED = [244, 67, 54] +GOLD = [255, 193, 7] +LAST = 0 + +def tick args + defaults args.state + render args.state, args.outputs + input args.state, args.inputs + update args.state +end + +def update 🎮 + #Update every 10 frames + if 🎮.tick_count.mod_zero? 10 + #Add new snake body piece at head's location + 🎮.🐍 << [*🎮.🤖] + #Assign Next Direction to Direction + 🎮.🚗 = *🎮.🚦 + + #Trim the snake a bit if its longer than current size + if 🎮.🐍.length > 🎮.🛒 + 🎮.🐍 = 🎮.🐍[-🎮.🛒..-1] + end + + #Move the head in the Direction + 🎮.🤖.move! 🎮.🚗 + + #If Head is outside the playing field, or inside snake's body restart game + if 🎮.🤖.x < 0 || 🎮.🤖.x >= 🎮.🗺.x || 🎮.🤖.y < 0 || 🎮.🤖.y >= 🎮.🗺.y || 🎮.🚗 != [0, 0] && 🎮.🐍.any? {|s| s == 🎮.🤖} + LAST = 🎮.💰 + 🎮.as_hash.clear + return + end + + #If head lands on food add size and score + if 🎮.🤖 == 🎮.🍎 + 🎮.🛒 += 1 + 🎮.💰 += (🎮.🛒 * 0.8).floor.to_i + 5 + spawn_🍎 🎮 + puts 🎮.🍎 + end + end + + #Every second remove 1 point + if 🎮.💰 > 0 && 🎮.tick_count.mod_zero?(60) + 🎮.💰 -= 1 + end +end + +def spawn_🍎 🎮 + #Food + 🎮.🍎 ||= [*🎮.🤖] + #Randomly spawns food inside the playing field, keep doing this if the food keeps landing on the snake's body + while 🎮.🐍.any? {|s| s == 🎮.🍎} || 🎮.🍎 == 🎮.🤖 do + 🎮.🍎 = [rand(🎮.🗺.x), rand(🎮.🗺.y)] + end +end + +def render 🎮, 📺 + #Paint the background black + 📺.solids << [0, 0, 1280, 720, 0, 0, 0, 255] + #Draw a border for the playing field + translate 📺.borders, 🎮.⛓, [0, 0, 🎮.🗺.x * 🎮.⚖️, 🎮.🗺.y * 🎮.⚖️, 255, 255, 255] + + #Draw the snake's body + 🎮.🐍.map do |🐍| 🐍.draw! 🎮, 📺, BLUE end + #Draw the head + 🎮.🤖.draw! 🎮, 📺, BLUE + #Draw the food + 🎮.🍎.draw! 🎮, 📺, RED + + #Draw current score + translate 📺.labels, 🎮.⛓, [5, 715, "Score: #{🎮.💰}", GOLD] + #Draw your last score, if any + translate 📺.labels, 🎮.⛓, [[*🎮.🤖.😀(🎮.⚖️)].move!([0, 🎮.⚖️ * 2]), "Your Last score is #{LAST}", 0, 1, GOLD] unless LAST == 0 || 🎮.🚗 != [0, 0] + #Draw starting message, only if Direction is 0 + translate 📺.labels, 🎮.⛓, [🎮.🤖.😀(🎮.⚖️), "Press any Arrow key to start", 0, 1, GOLD] unless 🎮.🚗 != [0, 0] +end + +def input 🎮, 🕹 + #Left and Right keyboard input, only change if X direction is 0 + if 🕹.keyboard.key_held.left && 🎮.🚗.x == 0 + 🎮.🚦 = [-1, 0] + elsif 🕹.keyboard.key_held.right && 🎮.🚗.x == 0 + 🎮.🚦 = [1, 0] + end + + #Up and Down keyboard input, only change if Y direction is 0 + if 🕹.keyboard.key_held.up && 🎮.🚗.y == 0 + 🎮.🚦 = [0, 1] + elsif 🕹.keyboard.key_held.down && 🎮.🚗.y == 0 + 🎮.🚦 = [0, -1] + end +end + +def defaults 🎮 + #Playing field size + 🎮.🗺 ||= [20, 20] + #Scale for drawing, screen height / Field height + 🎮.⚖️ ||= 720 / 🎮.🗺.y + #Offset, offset all rendering to the center of the screen + 🎮.⛓ ||= [(1280 - 720).fdiv(2), 0] + #Padding, make the snake body slightly smaller than the scale + 🎮.🛶 ||= (🎮.⚖️ * 0.2).to_i + #Snake Size + 🎮.🛒 ||= 3 + #Snake head, the only part we are actually controlling + 🎮.🤖 ||= [🎮.🗺.x / 2, 🎮.🗺.y / 2] + #Snake body map, follows the head + 🎮.🐍 ||= [] + #Direction the head moves to + 🎮.🚗 ||= [0, 0] + #Next_Direction, during input check only change this variable and then when game updates asign this to Direction + 🎮.🚦 ||= [*🎮.🚗] + #Your score + 🎮.💰 ||= 0 + #Spawns Food randomly + spawn_🍎(🎮) unless 🎮.🍎? +end diff --git a/samples/99_genre_arcade/snakemoji/license-for-sample.txt b/samples/99_genre_arcade/snakemoji/license-for-sample.txt new file mode 100644 index 0000000..376dd0e --- /dev/null +++ b/samples/99_genre_arcade/snakemoji/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 Anton K. (ai Doge) + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/99_genre_arcade/snakemoji/replay.txt b/samples/99_genre_arcade/snakemoji/replay.txt new file mode 100644 index 0000000..48b3833 --- /dev/null +++ b/samples/99_genre_arcade/snakemoji/replay.txt @@ -0,0 +1,145 @@ +replay_version 2.0 +stopped_at 1147 +seed 100 +recorded_at Sun Sep 29 23:35:11 2019 +[:mouse_move, 313, 259, 2, 1, 111] +[:mouse_move, 317, 254, 2, 2, 112] +[:mouse_move, 325, 238, 2, 3, 113] +[:mouse_move, 332, 217, 2, 4, 114] +[:mouse_move, 345, 162, 2, 5, 115] +[:mouse_move, 347, 147, 2, 6, 116] +[:mouse_move, 351, 114, 2, 7, 117] +[:mouse_move, 352, 97, 2, 8, 118] +[:mouse_move, 352, 74, 2, 9, 119] +[:mouse_move, 350, 67, 2, 10, 120] +[:mouse_move, 347, 63, 2, 11, 121] +[:mouse_move, 344, 62, 2, 12, 122] +[:mouse_move, 338, 60, 2, 13, 123] +[:mouse_move, 334, 60, 2, 14, 124] +[:mouse_move, 325, 60, 2, 15, 125] +[:mouse_move, 319, 60, 2, 16, 126] +[:mouse_move, 313, 59, 2, 17, 127] +[:mouse_move, 310, 59, 2, 18, 128] +[:mouse_move, 307, 58, 2, 19, 129] +[:mouse_move, 303, 57, 2, 20, 130] +[:mouse_move, 301, 56, 2, 21, 131] +[:mouse_move, 299, 54, 2, 22, 132] +[:mouse_move, 298, 54, 2, 23, 133] +[:mouse_move, 297, 52, 2, 24, 134] +[:mouse_move, 297, 51, 2, 25, 135] +[:mouse_move, 295, 48, 2, 26, 136] +[:mouse_move, 294, 46, 2, 27, 137] +[:mouse_move, 291, 43, 2, 28, 138] +[:mouse_move, 290, 42, 2, 29, 139] +[:mouse_move, 289, 40, 2, 30, 140] +[:mouse_move, 288, 39, 2, 31, 141] +[:mouse_move, 289, 39, 2, 32, 145] +[:mouse_move, 299, 39, 2, 33, 146] +[:mouse_move, 308, 40, 2, 34, 147] +[:mouse_move, 337, 41, 2, 35, 148] +[:mouse_move, 344, 41, 2, 36, 149] +[:mouse_move, 360, 41, 2, 37, 150] +[:mouse_move, 367, 41, 2, 38, 151] +[:mouse_move, 375, 41, 2, 39, 152] +[:mouse_move, 377, 40, 2, 40, 153] +[:mouse_move, 378, 40, 2, 41, 154] +[:mouse_move, 379, 40, 2, 42, 155] +[:mouse_move, 380, 46, 2, 43, 165] +[:mouse_move, 383, 54, 2, 44, 166] +[:mouse_move, 393, 90, 2, 45, 167] +[:mouse_move, 408, 132, 2, 46, 168] +[:mouse_move, 444, 221, 2, 47, 169] +[:mouse_move, 470, 282, 2, 48, 170] +[:mouse_move, 533, 412, 2, 49, 171] +[:mouse_move, 548, 439, 2, 50, 172] +[:mouse_move, 585, 507, 2, 51, 173] +[:mouse_move, 592, 518, 2, 52, 174] +[:mouse_move, 590, 518, 2, 53, 184] +[:mouse_move, 584, 518, 2, 54, 185] +[:mouse_move, 572, 513, 2, 55, 186] +[:mouse_move, 564, 507, 2, 56, 187] +[:mouse_move, 548, 491, 2, 57, 188] +[:mouse_move, 541, 483, 2, 58, 189] +[:mouse_move, 523, 464, 2, 59, 190] +[:mouse_move, 518, 459, 2, 60, 191] +[:mouse_move, 502, 441, 2, 61, 192] +[:mouse_move, 496, 434, 2, 62, 193] +[:mouse_move, 488, 424, 2, 63, 194] +[:mouse_move, 484, 420, 2, 64, 195] +[:mouse_move, 479, 414, 2, 65, 196] +[:mouse_move, 478, 413, 2, 66, 197] +[:mouse_move, 476, 411, 2, 67, 198] +[:mouse_move, 475, 410, 2, 68, 199] +[:mouse_move, 475, 408, 2, 69, 200] +[:mouse_move, 474, 408, 2, 70, 202] +[:mouse_move, 474, 407, 2, 71, 204] +[:mouse_move, 476, 407, 2, 72, 205] +[:mouse_move, 481, 406, 2, 73, 206] +[:mouse_move, 487, 406, 2, 74, 207] +[:mouse_move, 501, 405, 2, 75, 208] +[:mouse_move, 511, 405, 2, 76, 209] +[:mouse_move, 519, 405, 2, 77, 210] +[:mouse_move, 540, 405, 2, 78, 211] +[:mouse_move, 545, 405, 2, 79, 212] +[:mouse_move, 564, 405, 2, 80, 213] +[:mouse_move, 578, 405, 2, 81, 214] +[:mouse_move, 592, 405, 2, 82, 215] +[:mouse_move, 600, 405, 2, 83, 216] +[:mouse_move, 613, 405, 2, 84, 217] +[:mouse_move, 618, 406, 2, 85, 218] +[:mouse_move, 628, 407, 2, 86, 219] +[:mouse_move, 632, 407, 2, 87, 220] +[:mouse_move, 642, 408, 2, 88, 221] +[:mouse_move, 647, 408, 2, 89, 222] +[:mouse_move, 658, 409, 2, 90, 223] +[:mouse_move, 664, 409, 2, 91, 224] +[:mouse_move, 676, 409, 2, 92, 225] +[:mouse_move, 682, 409, 2, 93, 226] +[:mouse_move, 696, 409, 2, 94, 227] +[:mouse_move, 703, 409, 2, 95, 228] +[:mouse_move, 724, 409, 2, 96, 229] +[:mouse_move, 732, 409, 2, 97, 230] +[:mouse_move, 745, 409, 2, 98, 231] +[:mouse_move, 754, 409, 2, 99, 232] +[:mouse_move, 770, 410, 2, 100, 233] +[:mouse_move, 777, 410, 2, 101, 234] +[:mouse_move, 789, 410, 2, 102, 235] +[:mouse_move, 791, 410, 2, 103, 236] +[:mouse_move, 795, 410, 2, 104, 237] +[:mouse_move, 802, 410, 2, 105, 238] +[:mouse_move, 804, 410, 2, 106, 239] +[:mouse_move, 806, 410, 2, 107, 240] +[:mouse_move, 807, 410, 2, 108, 241] +[:mouse_move, 808, 410, 2, 109, 244] +[:key_down_raw, 1073741903, 0, 2, 110, 371] +[:key_up_raw, 1073741903, 0, 2, 111, 381] +[:key_down_raw, 1073741906, 0, 2, 112, 428] +[:key_up_raw, 1073741906, 0, 2, 113, 437] +[:key_down_raw, 1073741904, 0, 2, 114, 459] +[:key_up_raw, 1073741904, 0, 2, 115, 468] +[:key_down_raw, 1073741905, 0, 2, 116, 495] +[:key_up_raw, 1073741905, 0, 2, 117, 504] +[:key_down_raw, 1073741904, 0, 2, 118, 521] +[:key_up_raw, 1073741904, 0, 2, 119, 529] +[:key_down_raw, 1073741906, 0, 2, 120, 631] +[:key_up_raw, 1073741906, 0, 2, 121, 640] +[:key_down_raw, 1073741903, 0, 2, 122, 673] +[:key_up_raw, 1073741903, 0, 2, 123, 683] +[:key_down_raw, 1073741906, 0, 2, 124, 697] +[:key_up_raw, 1073741906, 0, 2, 125, 704] +[:key_down_raw, 1073741903, 0, 2, 126, 739] +[:key_up_raw, 1073741903, 0, 2, 127, 747] +[:key_down_raw, 1073741906, 0, 2, 128, 767] +[:key_up_raw, 1073741906, 0, 2, 129, 773] +[:key_down_raw, 1073741903, 0, 2, 130, 776] +[:key_up_raw, 1073741903, 0, 2, 131, 784] +[:key_down_raw, 1073741905, 0, 2, 132, 880] +[:key_up_raw, 1073741905, 0, 2, 133, 887] +[:key_down_raw, 1073741904, 0, 2, 134, 960] +[:key_up_raw, 1073741904, 0, 2, 135, 967] +[:key_down_raw, 1073741905, 0, 2, 136, 980] +[:key_up_raw, 1073741905, 0, 2, 137, 987] +[:key_down_raw, 1073741903, 0, 2, 138, 1013] +[:key_up_raw, 1073741903, 0, 2, 139, 1022] +[:key_down_raw, 1073742051, 1024, 2, 140, 1146] +[:key_down_raw, 113, 1024, 2, 141, 1146] diff --git a/samples/99_genre_arcade/solar_system/app/main.rb b/samples/99_genre_arcade/solar_system/app/main.rb new file mode 100644 index 0000000..273c36a --- /dev/null +++ b/samples/99_genre_arcade/solar_system/app/main.rb @@ -0,0 +1,108 @@ +# Focused tutorial video: https://s3.amazonaws.com/s3.dragonruby.org/dragonruby-nddnug-workshop.mp4 +# Workshop/Presentation which provides motivation for creating a game engine: https://www.youtube.com/watch?v=S3CFce1arC8 + +def defaults args + args.outputs.background_color = [0, 0, 0] + args.state.x ||= 640 + args.state.y ||= 360 + args.state.stars ||= 100.map do + [1280 * rand, 720 * rand, rand.fdiv(10), 255 * rand, 255 * rand, 255 * rand] + end + + args.state.sun ||= args.state.new_entity(:sun) do |s| + s.s = 100 + s.path = 'sprites/sun.png' + end + + args.state.planets = [ + [:mercury, 65, 5, 88], + [:venus, 100, 10, 225], + [:earth, 120, 10, 365], + [:mars, 140, 8, 687], + [:jupiter, 280, 30, 365 * 11.8], + [:saturn, 350, 20, 365 * 29.5], + [:uranus, 400, 15, 365 * 84], + [:neptune, 440, 15, 365 * 164.8], + [:pluto, 480, 5, 365 * 247.8], + ].map do |name, distance, size, year_in_days| + args.state.new_entity(name) do |p| + p.path = "sprites/#{name}.png" + p.distance = distance * 0.7 + p.s = size * 0.7 + p.year_in_days = year_in_days + end + end + + args.state.ship ||= args.state.new_entity(:ship) do |s| + s.x = 1280 * rand + s.y = 720 * rand + s.angle = 0 + end +end + +def to_sprite args, entity + x = 0 + y = 0 + + if entity.year_in_days + day = args.state.tick_count + day_in_year = day % entity.year_in_days + entity.random_start_day ||= day_in_year * rand + percentage_of_year = day_in_year.fdiv(entity.year_in_days) + angle = 365 * percentage_of_year + x = angle.vector_x(entity.distance) + y = angle.vector_y(entity.distance) + end + + [640 + x - entity.s.half, 360 + y - entity.s.half, entity.s, entity.s, entity.path] +end + +def render args + args.outputs.solids << [0, 0, 1280, 720] + + args.outputs.sprites << args.state.stars.map do |x, y, _, r, g, b| + [x, y, 10, 10, 'sprites/star.png', 0, 100, r, g, b] + end + + args.outputs.sprites << to_sprite(args, args.state.sun) + args.outputs.sprites << args.state.planets.map { |p| to_sprite args, p } + args.outputs.sprites << [args.state.ship.x, args.state.ship.y, 20, 20, 'sprites/ship.png', args.state.ship.angle] +end + +def calc args + args.state.stars = args.state.stars.map do |x, y, speed, r, g, b| + x += speed + y += speed + x = 0 if x > 1280 + y = 0 if y > 720 + [x, y, speed, r, g, b] + end + + if args.state.tick_count == 0 + args.outputs.sounds << 'sounds/bg.ogg' + end +end + +def process_inputs args + if args.inputs.keyboard.left || args.inputs.controller_one.key_held.left + args.state.ship.angle += 1 + elsif args.inputs.keyboard.right || args.inputs.controller_one.key_held.right + args.state.ship.angle -= 1 + end + + if args.inputs.keyboard.up || args.inputs.controller_one.key_held.a + args.state.ship.x += args.state.ship.angle.x_vector + args.state.ship.y += args.state.ship.angle.y_vector + end +end + +def tick args + defaults args + render args + calc args + process_inputs args +end + +def r + $gtk.reset +end diff --git a/samples/99_genre_arcade/solar_system/license-for-sample.txt b/samples/99_genre_arcade/solar_system/license-for-sample.txt new file mode 100644 index 0000000..2f938ad --- /dev/null +++ b/samples/99_genre_arcade/solar_system/license-for-sample.txt @@ -0,0 +1,9 @@ +Copyright 2019 DragonRuby LLC (code), Nick Culbertson @mobypixel (art), Rafael Langoni Smith (music) + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/samples/99_genre_arcade/solar_system/replay.txt b/samples/99_genre_arcade/solar_system/replay.txt new file mode 100644 index 0000000..948639c --- /dev/null +++ b/samples/99_genre_arcade/solar_system/replay.txt @@ -0,0 +1,1472 @@ +replay_version 2.0 +stopped_at 1198 +seed 100 +recorded_at Sun Sep 29 23:34:16 2019 +[:mouse_move, 1156, 500, 2, 1, 74] +[:mouse_move, 1151, 501, 2, 2, 75] +[:mouse_move, 1148, 502, 2, 3, 76] +[:mouse_move, 1136, 503, 2, 4, 77] +[:mouse_move, 1125, 503, 2, 5, 78] +[:mouse_move, 1089, 502, 2, 6, 79] +[:mouse_move, 1069, 498, 2, 7, 80] +[:mouse_move, 1020, 485, 2, 8, 81] +[:mouse_move, 969, 470, 2, 9, 82] +[:mouse_move, 930, 458, 2, 10, 83] +[:mouse_move, 842, 428, 2, 11, 84] +[:mouse_move, 788, 407, 2, 12, 85] +[:mouse_move, 711, 377, 2, 13, 86] +[:mouse_move, 665, 358, 2, 14, 87] +[:mouse_move, 609, 336, 2, 15, 88] +[:mouse_move, 583, 324, 2, 16, 89] +[:mouse_move, 545, 305, 2, 17, 90] +[:mouse_move, 531, 297, 2, 18, 91] +[:mouse_move, 512, 279, 2, 19, 92] +[:mouse_move, 481, 273, 2, 20, 160] +[:mouse_move, 452, 262, 2, 21, 161] +[:mouse_move, 414, 248, 2, 22, 162] +[:mouse_move, 391, 241, 2, 23, 163] +[:mouse_move, 293, 212, 2, 24, 164] +[:mouse_move, 242, 198, 2, 25, 165] +[:mouse_move, 220, 191, 2, 26, 166] +[:mouse_move, 163, 174, 2, 27, 167] +[:mouse_move, 134, 166, 2, 28, 168] +[:mouse_move, 109, 156, 2, 29, 169] +[:mouse_move, 95, 150, 2, 30, 170] +[:mouse_move, 82, 144, 2, 31, 171] +[:mouse_move, 77, 141, 2, 32, 172] +[:mouse_move, 72, 137, 2, 33, 173] +[:mouse_move, 70, 137, 2, 34, 174] +[:mouse_move, 69, 135, 2, 35, 175] +[:mouse_move, 66, 135, 2, 36, 177] +[:mouse_move, 65, 135, 2, 37, 178] +[:mouse_move, 62, 135, 2, 38, 179] +[:mouse_move, 60, 135, 2, 39, 180] +[:mouse_move, 57, 136, 2, 40, 181] +[:mouse_move, 55, 137, 2, 41, 182] +[:mouse_move, 50, 138, 2, 42, 183] +[:mouse_move, 49, 139, 2, 43, 184] +[:mouse_move, 44, 141, 2, 44, 185] +[:mouse_move, 42, 143, 2, 45, 186] +[:mouse_move, 36, 146, 2, 46, 187] +[:mouse_move, 34, 147, 2, 47, 188] +[:mouse_move, 30, 149, 2, 48, 189] +[:mouse_move, 28, 151, 2, 49, 190] +[:mouse_move, 26, 152, 2, 50, 191] +[:mouse_move, 26, 156, 2, 51, 194] +[:mouse_move, 27, 158, 2, 52, 195] +[:mouse_move, 30, 162, 2, 53, 196] +[:mouse_move, 33, 164, 2, 54, 197] +[:mouse_move, 36, 167, 2, 55, 198] +[:mouse_move, 38, 168, 2, 56, 199] +[:mouse_move, 43, 168, 2, 57, 200] +[:mouse_move, 46, 166, 2, 58, 201] +[:mouse_move, 51, 157, 2, 59, 202] +[:mouse_move, 53, 152, 2, 60, 203] +[:mouse_move, 55, 145, 2, 61, 204] +[:mouse_move, 56, 141, 2, 62, 205] +[:mouse_move, 57, 134, 2, 63, 206] +[:mouse_move, 57, 131, 2, 64, 207] +[:mouse_move, 56, 125, 2, 65, 208] +[:mouse_move, 54, 123, 2, 66, 209] +[:mouse_move, 48, 119, 2, 67, 210] +[:mouse_move, 44, 117, 2, 68, 211] +[:mouse_move, 33, 113, 2, 69, 212] +[:mouse_move, 28, 112, 2, 70, 213] +[:mouse_move, 21, 111, 2, 71, 214] +[:mouse_move, 18, 111, 2, 72, 215] +[:mouse_move, 11, 112, 2, 73, 216] +[:mouse_move, 10, 113, 2, 74, 217] +[:mouse_move, 6, 119, 2, 75, 218] +[:mouse_move, 4, 122, 2, 76, 219] +[:mouse_move, 1, 127, 2, 77, 220] +[:mouse_move, 0, 137, 2, 78, 221] +[:mouse_move, 1, 173, 2, 79, 226] +[:mouse_move, 10, 177, 2, 80, 226] +[:mouse_move, 20, 182, 2, 81, 227] +[:mouse_move, 44, 190, 2, 82, 228] +[:mouse_move, 58, 192, 2, 83, 229] +[:mouse_move, 63, 193, 2, 84, 230] +[:mouse_move, 84, 194, 2, 85, 231] +[:mouse_move, 89, 194, 2, 86, 232] +[:mouse_move, 93, 193, 2, 87, 232] +[:mouse_move, 95, 190, 2, 88, 233] +[:mouse_move, 98, 187, 2, 89, 234] +[:mouse_move, 101, 176, 2, 90, 235] +[:mouse_move, 102, 169, 2, 91, 236] +[:mouse_move, 100, 148, 2, 92, 237] +[:mouse_move, 96, 139, 2, 93, 238] +[:mouse_move, 87, 126, 2, 94, 239] +[:mouse_move, 82, 120, 2, 95, 240] +[:mouse_move, 68, 111, 2, 96, 241] +[:mouse_move, 62, 108, 2, 97, 242] +[:mouse_move, 51, 105, 2, 98, 243] +[:mouse_move, 46, 104, 2, 99, 244] +[:mouse_move, 37, 104, 2, 100, 245] +[:mouse_move, 32, 104, 2, 101, 246] +[:mouse_move, 27, 104, 2, 102, 247] +[:mouse_move, 23, 104, 2, 103, 247] +[:mouse_move, 21, 105, 2, 104, 248] +[:mouse_move, 18, 107, 2, 105, 249] +[:mouse_move, 15, 109, 2, 106, 249] +[:mouse_move, 12, 112, 2, 107, 250] +[:mouse_move, 9, 116, 2, 108, 251] +[:mouse_move, 8, 121, 2, 109, 251] +[:mouse_move, 8, 128, 2, 110, 252] +[:mouse_move, 8, 145, 2, 111, 253] +[:mouse_move, 16, 162, 2, 112, 253] +[:mouse_move, 29, 183, 2, 113, 254] +[:mouse_move, 46, 203, 2, 114, 255] +[:mouse_move, 69, 223, 2, 115, 255] +[:mouse_move, 96, 241, 2, 116, 256] +[:mouse_move, 108, 245, 2, 117, 257] +[:mouse_move, 161, 261, 2, 118, 258] +[:mouse_move, 201, 263, 2, 119, 259] +[:mouse_move, 249, 262, 2, 120, 260] +[:mouse_move, 261, 262, 2, 121, 261] +[:mouse_move, 310, 261, 2, 122, 262] +[:key_down_player_one, 4, 0, 1, 123, 274] +[:key_down_player_one, 27, 0, 1, 124, 274] +[:key_held_player_one, 4, 0, 1, 125, 275] +[:key_held_player_one, 27, 0, 1, 126, 275] +[:key_held_player_one, 4, 0, 1, 127, 276] +[:key_held_player_one, 27, 0, 1, 128, 276] +[:key_held_player_one, 4, 0, 1, 129, 277] +[:key_held_player_one, 27, 0, 1, 130, 277] +[:key_held_player_one, 4, 0, 1, 131, 278] +[:key_held_player_one, 27, 0, 1, 132, 278] +[:key_held_player_one, 4, 0, 1, 133, 279] +[:key_held_player_one, 27, 0, 1, 134, 279] +[:key_held_player_one, 4, 0, 1, 135, 280] +[:key_held_player_one, 27, 0, 1, 136, 280] +[:key_held_player_one, 4, 0, 1, 137, 281] +[:key_held_player_one, 27, 0, 1, 138, 281] +[:key_held_player_one, 4, 0, 1, 139, 282] +[:key_held_player_one, 27, 0, 1, 140, 282] +[:key_held_player_one, 4, 0, 1, 141, 283] +[:key_held_player_one, 27, 0, 1, 142, 283] +[:key_held_player_one, 4, 0, 1, 143, 284] +[:key_held_player_one, 27, 0, 1, 144, 284] +[:key_held_player_one, 4, 0, 1, 145, 285] +[:key_held_player_one, 27, 0, 1, 146, 285] +[:key_held_player_one, 4, 0, 1, 147, 286] +[:key_held_player_one, 27, 0, 1, 148, 286] +[:key_held_player_one, 4, 0, 1, 149, 287] +[:key_held_player_one, 27, 0, 1, 150, 287] +[:key_held_player_one, 4, 0, 1, 151, 288] +[:key_held_player_one, 27, 0, 1, 152, 288] +[:key_held_player_one, 4, 0, 1, 153, 289] +[:key_held_player_one, 27, 0, 1, 154, 289] +[:key_held_player_one, 4, 0, 1, 155, 290] +[:key_held_player_one, 27, 0, 1, 156, 290] +[:key_held_player_one, 4, 0, 1, 157, 291] +[:key_held_player_one, 27, 0, 1, 158, 291] +[:key_held_player_one, 4, 0, 1, 159, 292] +[:key_held_player_one, 27, 0, 1, 160, 292] +[:key_held_player_one, 4, 0, 1, 161, 293] +[:key_held_player_one, 27, 0, 1, 162, 293] +[:key_held_player_one, 4, 0, 1, 163, 294] +[:key_held_player_one, 27, 0, 1, 164, 294] +[:key_held_player_one, 4, 0, 1, 165, 295] +[:key_held_player_one, 27, 0, 1, 166, 295] +[:key_held_player_one, 4, 0, 1, 167, 296] +[:key_held_player_one, 27, 0, 1, 168, 296] +[:key_held_player_one, 4, 0, 1, 169, 297] +[:key_held_player_one, 27, 0, 1, 170, 297] +[:key_held_player_one, 4, 0, 1, 171, 298] +[:key_held_player_one, 27, 0, 1, 172, 298] +[:key_held_player_one, 4, 0, 1, 173, 299] +[:key_held_player_one, 27, 0, 1, 174, 299] +[:key_held_player_one, 4, 0, 1, 175, 300] +[:key_held_player_one, 27, 0, 1, 176, 300] +[:key_held_player_one, 4, 0, 1, 177, 301] +[:key_held_player_one, 27, 0, 1, 178, 301] +[:key_up_player_one, 4, 0, 1, 179, 302] +[:key_up_player_one, 27, 0, 1, 180, 302] +[:key_down_player_one, 3, 0, 1, 181, 313] +[:key_down_player_one, 26, 0, 1, 182, 313] +[:key_held_player_one, 3, 0, 1, 183, 314] +[:key_held_player_one, 26, 0, 1, 184, 314] +[:key_held_player_one, 3, 0, 1, 185, 315] +[:key_held_player_one, 26, 0, 1, 186, 315] +[:key_held_player_one, 3, 0, 1, 187, 316] +[:key_held_player_one, 26, 0, 1, 188, 316] +[:key_held_player_one, 3, 0, 1, 189, 317] +[:key_held_player_one, 26, 0, 1, 190, 317] +[:key_held_player_one, 3, 0, 1, 191, 318] +[:key_held_player_one, 26, 0, 1, 192, 318] +[:key_held_player_one, 3, 0, 1, 193, 319] +[:key_held_player_one, 26, 0, 1, 194, 319] +[:key_held_player_one, 3, 0, 1, 195, 320] +[:key_held_player_one, 26, 0, 1, 196, 320] +[:key_held_player_one, 3, 0, 1, 197, 321] +[:key_held_player_one, 26, 0, 1, 198, 321] +[:key_up_player_one, 3, 0, 1, 199, 322] +[:key_up_player_one, 26, 0, 1, 200, 322] +[:key_down_player_one, 19, 0, 1, 201, 344] +[:key_held_player_one, 19, 0, 1, 202, 345] +[:key_held_player_one, 19, 0, 1, 203, 346] +[:key_held_player_one, 19, 0, 1, 204, 347] +[:key_held_player_one, 19, 0, 1, 205, 348] +[:key_held_player_one, 19, 0, 1, 206, 349] +[:key_held_player_one, 19, 0, 1, 207, 350] +[:key_held_player_one, 19, 0, 1, 208, 351] +[:key_held_player_one, 19, 0, 1, 209, 352] +[:key_held_player_one, 19, 0, 1, 210, 353] +[:key_held_player_one, 19, 0, 1, 211, 354] +[:key_held_player_one, 19, 0, 1, 212, 355] +[:key_held_player_one, 19, 0, 1, 213, 356] +[:key_held_player_one, 19, 0, 1, 214, 357] +[:key_held_player_one, 19, 0, 1, 215, 358] +[:key_held_player_one, 19, 0, 1, 216, 359] +[:key_held_player_one, 19, 0, 1, 217, 360] +[:key_held_player_one, 19, 0, 1, 218, 361] +[:key_held_player_one, 19, 0, 1, 219, 362] +[:key_held_player_one, 19, 0, 1, 220, 363] +[:key_held_player_one, 19, 0, 1, 221, 364] +[:key_held_player_one, 19, 0, 1, 222, 365] +[:key_held_player_one, 19, 0, 1, 223, 366] +[:key_held_player_one, 19, 0, 1, 224, 367] +[:key_held_player_one, 19, 0, 1, 225, 368] +[:key_held_player_one, 19, 0, 1, 226, 369] +[:key_held_player_one, 19, 0, 1, 227, 370] +[:key_down_player_one, 1, 0, 1, 228, 371] +[:key_up_player_one, 19, 0, 1, 229, 371] +[:key_down_player_one, 24, 0, 1, 230, 371] +[:key_held_player_one, 1, 0, 1, 231, 372] +[:key_held_player_one, 24, 0, 1, 232, 372] +[:key_held_player_one, 1, 0, 1, 233, 373] +[:key_held_player_one, 24, 0, 1, 234, 373] +[:key_held_player_one, 1, 0, 1, 235, 374] +[:key_held_player_one, 24, 0, 1, 236, 374] +[:key_held_player_one, 1, 0, 1, 237, 375] +[:key_held_player_one, 24, 0, 1, 238, 375] +[:key_held_player_one, 1, 0, 1, 239, 376] +[:key_held_player_one, 24, 0, 1, 240, 376] +[:key_held_player_one, 1, 0, 1, 241, 377] +[:key_held_player_one, 24, 0, 1, 242, 377] +[:key_held_player_one, 1, 0, 1, 243, 378] +[:key_held_player_one, 24, 0, 1, 244, 378] +[:key_held_player_one, 1, 0, 1, 245, 379] +[:key_held_player_one, 24, 0, 1, 246, 379] +[:key_held_player_one, 1, 0, 1, 247, 380] +[:key_held_player_one, 24, 0, 1, 248, 380] +[:key_held_player_one, 1, 0, 1, 249, 381] +[:key_held_player_one, 24, 0, 1, 250, 381] +[:key_held_player_one, 1, 0, 1, 251, 382] +[:key_held_player_one, 24, 0, 1, 252, 382] +[:key_held_player_one, 1, 0, 1, 253, 383] +[:key_held_player_one, 24, 0, 1, 254, 383] +[:key_held_player_one, 1, 0, 1, 255, 384] +[:key_held_player_one, 24, 0, 1, 256, 384] +[:key_held_player_one, 1, 0, 1, 257, 385] +[:key_held_player_one, 24, 0, 1, 258, 385] +[:key_held_player_one, 1, 0, 1, 259, 386] +[:key_held_player_one, 24, 0, 1, 260, 386] +[:key_held_player_one, 1, 0, 1, 261, 387] +[:key_held_player_one, 24, 0, 1, 262, 387] +[:key_held_player_one, 1, 0, 1, 263, 388] +[:key_held_player_one, 24, 0, 1, 264, 388] +[:key_held_player_one, 1, 0, 1, 265, 389] +[:key_held_player_one, 24, 0, 1, 266, 389] +[:key_held_player_one, 1, 0, 1, 267, 390] +[:key_held_player_one, 24, 0, 1, 268, 390] +[:key_held_player_one, 1, 0, 1, 269, 391] +[:key_held_player_one, 24, 0, 1, 270, 391] +[:key_held_player_one, 1, 0, 1, 271, 392] +[:key_held_player_one, 24, 0, 1, 272, 392] +[:key_held_player_one, 1, 0, 1, 273, 393] +[:key_held_player_one, 24, 0, 1, 274, 393] +[:key_held_player_one, 1, 0, 1, 275, 394] +[:key_held_player_one, 24, 0, 1, 276, 394] +[:key_held_player_one, 1, 0, 1, 277, 395] +[:key_held_player_one, 24, 0, 1, 278, 395] +[:key_held_player_one, 1, 0, 1, 279, 396] +[:key_held_player_one, 24, 0, 1, 280, 396] +[:key_held_player_one, 1, 0, 1, 281, 397] +[:key_held_player_one, 24, 0, 1, 282, 397] +[:key_held_player_one, 1, 0, 1, 283, 398] +[:key_held_player_one, 24, 0, 1, 284, 398] +[:key_held_player_one, 1, 0, 1, 285, 399] +[:key_held_player_one, 24, 0, 1, 286, 399] +[:key_held_player_one, 1, 0, 1, 287, 400] +[:key_held_player_one, 24, 0, 1, 288, 400] +[:key_held_player_one, 1, 0, 1, 289, 401] +[:key_held_player_one, 24, 0, 1, 290, 401] +[:key_held_player_one, 1, 0, 1, 291, 402] +[:key_held_player_one, 24, 0, 1, 292, 402] +[:key_held_player_one, 1, 0, 1, 293, 403] +[:key_held_player_one, 24, 0, 1, 294, 403] +[:key_held_player_one, 1, 0, 1, 295, 404] +[:key_held_player_one, 24, 0, 1, 296, 404] +[:key_held_player_one, 1, 0, 1, 297, 405] +[:key_held_player_one, 24, 0, 1, 298, 405] +[:key_held_player_one, 1, 0, 1, 299, 406] +[:key_held_player_one, 24, 0, 1, 300, 406] +[:key_held_player_one, 1, 0, 1, 301, 407] +[:key_held_player_one, 24, 0, 1, 302, 407] +[:key_held_player_one, 1, 0, 1, 303, 408] +[:key_held_player_one, 24, 0, 1, 304, 408] +[:key_up_player_one, 1, 0, 1, 305, 409] +[:key_up_player_one, 24, 0, 1, 306, 409] +[:key_down_player_one, 14, 0, 1, 307, 411] +[:key_held_player_one, 14, 0, 1, 308, 412] +[:key_held_player_one, 14, 0, 1, 309, 413] +[:key_held_player_one, 14, 0, 1, 310, 414] +[:key_held_player_one, 14, 0, 1, 311, 415] +[:key_held_player_one, 14, 0, 1, 312, 416] +[:key_held_player_one, 14, 0, 1, 313, 417] +[:key_held_player_one, 14, 0, 1, 314, 418] +[:key_held_player_one, 14, 0, 1, 315, 419] +[:key_held_player_one, 14, 0, 1, 316, 420] +[:key_held_player_one, 14, 0, 1, 317, 421] +[:key_held_player_one, 14, 0, 1, 318, 422] +[:key_held_player_one, 14, 0, 1, 319, 423] +[:key_held_player_one, 14, 0, 1, 320, 424] +[:key_held_player_one, 14, 0, 1, 321, 425] +[:key_held_player_one, 14, 0, 1, 322, 426] +[:key_down_player_one, 4, 0, 1, 323, 427] +[:key_held_player_one, 14, 0, 1, 324, 427] +[:key_down_player_one, 27, 0, 1, 325, 427] +[:key_held_player_one, 4, 0, 1, 326, 428] +[:key_held_player_one, 14, 0, 1, 327, 428] +[:key_held_player_one, 27, 0, 1, 328, 428] +[:key_held_player_one, 4, 0, 1, 329, 429] +[:key_held_player_one, 14, 0, 1, 330, 429] +[:key_held_player_one, 27, 0, 1, 331, 429] +[:key_held_player_one, 4, 0, 1, 332, 430] +[:key_held_player_one, 14, 0, 1, 333, 430] +[:key_held_player_one, 27, 0, 1, 334, 430] +[:key_held_player_one, 4, 0, 1, 335, 431] +[:key_held_player_one, 14, 0, 1, 336, 431] +[:key_held_player_one, 27, 0, 1, 337, 431] +[:key_held_player_one, 4, 0, 1, 338, 432] +[:key_held_player_one, 14, 0, 1, 339, 432] +[:key_held_player_one, 27, 0, 1, 340, 432] +[:key_held_player_one, 4, 0, 1, 341, 433] +[:key_held_player_one, 14, 0, 1, 342, 433] +[:key_held_player_one, 27, 0, 1, 343, 433] +[:key_held_player_one, 4, 0, 1, 344, 434] +[:key_held_player_one, 14, 0, 1, 345, 434] +[:key_held_player_one, 27, 0, 1, 346, 434] +[:key_held_player_one, 4, 0, 1, 347, 435] +[:key_held_player_one, 14, 0, 1, 348, 435] +[:key_held_player_one, 27, 0, 1, 349, 435] +[:key_held_player_one, 4, 0, 1, 350, 436] +[:key_up_player_one, 14, 0, 1, 351, 436] +[:key_held_player_one, 27, 0, 1, 352, 436] +[:key_held_player_one, 4, 0, 1, 353, 437] +[:key_held_player_one, 27, 0, 1, 354, 437] +[:key_held_player_one, 4, 0, 1, 355, 438] +[:key_held_player_one, 27, 0, 1, 356, 438] +[:key_up_player_one, 4, 0, 1, 357, 439] +[:key_up_player_one, 27, 0, 1, 358, 439] +[:key_down_player_one, 2, 0, 1, 359, 440] +[:key_down_player_one, 3, 0, 1, 360, 440] +[:key_down_player_one, 25, 0, 1, 361, 440] +[:key_down_player_one, 26, 0, 1, 362, 440] +[:key_up_player_one, 2, 0, 1, 363, 441] +[:key_held_player_one, 3, 0, 1, 364, 441] +[:key_up_player_one, 25, 0, 1, 365, 441] +[:key_held_player_one, 26, 0, 1, 366, 441] +[:key_held_player_one, 3, 0, 1, 367, 442] +[:key_held_player_one, 26, 0, 1, 368, 442] +[:key_held_player_one, 3, 0, 1, 369, 443] +[:key_held_player_one, 26, 0, 1, 370, 443] +[:key_held_player_one, 3, 0, 1, 371, 444] +[:key_held_player_one, 26, 0, 1, 372, 444] +[:key_held_player_one, 3, 0, 1, 373, 445] +[:key_held_player_one, 26, 0, 1, 374, 445] +[:key_held_player_one, 3, 0, 1, 375, 446] +[:key_held_player_one, 26, 0, 1, 376, 446] +[:key_held_player_one, 3, 0, 1, 377, 447] +[:key_held_player_one, 26, 0, 1, 378, 447] +[:key_held_player_one, 3, 0, 1, 379, 448] +[:key_held_player_one, 26, 0, 1, 380, 448] +[:key_held_player_one, 3, 0, 1, 381, 449] +[:key_down_player_one, 15, 0, 1, 382, 449] +[:key_held_player_one, 26, 0, 1, 383, 449] +[:key_held_player_one, 3, 0, 1, 384, 450] +[:key_held_player_one, 15, 0, 1, 385, 450] +[:key_held_player_one, 26, 0, 1, 386, 450] +[:key_held_player_one, 3, 0, 1, 387, 451] +[:key_held_player_one, 15, 0, 1, 388, 451] +[:key_held_player_one, 26, 0, 1, 389, 451] +[:key_held_player_one, 3, 0, 1, 390, 452] +[:key_held_player_one, 15, 0, 1, 391, 452] +[:key_held_player_one, 26, 0, 1, 392, 452] +[:key_held_player_one, 3, 0, 1, 393, 453] +[:key_held_player_one, 15, 0, 1, 394, 453] +[:key_held_player_one, 26, 0, 1, 395, 453] +[:key_held_player_one, 3, 0, 1, 396, 454] +[:key_held_player_one, 15, 0, 1, 397, 454] +[:key_held_player_one, 26, 0, 1, 398, 454] +[:key_held_player_one, 3, 0, 1, 399, 455] +[:key_held_player_one, 15, 0, 1, 400, 455] +[:key_held_player_one, 26, 0, 1, 401, 455] +[:key_held_player_one, 3, 0, 1, 402, 456] +[:key_held_player_one, 15, 0, 1, 403, 456] +[:key_held_player_one, 26, 0, 1, 404, 456] +[:key_held_player_one, 3, 0, 1, 405, 457] +[:key_held_player_one, 15, 0, 1, 406, 457] +[:key_held_player_one, 26, 0, 1, 407, 457] +[:key_held_player_one, 3, 0, 1, 408, 458] +[:key_held_player_one, 15, 0, 1, 409, 458] +[:key_held_player_one, 26, 0, 1, 410, 458] +[:key_held_player_one, 3, 0, 1, 411, 459] +[:key_held_player_one, 15, 0, 1, 412, 459] +[:key_held_player_one, 26, 0, 1, 413, 459] +[:key_held_player_one, 3, 0, 1, 414, 460] +[:key_held_player_one, 15, 0, 1, 415, 460] +[:key_held_player_one, 26, 0, 1, 416, 460] +[:key_held_player_one, 3, 0, 1, 417, 461] +[:key_held_player_one, 15, 0, 1, 418, 461] +[:key_held_player_one, 26, 0, 1, 419, 461] +[:key_held_player_one, 3, 0, 1, 420, 462] +[:key_held_player_one, 15, 0, 1, 421, 462] +[:key_held_player_one, 26, 0, 1, 422, 462] +[:key_held_player_one, 3, 0, 1, 423, 463] +[:key_held_player_one, 15, 0, 1, 424, 463] +[:key_held_player_one, 26, 0, 1, 425, 463] +[:key_held_player_one, 3, 0, 1, 426, 464] +[:key_held_player_one, 15, 0, 1, 427, 464] +[:key_held_player_one, 26, 0, 1, 428, 464] +[:key_up_player_one, 3, 0, 1, 429, 465] +[:key_held_player_one, 15, 0, 1, 430, 465] +[:key_up_player_one, 26, 0, 1, 431, 465] +[:key_held_player_one, 15, 0, 1, 432, 466] +[:key_held_player_one, 15, 0, 1, 433, 467] +[:key_held_player_one, 15, 0, 1, 434, 468] +[:key_held_player_one, 15, 0, 1, 435, 469] +[:key_held_player_one, 15, 0, 1, 436, 470] +[:key_held_player_one, 15, 0, 1, 437, 471] +[:key_held_player_one, 15, 0, 1, 438, 472] +[:key_held_player_one, 15, 0, 1, 439, 473] +[:key_held_player_one, 15, 0, 1, 440, 474] +[:key_held_player_one, 15, 0, 1, 441, 475] +[:key_held_player_one, 15, 0, 1, 442, 476] +[:key_held_player_one, 15, 0, 1, 443, 477] +[:key_held_player_one, 15, 0, 1, 444, 478] +[:key_held_player_one, 15, 0, 1, 445, 479] +[:key_held_player_one, 15, 0, 1, 446, 480] +[:key_down_player_one, 4, 0, 1, 447, 481] +[:key_held_player_one, 15, 0, 1, 448, 481] +[:key_down_player_one, 27, 0, 1, 449, 481] +[:key_held_player_one, 4, 0, 1, 450, 482] +[:key_held_player_one, 15, 0, 1, 451, 482] +[:key_held_player_one, 27, 0, 1, 452, 482] +[:key_held_player_one, 4, 0, 1, 453, 483] +[:key_held_player_one, 15, 0, 1, 454, 483] +[:key_held_player_one, 27, 0, 1, 455, 483] +[:key_held_player_one, 4, 0, 1, 456, 484] +[:key_held_player_one, 15, 0, 1, 457, 484] +[:key_held_player_one, 27, 0, 1, 458, 484] +[:key_held_player_one, 4, 0, 1, 459, 485] +[:key_held_player_one, 15, 0, 1, 460, 485] +[:key_held_player_one, 27, 0, 1, 461, 485] +[:key_held_player_one, 4, 0, 1, 462, 486] +[:key_held_player_one, 15, 0, 1, 463, 486] +[:key_held_player_one, 27, 0, 1, 464, 486] +[:key_held_player_one, 4, 0, 1, 465, 487] +[:key_held_player_one, 15, 0, 1, 466, 487] +[:key_held_player_one, 27, 0, 1, 467, 487] +[:key_held_player_one, 4, 0, 1, 468, 488] +[:key_held_player_one, 15, 0, 1, 469, 488] +[:key_held_player_one, 27, 0, 1, 470, 488] +[:key_held_player_one, 4, 0, 1, 471, 489] +[:key_held_player_one, 15, 0, 1, 472, 489] +[:key_held_player_one, 27, 0, 1, 473, 489] +[:key_held_player_one, 4, 0, 1, 474, 490] +[:key_held_player_one, 15, 0, 1, 475, 490] +[:key_held_player_one, 27, 0, 1, 476, 490] +[:key_held_player_one, 4, 0, 1, 477, 491] +[:key_held_player_one, 15, 0, 1, 478, 491] +[:key_held_player_one, 27, 0, 1, 479, 491] +[:key_held_player_one, 4, 0, 1, 480, 492] +[:key_held_player_one, 15, 0, 1, 481, 492] +[:key_held_player_one, 27, 0, 1, 482, 492] +[:key_held_player_one, 4, 0, 1, 483, 493] +[:key_held_player_one, 15, 0, 1, 484, 493] +[:key_held_player_one, 27, 0, 1, 485, 493] +[:key_held_player_one, 4, 0, 1, 486, 494] +[:key_held_player_one, 15, 0, 1, 487, 494] +[:key_held_player_one, 27, 0, 1, 488, 494] +[:key_held_player_one, 4, 0, 1, 489, 495] +[:key_held_player_one, 15, 0, 1, 490, 495] +[:key_held_player_one, 27, 0, 1, 491, 495] +[:key_held_player_one, 4, 0, 1, 492, 496] +[:key_held_player_one, 15, 0, 1, 493, 496] +[:key_held_player_one, 27, 0, 1, 494, 496] +[:key_held_player_one, 4, 0, 1, 495, 497] +[:key_held_player_one, 15, 0, 1, 496, 497] +[:key_held_player_one, 27, 0, 1, 497, 497] +[:key_held_player_one, 4, 0, 1, 498, 498] +[:key_held_player_one, 15, 0, 1, 499, 498] +[:key_held_player_one, 27, 0, 1, 500, 498] +[:key_held_player_one, 4, 0, 1, 501, 499] +[:key_held_player_one, 15, 0, 1, 502, 499] +[:key_held_player_one, 27, 0, 1, 503, 499] +[:key_held_player_one, 4, 0, 1, 504, 500] +[:key_held_player_one, 15, 0, 1, 505, 500] +[:key_held_player_one, 27, 0, 1, 506, 500] +[:key_held_player_one, 4, 0, 1, 507, 501] +[:key_held_player_one, 15, 0, 1, 508, 501] +[:key_held_player_one, 27, 0, 1, 509, 501] +[:key_held_player_one, 4, 0, 1, 510, 502] +[:key_held_player_one, 15, 0, 1, 511, 502] +[:key_held_player_one, 27, 0, 1, 512, 502] +[:key_held_player_one, 4, 0, 1, 513, 503] +[:key_held_player_one, 15, 0, 1, 514, 503] +[:key_held_player_one, 27, 0, 1, 515, 503] +[:key_held_player_one, 4, 0, 1, 516, 504] +[:key_held_player_one, 15, 0, 1, 517, 504] +[:key_held_player_one, 27, 0, 1, 518, 504] +[:key_held_player_one, 4, 0, 1, 519, 505] +[:key_held_player_one, 15, 0, 1, 520, 505] +[:key_held_player_one, 27, 0, 1, 521, 505] +[:key_held_player_one, 4, 0, 1, 522, 506] +[:key_held_player_one, 15, 0, 1, 523, 506] +[:key_held_player_one, 27, 0, 1, 524, 506] +[:key_held_player_one, 4, 0, 1, 525, 507] +[:key_held_player_one, 15, 0, 1, 526, 507] +[:key_held_player_one, 27, 0, 1, 527, 507] +[:key_held_player_one, 4, 0, 1, 528, 508] +[:key_held_player_one, 15, 0, 1, 529, 508] +[:key_held_player_one, 27, 0, 1, 530, 508] +[:key_held_player_one, 4, 0, 1, 531, 509] +[:key_held_player_one, 15, 0, 1, 532, 509] +[:key_held_player_one, 27, 0, 1, 533, 509] +[:key_held_player_one, 4, 0, 1, 534, 510] +[:key_held_player_one, 15, 0, 1, 535, 510] +[:key_held_player_one, 27, 0, 1, 536, 510] +[:key_held_player_one, 4, 0, 1, 537, 511] +[:key_held_player_one, 15, 0, 1, 538, 511] +[:key_held_player_one, 27, 0, 1, 539, 511] +[:key_held_player_one, 4, 0, 1, 540, 512] +[:key_held_player_one, 15, 0, 1, 541, 512] +[:key_held_player_one, 27, 0, 1, 542, 512] +[:key_held_player_one, 4, 0, 1, 543, 513] +[:key_held_player_one, 15, 0, 1, 544, 513] +[:key_held_player_one, 27, 0, 1, 545, 513] +[:key_held_player_one, 4, 0, 1, 546, 514] +[:key_held_player_one, 15, 0, 1, 547, 514] +[:key_held_player_one, 27, 0, 1, 548, 514] +[:key_held_player_one, 4, 0, 1, 549, 515] +[:key_held_player_one, 15, 0, 1, 550, 515] +[:key_held_player_one, 27, 0, 1, 551, 515] +[:key_held_player_one, 4, 0, 1, 552, 516] +[:key_held_player_one, 15, 0, 1, 553, 516] +[:key_held_player_one, 27, 0, 1, 554, 516] +[:key_held_player_one, 4, 0, 1, 555, 517] +[:key_held_player_one, 15, 0, 1, 556, 517] +[:key_held_player_one, 27, 0, 1, 557, 517] +[:key_held_player_one, 4, 0, 1, 558, 518] +[:key_held_player_one, 15, 0, 1, 559, 518] +[:key_held_player_one, 27, 0, 1, 560, 518] +[:key_held_player_one, 4, 0, 1, 561, 519] +[:key_held_player_one, 15, 0, 1, 562, 519] +[:key_held_player_one, 27, 0, 1, 563, 519] +[:key_held_player_one, 4, 0, 1, 564, 520] +[:key_held_player_one, 15, 0, 1, 565, 520] +[:key_held_player_one, 27, 0, 1, 566, 520] +[:key_held_player_one, 4, 0, 1, 567, 521] +[:key_held_player_one, 15, 0, 1, 568, 521] +[:key_held_player_one, 27, 0, 1, 569, 521] +[:key_held_player_one, 4, 0, 1, 570, 522] +[:key_held_player_one, 15, 0, 1, 571, 522] +[:key_held_player_one, 27, 0, 1, 572, 522] +[:key_up_player_one, 4, 0, 1, 573, 523] +[:key_held_player_one, 15, 0, 1, 574, 523] +[:key_up_player_one, 27, 0, 1, 575, 523] +[:key_held_player_one, 15, 0, 1, 576, 524] +[:key_held_player_one, 15, 0, 1, 577, 525] +[:key_held_player_one, 15, 0, 1, 578, 526] +[:key_held_player_one, 15, 0, 1, 579, 527] +[:key_held_player_one, 15, 0, 1, 580, 528] +[:key_held_player_one, 15, 0, 1, 581, 529] +[:key_held_player_one, 15, 0, 1, 582, 530] +[:key_held_player_one, 15, 0, 1, 583, 531] +[:key_held_player_one, 15, 0, 1, 584, 532] +[:key_held_player_one, 15, 0, 1, 585, 533] +[:key_held_player_one, 15, 0, 1, 586, 534] +[:key_held_player_one, 15, 0, 1, 587, 535] +[:key_held_player_one, 15, 0, 1, 588, 536] +[:key_held_player_one, 15, 0, 1, 589, 537] +[:key_held_player_one, 15, 0, 1, 590, 538] +[:key_held_player_one, 15, 0, 1, 591, 539] +[:key_held_player_one, 15, 0, 1, 592, 540] +[:key_held_player_one, 15, 0, 1, 593, 541] +[:key_held_player_one, 15, 0, 1, 594, 542] +[:key_held_player_one, 15, 0, 1, 595, 543] +[:key_held_player_one, 15, 0, 1, 596, 544] +[:key_held_player_one, 15, 0, 1, 597, 545] +[:key_held_player_one, 15, 0, 1, 598, 546] +[:key_held_player_one, 15, 0, 1, 599, 547] +[:key_down_player_one, 3, 0, 1, 600, 548] +[:key_held_player_one, 15, 0, 1, 601, 548] +[:key_down_player_one, 26, 0, 1, 602, 548] +[:key_held_player_one, 3, 0, 1, 603, 549] +[:key_held_player_one, 15, 0, 1, 604, 549] +[:key_held_player_one, 26, 0, 1, 605, 549] +[:key_held_player_one, 3, 0, 1, 606, 550] +[:key_held_player_one, 15, 0, 1, 607, 550] +[:key_held_player_one, 26, 0, 1, 608, 550] +[:key_held_player_one, 3, 0, 1, 609, 551] +[:key_held_player_one, 15, 0, 1, 610, 551] +[:key_held_player_one, 26, 0, 1, 611, 551] +[:key_held_player_one, 3, 0, 1, 612, 552] +[:key_held_player_one, 15, 0, 1, 613, 552] +[:key_held_player_one, 26, 0, 1, 614, 552] +[:key_held_player_one, 3, 0, 1, 615, 553] +[:key_held_player_one, 15, 0, 1, 616, 553] +[:key_held_player_one, 26, 0, 1, 617, 553] +[:key_held_player_one, 3, 0, 1, 618, 554] +[:key_held_player_one, 15, 0, 1, 619, 554] +[:key_held_player_one, 26, 0, 1, 620, 554] +[:key_held_player_one, 3, 0, 1, 621, 555] +[:key_held_player_one, 15, 0, 1, 622, 555] +[:key_held_player_one, 26, 0, 1, 623, 555] +[:key_held_player_one, 3, 0, 1, 624, 556] +[:key_held_player_one, 15, 0, 1, 625, 556] +[:key_held_player_one, 26, 0, 1, 626, 556] +[:key_held_player_one, 3, 0, 1, 627, 557] +[:key_held_player_one, 15, 0, 1, 628, 557] +[:key_held_player_one, 26, 0, 1, 629, 557] +[:key_held_player_one, 3, 0, 1, 630, 558] +[:key_held_player_one, 15, 0, 1, 631, 558] +[:key_held_player_one, 26, 0, 1, 632, 558] +[:key_held_player_one, 3, 0, 1, 633, 559] +[:key_held_player_one, 15, 0, 1, 634, 559] +[:key_held_player_one, 26, 0, 1, 635, 559] +[:key_held_player_one, 3, 0, 1, 636, 560] +[:key_held_player_one, 15, 0, 1, 637, 560] +[:key_held_player_one, 26, 0, 1, 638, 560] +[:key_held_player_one, 3, 0, 1, 639, 561] +[:key_held_player_one, 15, 0, 1, 640, 561] +[:key_held_player_one, 26, 0, 1, 641, 561] +[:key_held_player_one, 3, 0, 1, 642, 562] +[:key_held_player_one, 15, 0, 1, 643, 562] +[:key_held_player_one, 26, 0, 1, 644, 562] +[:key_held_player_one, 3, 0, 1, 645, 563] +[:key_held_player_one, 15, 0, 1, 646, 563] +[:key_held_player_one, 26, 0, 1, 647, 563] +[:key_held_player_one, 3, 0, 1, 648, 564] +[:key_held_player_one, 15, 0, 1, 649, 564] +[:key_held_player_one, 26, 0, 1, 650, 564] +[:key_held_player_one, 3, 0, 1, 651, 565] +[:key_held_player_one, 15, 0, 1, 652, 565] +[:key_held_player_one, 26, 0, 1, 653, 565] +[:key_held_player_one, 3, 0, 1, 654, 566] +[:key_held_player_one, 15, 0, 1, 655, 566] +[:key_held_player_one, 26, 0, 1, 656, 566] +[:key_held_player_one, 3, 0, 1, 657, 567] +[:key_held_player_one, 15, 0, 1, 658, 567] +[:key_held_player_one, 26, 0, 1, 659, 567] +[:key_held_player_one, 3, 0, 1, 660, 568] +[:key_held_player_one, 15, 0, 1, 661, 568] +[:key_held_player_one, 26, 0, 1, 662, 568] +[:key_held_player_one, 3, 0, 1, 663, 569] +[:key_held_player_one, 15, 0, 1, 664, 569] +[:key_held_player_one, 26, 0, 1, 665, 569] +[:key_held_player_one, 3, 0, 1, 666, 570] +[:key_held_player_one, 15, 0, 1, 667, 570] +[:key_held_player_one, 26, 0, 1, 668, 570] +[:key_held_player_one, 3, 0, 1, 669, 571] +[:key_held_player_one, 15, 0, 1, 670, 571] +[:key_held_player_one, 26, 0, 1, 671, 571] +[:key_held_player_one, 3, 0, 1, 672, 572] +[:key_held_player_one, 15, 0, 1, 673, 572] +[:key_held_player_one, 26, 0, 1, 674, 572] +[:key_held_player_one, 3, 0, 1, 675, 573] +[:key_held_player_one, 15, 0, 1, 676, 573] +[:key_held_player_one, 26, 0, 1, 677, 573] +[:key_held_player_one, 3, 0, 1, 678, 574] +[:key_held_player_one, 15, 0, 1, 679, 574] +[:key_held_player_one, 26, 0, 1, 680, 574] +[:key_held_player_one, 3, 0, 1, 681, 575] +[:key_held_player_one, 15, 0, 1, 682, 575] +[:key_held_player_one, 26, 0, 1, 683, 575] +[:key_held_player_one, 3, 0, 1, 684, 576] +[:key_held_player_one, 15, 0, 1, 685, 576] +[:key_held_player_one, 26, 0, 1, 686, 576] +[:key_held_player_one, 3, 0, 1, 687, 577] +[:key_held_player_one, 15, 0, 1, 688, 577] +[:key_held_player_one, 26, 0, 1, 689, 577] +[:key_held_player_one, 3, 0, 1, 690, 578] +[:key_held_player_one, 15, 0, 1, 691, 578] +[:key_held_player_one, 26, 0, 1, 692, 578] +[:key_held_player_one, 3, 0, 1, 693, 579] +[:key_held_player_one, 15, 0, 1, 694, 579] +[:key_held_player_one, 26, 0, 1, 695, 579] +[:key_held_player_one, 3, 0, 1, 696, 580] +[:key_held_player_one, 15, 0, 1, 697, 580] +[:key_held_player_one, 26, 0, 1, 698, 580] +[:key_held_player_one, 3, 0, 1, 699, 581] +[:key_held_player_one, 15, 0, 1, 700, 581] +[:key_held_player_one, 26, 0, 1, 701, 581] +[:key_held_player_one, 3, 0, 1, 702, 582] +[:key_held_player_one, 15, 0, 1, 703, 582] +[:key_held_player_one, 26, 0, 1, 704, 582] +[:key_held_player_one, 3, 0, 1, 705, 583] +[:key_held_player_one, 15, 0, 1, 706, 583] +[:key_held_player_one, 26, 0, 1, 707, 583] +[:key_held_player_one, 3, 0, 1, 708, 584] +[:key_held_player_one, 15, 0, 1, 709, 584] +[:key_held_player_one, 26, 0, 1, 710, 584] +[:key_held_player_one, 3, 0, 1, 711, 585] +[:key_held_player_one, 15, 0, 1, 712, 585] +[:key_held_player_one, 26, 0, 1, 713, 585] +[:key_held_player_one, 3, 0, 1, 714, 586] +[:key_held_player_one, 15, 0, 1, 715, 586] +[:key_held_player_one, 26, 0, 1, 716, 586] +[:key_held_player_one, 3, 0, 1, 717, 587] +[:key_held_player_one, 15, 0, 1, 718, 587] +[:key_held_player_one, 26, 0, 1, 719, 587] +[:key_held_player_one, 3, 0, 1, 720, 588] +[:key_held_player_one, 15, 0, 1, 721, 588] +[:key_held_player_one, 26, 0, 1, 722, 588] +[:key_held_player_one, 3, 0, 1, 723, 589] +[:key_held_player_one, 15, 0, 1, 724, 589] +[:key_held_player_one, 26, 0, 1, 725, 589] +[:key_held_player_one, 3, 0, 1, 726, 590] +[:key_held_player_one, 15, 0, 1, 727, 590] +[:key_held_player_one, 26, 0, 1, 728, 590] +[:key_held_player_one, 3, 0, 1, 729, 591] +[:key_held_player_one, 15, 0, 1, 730, 591] +[:key_held_player_one, 26, 0, 1, 731, 591] +[:key_held_player_one, 3, 0, 1, 732, 592] +[:key_held_player_one, 15, 0, 1, 733, 592] +[:key_held_player_one, 26, 0, 1, 734, 592] +[:key_up_player_one, 3, 0, 1, 735, 593] +[:key_held_player_one, 15, 0, 1, 736, 593] +[:key_up_player_one, 26, 0, 1, 737, 593] +[:key_held_player_one, 15, 0, 1, 738, 594] +[:key_held_player_one, 15, 0, 1, 739, 595] +[:key_held_player_one, 15, 0, 1, 740, 596] +[:key_held_player_one, 15, 0, 1, 741, 597] +[:key_held_player_one, 15, 0, 1, 742, 598] +[:key_held_player_one, 15, 0, 1, 743, 599] +[:key_held_player_one, 15, 0, 1, 744, 600] +[:key_held_player_one, 15, 0, 1, 745, 601] +[:key_held_player_one, 15, 0, 1, 746, 602] +[:key_held_player_one, 15, 0, 1, 747, 603] +[:key_held_player_one, 15, 0, 1, 748, 604] +[:key_held_player_one, 15, 0, 1, 749, 605] +[:key_held_player_one, 15, 0, 1, 750, 606] +[:key_held_player_one, 15, 0, 1, 751, 607] +[:key_held_player_one, 15, 0, 1, 752, 608] +[:key_held_player_one, 15, 0, 1, 753, 609] +[:key_held_player_one, 15, 0, 1, 754, 610] +[:key_held_player_one, 15, 0, 1, 755, 611] +[:key_held_player_one, 15, 0, 1, 756, 612] +[:key_held_player_one, 15, 0, 1, 757, 613] +[:key_held_player_one, 15, 0, 1, 758, 614] +[:key_held_player_one, 15, 0, 1, 759, 615] +[:key_held_player_one, 15, 0, 1, 760, 616] +[:key_held_player_one, 15, 0, 1, 761, 617] +[:key_held_player_one, 15, 0, 1, 762, 618] +[:key_held_player_one, 15, 0, 1, 763, 619] +[:key_held_player_one, 15, 0, 1, 764, 620] +[:key_held_player_one, 15, 0, 1, 765, 621] +[:key_down_player_one, 4, 0, 1, 766, 622] +[:key_held_player_one, 15, 0, 1, 767, 622] +[:key_down_player_one, 27, 0, 1, 768, 622] +[:key_held_player_one, 4, 0, 1, 769, 623] +[:key_held_player_one, 15, 0, 1, 770, 623] +[:key_held_player_one, 27, 0, 1, 771, 623] +[:key_held_player_one, 4, 0, 1, 772, 624] +[:key_held_player_one, 15, 0, 1, 773, 624] +[:key_held_player_one, 27, 0, 1, 774, 624] +[:key_held_player_one, 4, 0, 1, 775, 625] +[:key_held_player_one, 15, 0, 1, 776, 625] +[:key_held_player_one, 27, 0, 1, 777, 625] +[:key_held_player_one, 4, 0, 1, 778, 626] +[:key_held_player_one, 15, 0, 1, 779, 626] +[:key_held_player_one, 27, 0, 1, 780, 626] +[:key_held_player_one, 4, 0, 1, 781, 627] +[:key_held_player_one, 15, 0, 1, 782, 627] +[:key_held_player_one, 27, 0, 1, 783, 627] +[:key_held_player_one, 4, 0, 1, 784, 628] +[:key_held_player_one, 15, 0, 1, 785, 628] +[:key_held_player_one, 27, 0, 1, 786, 628] +[:key_held_player_one, 4, 0, 1, 787, 629] +[:key_held_player_one, 15, 0, 1, 788, 629] +[:key_held_player_one, 27, 0, 1, 789, 629] +[:key_held_player_one, 4, 0, 1, 790, 630] +[:key_held_player_one, 15, 0, 1, 791, 630] +[:key_held_player_one, 27, 0, 1, 792, 630] +[:key_held_player_one, 4, 0, 1, 793, 631] +[:key_held_player_one, 15, 0, 1, 794, 631] +[:key_held_player_one, 27, 0, 1, 795, 631] +[:key_held_player_one, 4, 0, 1, 796, 632] +[:key_held_player_one, 15, 0, 1, 797, 632] +[:key_held_player_one, 27, 0, 1, 798, 632] +[:key_held_player_one, 4, 0, 1, 799, 633] +[:key_held_player_one, 15, 0, 1, 800, 633] +[:key_held_player_one, 27, 0, 1, 801, 633] +[:key_held_player_one, 4, 0, 1, 802, 634] +[:key_held_player_one, 15, 0, 1, 803, 634] +[:key_held_player_one, 27, 0, 1, 804, 634] +[:key_held_player_one, 4, 0, 1, 805, 635] +[:key_held_player_one, 15, 0, 1, 806, 635] +[:key_held_player_one, 27, 0, 1, 807, 635] +[:key_held_player_one, 4, 0, 1, 808, 636] +[:key_held_player_one, 15, 0, 1, 809, 636] +[:key_held_player_one, 27, 0, 1, 810, 636] +[:key_held_player_one, 4, 0, 1, 811, 637] +[:key_held_player_one, 15, 0, 1, 812, 637] +[:key_held_player_one, 27, 0, 1, 813, 637] +[:key_held_player_one, 4, 0, 1, 814, 638] +[:key_held_player_one, 15, 0, 1, 815, 638] +[:key_held_player_one, 27, 0, 1, 816, 638] +[:key_held_player_one, 4, 0, 1, 817, 639] +[:key_held_player_one, 15, 0, 1, 818, 639] +[:key_held_player_one, 27, 0, 1, 819, 639] +[:key_held_player_one, 4, 0, 1, 820, 640] +[:key_held_player_one, 15, 0, 1, 821, 640] +[:key_held_player_one, 27, 0, 1, 822, 640] +[:key_held_player_one, 4, 0, 1, 823, 641] +[:key_held_player_one, 15, 0, 1, 824, 641] +[:key_held_player_one, 27, 0, 1, 825, 641] +[:key_held_player_one, 4, 0, 1, 826, 642] +[:key_held_player_one, 15, 0, 1, 827, 642] +[:key_held_player_one, 27, 0, 1, 828, 642] +[:key_held_player_one, 4, 0, 1, 829, 643] +[:key_held_player_one, 15, 0, 1, 830, 643] +[:key_held_player_one, 27, 0, 1, 831, 643] +[:key_held_player_one, 4, 0, 1, 832, 644] +[:key_held_player_one, 15, 0, 1, 833, 644] +[:key_held_player_one, 27, 0, 1, 834, 644] +[:key_held_player_one, 4, 0, 1, 835, 645] +[:key_held_player_one, 15, 0, 1, 836, 645] +[:key_held_player_one, 27, 0, 1, 837, 645] +[:key_held_player_one, 4, 0, 1, 838, 646] +[:key_held_player_one, 15, 0, 1, 839, 646] +[:key_held_player_one, 27, 0, 1, 840, 646] +[:key_held_player_one, 4, 0, 1, 841, 647] +[:key_held_player_one, 15, 0, 1, 842, 647] +[:key_held_player_one, 27, 0, 1, 843, 647] +[:key_held_player_one, 4, 0, 1, 844, 648] +[:key_held_player_one, 15, 0, 1, 845, 648] +[:key_held_player_one, 27, 0, 1, 846, 648] +[:key_held_player_one, 4, 0, 1, 847, 649] +[:key_held_player_one, 15, 0, 1, 848, 649] +[:key_held_player_one, 27, 0, 1, 849, 649] +[:key_held_player_one, 4, 0, 1, 850, 650] +[:key_held_player_one, 15, 0, 1, 851, 650] +[:key_held_player_one, 27, 0, 1, 852, 650] +[:key_held_player_one, 4, 0, 1, 853, 651] +[:key_held_player_one, 15, 0, 1, 854, 651] +[:key_held_player_one, 27, 0, 1, 855, 651] +[:key_held_player_one, 4, 0, 1, 856, 652] +[:key_held_player_one, 15, 0, 1, 857, 652] +[:key_held_player_one, 27, 0, 1, 858, 652] +[:key_held_player_one, 4, 0, 1, 859, 653] +[:key_held_player_one, 15, 0, 1, 860, 653] +[:key_held_player_one, 27, 0, 1, 861, 653] +[:key_held_player_one, 4, 0, 1, 862, 654] +[:key_held_player_one, 15, 0, 1, 863, 654] +[:key_held_player_one, 27, 0, 1, 864, 654] +[:key_held_player_one, 4, 0, 1, 865, 655] +[:key_held_player_one, 15, 0, 1, 866, 655] +[:key_held_player_one, 27, 0, 1, 867, 655] +[:key_held_player_one, 4, 0, 1, 868, 656] +[:key_held_player_one, 15, 0, 1, 869, 656] +[:key_held_player_one, 27, 0, 1, 870, 656] +[:key_held_player_one, 4, 0, 1, 871, 657] +[:key_held_player_one, 15, 0, 1, 872, 657] +[:key_held_player_one, 27, 0, 1, 873, 657] +[:key_up_player_one, 4, 0, 1, 874, 658] +[:key_held_player_one, 15, 0, 1, 875, 658] +[:key_up_player_one, 27, 0, 1, 876, 658] +[:key_held_player_one, 15, 0, 1, 877, 659] +[:key_held_player_one, 15, 0, 1, 878, 660] +[:key_held_player_one, 15, 0, 1, 879, 661] +[:key_held_player_one, 15, 0, 1, 880, 662] +[:key_held_player_one, 15, 0, 1, 881, 663] +[:key_held_player_one, 15, 0, 1, 882, 664] +[:key_held_player_one, 15, 0, 1, 883, 665] +[:key_held_player_one, 15, 0, 1, 884, 666] +[:key_held_player_one, 15, 0, 1, 885, 667] +[:key_held_player_one, 15, 0, 1, 886, 668] +[:key_held_player_one, 15, 0, 1, 887, 669] +[:key_held_player_one, 15, 0, 1, 888, 670] +[:key_held_player_one, 15, 0, 1, 889, 671] +[:key_held_player_one, 15, 0, 1, 890, 672] +[:key_held_player_one, 15, 0, 1, 891, 673] +[:key_held_player_one, 15, 0, 1, 892, 674] +[:key_held_player_one, 15, 0, 1, 893, 675] +[:key_held_player_one, 15, 0, 1, 894, 676] +[:key_held_player_one, 15, 0, 1, 895, 677] +[:key_held_player_one, 15, 0, 1, 896, 678] +[:key_held_player_one, 15, 0, 1, 897, 679] +[:key_held_player_one, 15, 0, 1, 898, 680] +[:key_held_player_one, 15, 0, 1, 899, 681] +[:key_held_player_one, 15, 0, 1, 900, 682] +[:key_held_player_one, 15, 0, 1, 901, 683] +[:key_held_player_one, 15, 0, 1, 902, 684] +[:key_held_player_one, 15, 0, 1, 903, 685] +[:key_held_player_one, 15, 0, 1, 904, 686] +[:key_held_player_one, 15, 0, 1, 905, 687] +[:key_held_player_one, 15, 0, 1, 906, 688] +[:key_held_player_one, 15, 0, 1, 907, 689] +[:key_held_player_one, 15, 0, 1, 908, 690] +[:key_held_player_one, 15, 0, 1, 909, 691] +[:key_held_player_one, 15, 0, 1, 910, 692] +[:key_held_player_one, 15, 0, 1, 911, 693] +[:key_held_player_one, 15, 0, 1, 912, 694] +[:key_held_player_one, 15, 0, 1, 913, 695] +[:key_held_player_one, 15, 0, 1, 914, 696] +[:key_held_player_one, 15, 0, 1, 915, 697] +[:key_held_player_one, 15, 0, 1, 916, 698] +[:key_held_player_one, 15, 0, 1, 917, 699] +[:key_held_player_one, 15, 0, 1, 918, 700] +[:key_held_player_one, 15, 0, 1, 919, 701] +[:key_held_player_one, 15, 0, 1, 920, 702] +[:key_held_player_one, 15, 0, 1, 921, 703] +[:key_held_player_one, 15, 0, 1, 922, 704] +[:key_held_player_one, 15, 0, 1, 923, 705] +[:key_held_player_one, 15, 0, 1, 924, 706] +[:key_held_player_one, 15, 0, 1, 925, 707] +[:key_held_player_one, 15, 0, 1, 926, 708] +[:key_held_player_one, 15, 0, 1, 927, 709] +[:key_held_player_one, 15, 0, 1, 928, 710] +[:key_held_player_one, 15, 0, 1, 929, 711] +[:key_held_player_one, 15, 0, 1, 930, 712] +[:key_held_player_one, 15, 0, 1, 931, 713] +[:key_held_player_one, 15, 0, 1, 932, 714] +[:key_held_player_one, 15, 0, 1, 933, 715] +[:key_held_player_one, 15, 0, 1, 934, 716] +[:key_held_player_one, 15, 0, 1, 935, 717] +[:key_held_player_one, 15, 0, 1, 936, 718] +[:key_held_player_one, 15, 0, 1, 937, 719] +[:key_held_player_one, 15, 0, 1, 938, 720] +[:key_held_player_one, 15, 0, 1, 939, 721] +[:key_held_player_one, 15, 0, 1, 940, 722] +[:key_held_player_one, 15, 0, 1, 941, 723] +[:key_held_player_one, 15, 0, 1, 942, 724] +[:key_held_player_one, 15, 0, 1, 943, 725] +[:key_held_player_one, 15, 0, 1, 944, 726] +[:key_held_player_one, 15, 0, 1, 945, 727] +[:key_held_player_one, 15, 0, 1, 946, 728] +[:key_held_player_one, 15, 0, 1, 947, 729] +[:key_held_player_one, 15, 0, 1, 948, 730] +[:key_held_player_one, 15, 0, 1, 949, 731] +[:key_held_player_one, 15, 0, 1, 950, 732] +[:key_held_player_one, 15, 0, 1, 951, 733] +[:key_held_player_one, 15, 0, 1, 952, 734] +[:key_held_player_one, 15, 0, 1, 953, 735] +[:key_held_player_one, 15, 0, 1, 954, 736] +[:key_held_player_one, 15, 0, 1, 955, 737] +[:key_held_player_one, 15, 0, 1, 956, 738] +[:key_held_player_one, 15, 0, 1, 957, 739] +[:key_held_player_one, 15, 0, 1, 958, 740] +[:key_held_player_one, 15, 0, 1, 959, 741] +[:key_held_player_one, 15, 0, 1, 960, 742] +[:key_held_player_one, 15, 0, 1, 961, 743] +[:key_held_player_one, 15, 0, 1, 962, 744] +[:key_held_player_one, 15, 0, 1, 963, 745] +[:key_held_player_one, 15, 0, 1, 964, 746] +[:key_held_player_one, 15, 0, 1, 965, 747] +[:key_held_player_one, 15, 0, 1, 966, 748] +[:key_held_player_one, 15, 0, 1, 967, 749] +[:key_held_player_one, 15, 0, 1, 968, 750] +[:key_held_player_one, 15, 0, 1, 969, 751] +[:key_held_player_one, 15, 0, 1, 970, 752] +[:key_held_player_one, 15, 0, 1, 971, 753] +[:key_held_player_one, 15, 0, 1, 972, 754] +[:key_held_player_one, 15, 0, 1, 973, 755] +[:key_held_player_one, 15, 0, 1, 974, 756] +[:key_held_player_one, 15, 0, 1, 975, 757] +[:key_held_player_one, 15, 0, 1, 976, 758] +[:key_held_player_one, 15, 0, 1, 977, 759] +[:key_held_player_one, 15, 0, 1, 978, 760] +[:key_held_player_one, 15, 0, 1, 979, 761] +[:key_held_player_one, 15, 0, 1, 980, 762] +[:key_held_player_one, 15, 0, 1, 981, 763] +[:key_held_player_one, 15, 0, 1, 982, 764] +[:key_held_player_one, 15, 0, 1, 983, 765] +[:key_held_player_one, 15, 0, 1, 984, 766] +[:key_held_player_one, 15, 0, 1, 985, 767] +[:key_held_player_one, 15, 0, 1, 986, 768] +[:key_held_player_one, 15, 0, 1, 987, 769] +[:key_held_player_one, 15, 0, 1, 988, 770] +[:key_held_player_one, 15, 0, 1, 989, 771] +[:key_held_player_one, 15, 0, 1, 990, 772] +[:key_held_player_one, 15, 0, 1, 991, 773] +[:key_held_player_one, 15, 0, 1, 992, 774] +[:key_held_player_one, 15, 0, 1, 993, 775] +[:key_held_player_one, 15, 0, 1, 994, 776] +[:key_held_player_one, 15, 0, 1, 995, 777] +[:key_held_player_one, 15, 0, 1, 996, 778] +[:key_held_player_one, 15, 0, 1, 997, 779] +[:key_held_player_one, 15, 0, 1, 998, 780] +[:key_held_player_one, 15, 0, 1, 999, 781] +[:key_held_player_one, 15, 0, 1, 1000, 782] +[:key_held_player_one, 15, 0, 1, 1001, 783] +[:key_held_player_one, 15, 0, 1, 1002, 784] +[:key_held_player_one, 15, 0, 1, 1003, 785] +[:key_held_player_one, 15, 0, 1, 1004, 786] +[:key_held_player_one, 15, 0, 1, 1005, 787] +[:key_held_player_one, 15, 0, 1, 1006, 788] +[:key_held_player_one, 15, 0, 1, 1007, 789] +[:key_held_player_one, 15, 0, 1, 1008, 790] +[:key_held_player_one, 15, 0, 1, 1009, 791] +[:key_held_player_one, 15, 0, 1, 1010, 792] +[:key_held_player_one, 15, 0, 1, 1011, 793] +[:key_held_player_one, 15, 0, 1, 1012, 794] +[:key_held_player_one, 15, 0, 1, 1013, 795] +[:key_held_player_one, 15, 0, 1, 1014, 796] +[:key_held_player_one, 15, 0, 1, 1015, 797] +[:key_held_player_one, 15, 0, 1, 1016, 798] +[:key_held_player_one, 15, 0, 1, 1017, 799] +[:key_held_player_one, 15, 0, 1, 1018, 800] +[:key_held_player_one, 15, 0, 1, 1019, 801] +[:key_held_player_one, 15, 0, 1, 1020, 802] +[:key_held_player_one, 15, 0, 1, 1021, 803] +[:key_held_player_one, 15, 0, 1, 1022, 804] +[:key_held_player_one, 15, 0, 1, 1023, 805] +[:key_held_player_one, 15, 0, 1, 1024, 806] +[:key_held_player_one, 15, 0, 1, 1025, 807] +[:key_held_player_one, 15, 0, 1, 1026, 808] +[:key_held_player_one, 15, 0, 1, 1027, 809] +[:key_held_player_one, 15, 0, 1, 1028, 810] +[:key_held_player_one, 15, 0, 1, 1029, 811] +[:key_held_player_one, 15, 0, 1, 1030, 812] +[:key_held_player_one, 15, 0, 1, 1031, 813] +[:key_held_player_one, 15, 0, 1, 1032, 814] +[:key_held_player_one, 15, 0, 1, 1033, 815] +[:key_held_player_one, 15, 0, 1, 1034, 816] +[:key_held_player_one, 15, 0, 1, 1035, 817] +[:key_held_player_one, 15, 0, 1, 1036, 818] +[:key_held_player_one, 15, 0, 1, 1037, 819] +[:key_held_player_one, 15, 0, 1, 1038, 820] +[:key_held_player_one, 15, 0, 1, 1039, 821] +[:key_held_player_one, 15, 0, 1, 1040, 822] +[:key_held_player_one, 15, 0, 1, 1041, 823] +[:key_held_player_one, 15, 0, 1, 1042, 824] +[:key_held_player_one, 15, 0, 1, 1043, 825] +[:key_held_player_one, 15, 0, 1, 1044, 826] +[:key_held_player_one, 15, 0, 1, 1045, 827] +[:key_held_player_one, 15, 0, 1, 1046, 828] +[:key_held_player_one, 15, 0, 1, 1047, 829] +[:key_held_player_one, 15, 0, 1, 1048, 830] +[:key_held_player_one, 15, 0, 1, 1049, 831] +[:key_held_player_one, 15, 0, 1, 1050, 832] +[:key_held_player_one, 15, 0, 1, 1051, 833] +[:key_held_player_one, 15, 0, 1, 1052, 834] +[:key_held_player_one, 15, 0, 1, 1053, 835] +[:key_held_player_one, 15, 0, 1, 1054, 836] +[:key_held_player_one, 15, 0, 1, 1055, 837] +[:key_held_player_one, 15, 0, 1, 1056, 838] +[:key_held_player_one, 15, 0, 1, 1057, 839] +[:key_held_player_one, 15, 0, 1, 1058, 840] +[:key_held_player_one, 15, 0, 1, 1059, 841] +[:key_held_player_one, 15, 0, 1, 1060, 842] +[:key_held_player_one, 15, 0, 1, 1061, 843] +[:key_held_player_one, 15, 0, 1, 1062, 844] +[:key_held_player_one, 15, 0, 1, 1063, 845] +[:key_held_player_one, 15, 0, 1, 1064, 846] +[:key_held_player_one, 15, 0, 1, 1065, 847] +[:key_held_player_one, 15, 0, 1, 1066, 848] +[:key_held_player_one, 15, 0, 1, 1067, 849] +[:key_held_player_one, 15, 0, 1, 1068, 850] +[:key_held_player_one, 15, 0, 1, 1069, 851] +[:key_held_player_one, 15, 0, 1, 1070, 852] +[:key_held_player_one, 15, 0, 1, 1071, 853] +[:key_held_player_one, 15, 0, 1, 1072, 854] +[:key_held_player_one, 15, 0, 1, 1073, 855] +[:key_held_player_one, 15, 0, 1, 1074, 856] +[:key_held_player_one, 15, 0, 1, 1075, 857] +[:key_held_player_one, 15, 0, 1, 1076, 858] +[:key_held_player_one, 15, 0, 1, 1077, 859] +[:key_held_player_one, 15, 0, 1, 1078, 860] +[:key_held_player_one, 15, 0, 1, 1079, 861] +[:key_held_player_one, 15, 0, 1, 1080, 862] +[:key_held_player_one, 15, 0, 1, 1081, 863] +[:key_held_player_one, 15, 0, 1, 1082, 864] +[:key_held_player_one, 15, 0, 1, 1083, 865] +[:key_held_player_one, 15, 0, 1, 1084, 866] +[:key_held_player_one, 15, 0, 1, 1085, 867] +[:key_held_player_one, 15, 0, 1, 1086, 868] +[:key_held_player_one, 15, 0, 1, 1087, 869] +[:key_held_player_one, 15, 0, 1, 1088, 870] +[:key_held_player_one, 15, 0, 1, 1089, 871] +[:key_held_player_one, 15, 0, 1, 1090, 872] +[:key_down_player_one, 4, 0, 1, 1091, 873] +[:key_held_player_one, 15, 0, 1, 1092, 873] +[:key_down_player_one, 27, 0, 1, 1093, 873] +[:key_held_player_one, 4, 0, 1, 1094, 874] +[:key_held_player_one, 15, 0, 1, 1095, 874] +[:key_held_player_one, 27, 0, 1, 1096, 874] +[:key_held_player_one, 4, 0, 1, 1097, 875] +[:key_held_player_one, 15, 0, 1, 1098, 875] +[:key_held_player_one, 27, 0, 1, 1099, 875] +[:key_held_player_one, 4, 0, 1, 1100, 876] +[:key_held_player_one, 15, 0, 1, 1101, 876] +[:key_held_player_one, 27, 0, 1, 1102, 876] +[:key_held_player_one, 4, 0, 1, 1103, 877] +[:key_held_player_one, 15, 0, 1, 1104, 877] +[:key_held_player_one, 27, 0, 1, 1105, 877] +[:key_held_player_one, 4, 0, 1, 1106, 878] +[:key_held_player_one, 15, 0, 1, 1107, 878] +[:key_held_player_one, 27, 0, 1, 1108, 878] +[:key_held_player_one, 4, 0, 1, 1109, 879] +[:key_held_player_one, 15, 0, 1, 1110, 879] +[:key_held_player_one, 27, 0, 1, 1111, 879] +[:key_held_player_one, 4, 0, 1, 1112, 880] +[:key_held_player_one, 15, 0, 1, 1113, 880] +[:key_held_player_one, 27, 0, 1, 1114, 880] +[:key_held_player_one, 4, 0, 1, 1115, 881] +[:key_held_player_one, 15, 0, 1, 1116, 881] +[:key_held_player_one, 27, 0, 1, 1117, 881] +[:key_held_player_one, 4, 0, 1, 1118, 882] +[:key_held_player_one, 15, 0, 1, 1119, 882] +[:key_held_player_one, 27, 0, 1, 1120, 882] +[:key_held_player_one, 4, 0, 1, 1121, 883] +[:key_held_player_one, 15, 0, 1, 1122, 883] +[:key_held_player_one, 27, 0, 1, 1123, 883] +[:key_held_player_one, 4, 0, 1, 1124, 884] +[:key_held_player_one, 15, 0, 1, 1125, 884] +[:key_held_player_one, 27, 0, 1, 1126, 884] +[:key_up_player_one, 4, 0, 1, 1127, 885] +[:key_held_player_one, 15, 0, 1, 1128, 885] +[:key_up_player_one, 27, 0, 1, 1129, 885] +[:key_held_player_one, 15, 0, 1, 1130, 886] +[:key_held_player_one, 15, 0, 1, 1131, 887] +[:key_held_player_one, 15, 0, 1, 1132, 888] +[:key_held_player_one, 15, 0, 1, 1133, 889] +[:key_held_player_one, 15, 0, 1, 1134, 890] +[:key_held_player_one, 15, 0, 1, 1135, 891] +[:key_held_player_one, 15, 0, 1, 1136, 892] +[:key_held_player_one, 15, 0, 1, 1137, 893] +[:key_held_player_one, 15, 0, 1, 1138, 894] +[:key_held_player_one, 15, 0, 1, 1139, 895] +[:key_held_player_one, 15, 0, 1, 1140, 896] +[:key_held_player_one, 15, 0, 1, 1141, 897] +[:key_held_player_one, 15, 0, 1, 1142, 898] +[:key_held_player_one, 15, 0, 1, 1143, 899] +[:key_held_player_one, 15, 0, 1, 1144, 900] +[:key_held_player_one, 15, 0, 1, 1145, 901] +[:key_held_player_one, 15, 0, 1, 1146, 902] +[:key_held_player_one, 15, 0, 1, 1147, 903] +[:key_held_player_one, 15, 0, 1, 1148, 904] +[:key_held_player_one, 15, 0, 1, 1149, 905] +[:key_held_player_one, 15, 0, 1, 1150, 906] +[:key_held_player_one, 15, 0, 1, 1151, 907] +[:key_down_player_one, 4, 0, 1, 1152, 908] +[:key_held_player_one, 15, 0, 1, 1153, 908] +[:key_down_player_one, 27, 0, 1, 1154, 908] +[:key_held_player_one, 4, 0, 1, 1155, 909] +[:key_held_player_one, 15, 0, 1, 1156, 909] +[:key_held_player_one, 27, 0, 1, 1157, 909] +[:key_held_player_one, 4, 0, 1, 1158, 910] +[:key_held_player_one, 15, 0, 1, 1159, 910] +[:key_held_player_one, 27, 0, 1, 1160, 910] +[:key_held_player_one, 4, 0, 1, 1161, 911] +[:key_held_player_one, 15, 0, 1, 1162, 911] +[:key_held_player_one, 27, 0, 1, 1163, 911] +[:key_held_player_one, 4, 0, 1, 1164, 912] +[:key_held_player_one, 15, 0, 1, 1165, 912] +[:key_held_player_one, 27, 0, 1, 1166, 912] +[:key_held_player_one, 4, 0, 1, 1167, 913] +[:key_held_player_one, 15, 0, 1, 1168, 913] +[:key_held_player_one, 27, 0, 1, 1169, 913] +[:key_held_player_one, 4, 0, 1, 1170, 914] +[:key_held_player_one, 15, 0, 1, 1171, 914] +[:key_held_player_one, 27, 0, 1, 1172, 914] +[:key_held_player_one, 4, 0, 1, 1173, 915] +[:key_held_player_one, 15, 0, 1, 1174, 915] +[:key_held_player_one, 27, 0, 1, 1175, 915] +[:key_held_player_one, 4, 0, 1, 1176, 916] +[:key_held_player_one, 15, 0, 1, 1177, 916] +[:key_held_player_one, 27, 0, 1, 1178, 916] +[:key_held_player_one, 4, 0, 1, 1179, 917] +[:key_held_player_one, 15, 0, 1, 1180, 917] +[:key_held_player_one, 27, 0, 1, 1181, 917] +[:key_held_player_one, 4, 0, 1, 1182, 918] +[:key_held_player_one, 15, 0, 1, 1183, 918] +[:key_held_player_one, 27, 0, 1, 1184, 918] +[:key_held_player_one, 4, 0, 1, 1185, 919] +[:key_held_player_one, 15, 0, 1, 1186, 919] +[:key_held_player_one, 27, 0, 1, 1187, 919] +[:key_held_player_one, 4, 0, 1, 1188, 920] +[:key_held_player_one, 15, 0, 1, 1189, 920] +[:key_held_player_one, 27, 0, 1, 1190, 920] +[:key_up_player_one, 4, 0, 1, 1191, 921] +[:key_held_player_one, 15, 0, 1, 1192, 921] +[:key_up_player_one, 27, 0, 1, 1193, 921] +[:key_held_player_one, 15, 0, 1, 1194, 922] +[:key_held_player_one, 15, 0, 1, 1195, 923] +[:key_held_player_one, 15, 0, 1, 1196, 924] +[:key_held_player_one, 15, 0, 1, 1197, 925] +[:key_held_player_one, 15, 0, 1, 1198, 926] +[:key_held_player_one, 15, 0, 1, 1199, 927] +[:key_held_player_one, 15, 0, 1, 1200, 928] +[:key_held_player_one, 15, 0, 1, 1201, 929] +[:key_held_player_one, 15, 0, 1, 1202, 930] +[:key_held_player_one, 15, 0, 1, 1203, 931] +[:key_held_player_one, 15, 0, 1, 1204, 932] +[:key_held_player_one, 15, 0, 1, 1205, 933] +[:key_held_player_one, 15, 0, 1, 1206, 934] +[:key_held_player_one, 15, 0, 1, 1207, 935] +[:key_held_player_one, 15, 0, 1, 1208, 936] +[:key_held_player_one, 15, 0, 1, 1209, 937] +[:key_held_player_one, 15, 0, 1, 1210, 938] +[:key_held_player_one, 15, 0, 1, 1211, 939] +[:key_held_player_one, 15, 0, 1, 1212, 940] +[:key_held_player_one, 15, 0, 1, 1213, 941] +[:key_held_player_one, 15, 0, 1, 1214, 942] +[:key_held_player_one, 15, 0, 1, 1215, 943] +[:key_held_player_one, 15, 0, 1, 1216, 944] +[:key_held_player_one, 15, 0, 1, 1217, 945] +[:key_held_player_one, 15, 0, 1, 1218, 946] +[:key_held_player_one, 15, 0, 1, 1219, 947] +[:key_held_player_one, 15, 0, 1, 1220, 948] +[:key_held_player_one, 15, 0, 1, 1221, 949] +[:key_held_player_one, 15, 0, 1, 1222, 950] +[:key_held_player_one, 15, 0, 1, 1223, 951] +[:key_held_player_one, 15, 0, 1, 1224, 952] +[:key_held_player_one, 15, 0, 1, 1225, 953] +[:key_held_player_one, 15, 0, 1, 1226, 954] +[:key_held_player_one, 15, 0, 1, 1227, 955] +[:key_held_player_one, 15, 0, 1, 1228, 956] +[:key_held_player_one, 15, 0, 1, 1229, 957] +[:key_held_player_one, 15, 0, 1, 1230, 958] +[:key_held_player_one, 15, 0, 1, 1231, 959] +[:key_held_player_one, 15, 0, 1, 1232, 960] +[:key_held_player_one, 15, 0, 1, 1233, 961] +[:key_held_player_one, 15, 0, 1, 1234, 962] +[:key_held_player_one, 15, 0, 1, 1235, 963] +[:key_held_player_one, 15, 0, 1, 1236, 964] +[:key_held_player_one, 15, 0, 1, 1237, 965] +[:key_held_player_one, 15, 0, 1, 1238, 966] +[:key_held_player_one, 15, 0, 1, 1239, 967] +[:key_held_player_one, 15, 0, 1, 1240, 968] +[:key_held_player_one, 15, 0, 1, 1241, 969] +[:key_held_player_one, 15, 0, 1, 1242, 970] +[:key_held_player_one, 15, 0, 1, 1243, 971] +[:key_held_player_one, 15, 0, 1, 1244, 972] +[:key_held_player_one, 15, 0, 1, 1245, 973] +[:key_held_player_one, 15, 0, 1, 1246, 974] +[:key_held_player_one, 15, 0, 1, 1247, 975] +[:key_held_player_one, 15, 0, 1, 1248, 976] +[:key_held_player_one, 15, 0, 1, 1249, 977] +[:key_held_player_one, 15, 0, 1, 1250, 978] +[:key_held_player_one, 15, 0, 1, 1251, 979] +[:key_held_player_one, 15, 0, 1, 1252, 980] +[:key_held_player_one, 15, 0, 1, 1253, 981] +[:key_held_player_one, 15, 0, 1, 1254, 982] +[:key_held_player_one, 15, 0, 1, 1255, 983] +[:key_held_player_one, 15, 0, 1, 1256, 984] +[:key_held_player_one, 15, 0, 1, 1257, 985] +[:key_held_player_one, 15, 0, 1, 1258, 986] +[:key_held_player_one, 15, 0, 1, 1259, 987] +[:key_held_player_one, 15, 0, 1, 1260, 988] +[:key_held_player_one, 15, 0, 1, 1261, 989] +[:key_held_player_one, 15, 0, 1, 1262, 990] +[:key_held_player_one, 15, 0, 1, 1263, 991] +[:key_held_player_one, 15, 0, 1, 1264, 992] +[:key_held_player_one, 15, 0, 1, 1265, 993] +[:key_held_player_one, 15, 0, 1, 1266, 994] +[:key_held_player_one, 15, 0, 1, 1267, 995] +[:key_held_player_one, 15, 0, 1, 1268, 996] +[:key_held_player_one, 15, 0, 1, 1269, 997] +[:key_held_player_one, 15, 0, 1, 1270, 998] +[:key_held_player_one, 15, 0, 1, 1271, 999] +[:key_held_player_one, 15, 0, 1, 1272, 1000] +[:key_held_player_one, 15, 0, 1, 1273, 1001] +[:key_held_player_one, 15, 0, 1, 1274, 1002] +[:key_held_player_one, 15, 0, 1, 1275, 1003] +[:key_held_player_one, 15, 0, 1, 1276, 1004] +[:key_held_player_one, 15, 0, 1, 1277, 1005] +[:key_held_player_one, 15, 0, 1, 1278, 1006] +[:key_held_player_one, 15, 0, 1, 1279, 1007] +[:key_held_player_one, 15, 0, 1, 1280, 1008] +[:key_held_player_one, 15, 0, 1, 1281, 1009] +[:key_held_player_one, 15, 0, 1, 1282, 1010] +[:key_held_player_one, 15, 0, 1, 1283, 1011] +[:key_held_player_one, 15, 0, 1, 1284, 1012] +[:key_held_player_one, 15, 0, 1, 1285, 1013] +[:key_held_player_one, 15, 0, 1, 1286, 1014] +[:key_held_player_one, 15, 0, 1, 1287, 1015] +[:key_held_player_one, 15, 0, 1, 1288, 1016] +[:key_held_player_one, 15, 0, 1, 1289, 1017] +[:key_held_player_one, 15, 0, 1, 1290, 1018] +[:key_held_player_one, 15, 0, 1, 1291, 1019] +[:key_held_player_one, 15, 0, 1, 1292, 1020] +[:key_held_player_one, 15, 0, 1, 1293, 1021] +[:key_held_player_one, 15, 0, 1, 1294, 1022] +[:key_held_player_one, 15, 0, 1, 1295, 1023] +[:key_held_player_one, 15, 0, 1, 1296, 1024] +[:key_held_player_one, 15, 0, 1, 1297, 1025] +[:key_held_player_one, 15, 0, 1, 1298, 1026] +[:key_held_player_one, 15, 0, 1, 1299, 1027] +[:key_held_player_one, 15, 0, 1, 1300, 1028] +[:key_held_player_one, 15, 0, 1, 1301, 1029] +[:key_held_player_one, 15, 0, 1, 1302, 1030] +[:key_held_player_one, 15, 0, 1, 1303, 1031] +[:key_held_player_one, 15, 0, 1, 1304, 1032] +[:key_held_player_one, 15, 0, 1, 1305, 1033] +[:key_held_player_one, 15, 0, 1, 1306, 1034] +[:key_held_player_one, 15, 0, 1, 1307, 1035] +[:key_held_player_one, 15, 0, 1, 1308, 1036] +[:key_held_player_one, 15, 0, 1, 1309, 1037] +[:key_held_player_one, 15, 0, 1, 1310, 1038] +[:key_held_player_one, 15, 0, 1, 1311, 1039] +[:key_held_player_one, 15, 0, 1, 1312, 1040] +[:key_held_player_one, 15, 0, 1, 1313, 1041] +[:key_held_player_one, 15, 0, 1, 1314, 1042] +[:key_held_player_one, 15, 0, 1, 1315, 1043] +[:key_held_player_one, 15, 0, 1, 1316, 1044] +[:key_held_player_one, 15, 0, 1, 1317, 1045] +[:key_held_player_one, 15, 0, 1, 1318, 1046] +[:key_held_player_one, 15, 0, 1, 1319, 1047] +[:key_held_player_one, 15, 0, 1, 1320, 1048] +[:key_held_player_one, 15, 0, 1, 1321, 1049] +[:key_held_player_one, 15, 0, 1, 1322, 1050] +[:key_held_player_one, 15, 0, 1, 1323, 1051] +[:key_held_player_one, 15, 0, 1, 1324, 1052] +[:key_held_player_one, 15, 0, 1, 1325, 1053] +[:key_held_player_one, 15, 0, 1, 1326, 1054] +[:key_held_player_one, 15, 0, 1, 1327, 1055] +[:key_held_player_one, 15, 0, 1, 1328, 1056] +[:key_held_player_one, 15, 0, 1, 1329, 1057] +[:key_held_player_one, 15, 0, 1, 1330, 1058] +[:key_held_player_one, 15, 0, 1, 1331, 1059] +[:key_held_player_one, 15, 0, 1, 1332, 1060] +[:key_held_player_one, 15, 0, 1, 1333, 1061] +[:key_held_player_one, 15, 0, 1, 1334, 1062] +[:key_held_player_one, 15, 0, 1, 1335, 1063] +[:key_down_player_one, 3, 0, 1, 1336, 1064] +[:key_held_player_one, 15, 0, 1, 1337, 1064] +[:key_down_player_one, 26, 0, 1, 1338, 1064] +[:key_held_player_one, 3, 0, 1, 1339, 1065] +[:key_held_player_one, 15, 0, 1, 1340, 1065] +[:key_held_player_one, 26, 0, 1, 1341, 1065] +[:key_held_player_one, 3, 0, 1, 1342, 1066] +[:key_held_player_one, 15, 0, 1, 1343, 1066] +[:key_held_player_one, 26, 0, 1, 1344, 1066] +[:key_held_player_one, 3, 0, 1, 1345, 1067] +[:key_held_player_one, 15, 0, 1, 1346, 1067] +[:key_held_player_one, 26, 0, 1, 1347, 1067] +[:key_held_player_one, 3, 0, 1, 1348, 1068] +[:key_held_player_one, 15, 0, 1, 1349, 1068] +[:key_held_player_one, 26, 0, 1, 1350, 1068] +[:key_held_player_one, 3, 0, 1, 1351, 1069] +[:key_held_player_one, 15, 0, 1, 1352, 1069] +[:key_held_player_one, 26, 0, 1, 1353, 1069] +[:key_held_player_one, 3, 0, 1, 1354, 1070] +[:key_held_player_one, 15, 0, 1, 1355, 1070] +[:key_held_player_one, 26, 0, 1, 1356, 1070] +[:key_held_player_one, 3, 0, 1, 1357, 1071] +[:key_held_player_one, 15, 0, 1, 1358, 1071] +[:key_held_player_one, 26, 0, 1, 1359, 1071] +[:key_held_player_one, 3, 0, 1, 1360, 1072] +[:key_held_player_one, 15, 0, 1, 1361, 1072] +[:key_held_player_one, 26, 0, 1, 1362, 1072] +[:key_held_player_one, 3, 0, 1, 1363, 1073] +[:key_held_player_one, 15, 0, 1, 1364, 1073] +[:key_held_player_one, 26, 0, 1, 1365, 1073] +[:key_held_player_one, 3, 0, 1, 1366, 1074] +[:key_held_player_one, 15, 0, 1, 1367, 1074] +[:key_held_player_one, 26, 0, 1, 1368, 1074] +[:key_held_player_one, 3, 0, 1, 1369, 1075] +[:key_held_player_one, 15, 0, 1, 1370, 1075] +[:key_held_player_one, 26, 0, 1, 1371, 1075] +[:key_held_player_one, 3, 0, 1, 1372, 1076] +[:key_held_player_one, 15, 0, 1, 1373, 1076] +[:key_held_player_one, 26, 0, 1, 1374, 1076] +[:key_held_player_one, 3, 0, 1, 1375, 1077] +[:key_held_player_one, 15, 0, 1, 1376, 1077] +[:key_held_player_one, 26, 0, 1, 1377, 1077] +[:key_held_player_one, 3, 0, 1, 1378, 1078] +[:key_held_player_one, 15, 0, 1, 1379, 1078] +[:key_held_player_one, 26, 0, 1, 1380, 1078] +[:key_held_player_one, 3, 0, 1, 1381, 1079] +[:key_held_player_one, 15, 0, 1, 1382, 1079] +[:key_held_player_one, 26, 0, 1, 1383, 1079] +[:key_held_player_one, 3, 0, 1, 1384, 1080] +[:key_held_player_one, 15, 0, 1, 1385, 1080] +[:key_held_player_one, 26, 0, 1, 1386, 1080] +[:key_held_player_one, 3, 0, 1, 1387, 1081] +[:key_held_player_one, 15, 0, 1, 1388, 1081] +[:key_held_player_one, 26, 0, 1, 1389, 1081] +[:key_held_player_one, 3, 0, 1, 1390, 1082] +[:key_held_player_one, 15, 0, 1, 1391, 1082] +[:key_held_player_one, 26, 0, 1, 1392, 1082] +[:key_held_player_one, 3, 0, 1, 1393, 1083] +[:key_held_player_one, 15, 0, 1, 1394, 1083] +[:key_held_player_one, 26, 0, 1, 1395, 1083] +[:key_held_player_one, 3, 0, 1, 1396, 1084] +[:key_held_player_one, 15, 0, 1, 1397, 1084] +[:key_held_player_one, 26, 0, 1, 1398, 1084] +[:key_held_player_one, 3, 0, 1, 1399, 1085] +[:key_held_player_one, 15, 0, 1, 1400, 1085] +[:key_held_player_one, 26, 0, 1, 1401, 1085] +[:key_held_player_one, 3, 0, 1, 1402, 1086] +[:key_held_player_one, 15, 0, 1, 1403, 1086] +[:key_held_player_one, 26, 0, 1, 1404, 1086] +[:key_held_player_one, 3, 0, 1, 1405, 1087] +[:key_held_player_one, 15, 0, 1, 1406, 1087] +[:key_held_player_one, 26, 0, 1, 1407, 1087] +[:key_held_player_one, 3, 0, 1, 1408, 1088] +[:key_held_player_one, 15, 0, 1, 1409, 1088] +[:key_held_player_one, 26, 0, 1, 1410, 1088] +[:key_held_player_one, 3, 0, 1, 1411, 1089] +[:key_held_player_one, 15, 0, 1, 1412, 1089] +[:key_held_player_one, 26, 0, 1, 1413, 1089] +[:key_held_player_one, 3, 0, 1, 1414, 1090] +[:key_held_player_one, 15, 0, 1, 1415, 1090] +[:key_held_player_one, 26, 0, 1, 1416, 1090] +[:key_held_player_one, 3, 0, 1, 1417, 1091] +[:key_held_player_one, 15, 0, 1, 1418, 1091] +[:key_held_player_one, 26, 0, 1, 1419, 1091] +[:key_held_player_one, 3, 0, 1, 1420, 1092] +[:key_held_player_one, 15, 0, 1, 1421, 1092] +[:key_held_player_one, 26, 0, 1, 1422, 1092] +[:key_held_player_one, 3, 0, 1, 1423, 1093] +[:key_held_player_one, 15, 0, 1, 1424, 1093] +[:key_held_player_one, 26, 0, 1, 1425, 1093] +[:key_held_player_one, 3, 0, 1, 1426, 1094] +[:key_held_player_one, 15, 0, 1, 1427, 1094] +[:key_held_player_one, 26, 0, 1, 1428, 1094] +[:key_held_player_one, 3, 0, 1, 1429, 1095] +[:key_held_player_one, 15, 0, 1, 1430, 1095] +[:key_held_player_one, 26, 0, 1, 1431, 1095] +[:key_held_player_one, 3, 0, 1, 1432, 1096] +[:key_held_player_one, 15, 0, 1, 1433, 1096] +[:key_held_player_one, 26, 0, 1, 1434, 1096] +[:key_held_player_one, 3, 0, 1, 1435, 1097] +[:key_held_player_one, 15, 0, 1, 1436, 1097] +[:key_held_player_one, 26, 0, 1, 1437, 1097] +[:key_held_player_one, 3, 0, 1, 1438, 1098] +[:key_held_player_one, 15, 0, 1, 1439, 1098] +[:key_held_player_one, 26, 0, 1, 1440, 1098] +[:key_held_player_one, 3, 0, 1, 1441, 1099] +[:key_held_player_one, 15, 0, 1, 1442, 1099] +[:key_held_player_one, 26, 0, 1, 1443, 1099] +[:key_held_player_one, 3, 0, 1, 1444, 1100] +[:key_held_player_one, 15, 0, 1, 1445, 1100] +[:key_held_player_one, 26, 0, 1, 1446, 1100] +[:key_held_player_one, 3, 0, 1, 1447, 1101] +[:key_held_player_one, 15, 0, 1, 1448, 1101] +[:key_held_player_one, 26, 0, 1, 1449, 1101] +[:key_held_player_one, 3, 0, 1, 1450, 1102] +[:key_held_player_one, 15, 0, 1, 1451, 1102] +[:key_held_player_one, 26, 0, 1, 1452, 1102] +[:key_held_player_one, 3, 0, 1, 1453, 1103] +[:key_held_player_one, 15, 0, 1, 1454, 1103] +[:key_held_player_one, 26, 0, 1, 1455, 1103] +[:key_held_player_one, 3, 0, 1, 1456, 1104] +[:key_up_player_one, 15, 0, 1, 1457, 1104] +[:key_held_player_one, 26, 0, 1, 1458, 1104] +[:key_held_player_one, 3, 0, 1, 1459, 1105] +[:key_held_player_one, 26, 0, 1, 1460, 1105] +[:key_held_player_one, 3, 0, 1, 1461, 1106] +[:key_held_player_one, 26, 0, 1, 1462, 1106] +[:key_up_player_one, 3, 0, 1, 1463, 1107] +[:key_up_player_one, 26, 0, 1, 1464, 1107] +[:key_down_raw, 1073742051, 1024, 2, 1465, 1197] +[:key_down_raw, 113, 1024, 2, 1466, 1197] +[:key_up_raw, 113, 1024, 2, 1467, 1197] +[:key_up_raw, 1073742051, 0, 2, 1468, 1197] diff --git a/samples/99_genre_arcade/solar_system/sounds/bg.ogg b/samples/99_genre_arcade/solar_system/sounds/bg.ogg Binary files differnew file mode 100644 index 0000000..8a02a75 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sounds/bg.ogg diff --git a/samples/99_genre_arcade/solar_system/sprites/earth.png b/samples/99_genre_arcade/solar_system/sprites/earth.png Binary files differnew file mode 100644 index 0000000..294f3aa --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/earth.png diff --git a/samples/99_genre_arcade/solar_system/sprites/jupiter.png b/samples/99_genre_arcade/solar_system/sprites/jupiter.png Binary files differnew file mode 100644 index 0000000..b128b0e --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/jupiter.png diff --git a/samples/99_genre_arcade/solar_system/sprites/mars.png b/samples/99_genre_arcade/solar_system/sprites/mars.png Binary files differnew file mode 100644 index 0000000..5d0f8ed --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/mars.png diff --git a/samples/99_genre_arcade/solar_system/sprites/mercury.png b/samples/99_genre_arcade/solar_system/sprites/mercury.png Binary files differnew file mode 100644 index 0000000..3ace04d --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/mercury.png diff --git a/samples/99_genre_arcade/solar_system/sprites/neptune.png b/samples/99_genre_arcade/solar_system/sprites/neptune.png Binary files differnew file mode 100644 index 0000000..1f22686 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/neptune.png diff --git a/samples/99_genre_arcade/solar_system/sprites/orbit.png b/samples/99_genre_arcade/solar_system/sprites/orbit.png Binary files differnew file mode 100644 index 0000000..39d0891 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/orbit.png diff --git a/samples/99_genre_arcade/solar_system/sprites/particle.png b/samples/99_genre_arcade/solar_system/sprites/particle.png Binary files differnew file mode 100644 index 0000000..6143f2f --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/particle.png diff --git a/samples/99_genre_arcade/solar_system/sprites/pluto.png b/samples/99_genre_arcade/solar_system/sprites/pluto.png Binary files differnew file mode 100644 index 0000000..2d9916c --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/pluto.png diff --git a/samples/99_genre_arcade/solar_system/sprites/saturn.png b/samples/99_genre_arcade/solar_system/sprites/saturn.png Binary files differnew file mode 100644 index 0000000..8ca95a8 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/saturn.png diff --git a/samples/99_genre_arcade/solar_system/sprites/ship.png b/samples/99_genre_arcade/solar_system/sprites/ship.png Binary files differnew file mode 100644 index 0000000..3ef5f0b --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/ship.png diff --git a/samples/99_genre_arcade/solar_system/sprites/star.png b/samples/99_genre_arcade/solar_system/sprites/star.png Binary files differnew file mode 100644 index 0000000..e0ee0f9 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/star.png diff --git a/samples/99_genre_arcade/solar_system/sprites/sun.png b/samples/99_genre_arcade/solar_system/sprites/sun.png Binary files differnew file mode 100644 index 0000000..9ee3cba --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/sun.png diff --git a/samples/99_genre_arcade/solar_system/sprites/uranus.png b/samples/99_genre_arcade/solar_system/sprites/uranus.png Binary files differnew file mode 100644 index 0000000..bb9c206 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/uranus.png diff --git a/samples/99_genre_arcade/solar_system/sprites/venus.png b/samples/99_genre_arcade/solar_system/sprites/venus.png Binary files differnew file mode 100644 index 0000000..28ac8e4 --- /dev/null +++ b/samples/99_genre_arcade/solar_system/sprites/venus.png |
