diff --git a/scripts/Scene_OF.rb b/scripts/Scene_OF.rb index 48d11ca..3bde737 100644 --- a/scripts/Scene_OF.rb +++ b/scripts/Scene_OF.rb @@ -1,5 +1,5 @@ class Scene_OF - BPM = 135 + BPM = 100 BPM_TIME = 1.0 / (BPM / 60.0) * Graphics.frame_rate * 2 BUMP_SCALE = 1.07 @@ -11,8 +11,10 @@ class Scene_OF ARROWS_TOP_MARGIN = 32 ARROWS_SIDES_MARGIN = 48 + HALF_OF_ARROW = ARROW_SIZE * ARROW_SCALE / 2 + ARROWS_SPEED = 10 - ARROWS_ALLOW_ZONE_SIZE = 40 + ARROWS_ALLOW_ZONE_SIZE = 50 HP_WIDTH = 400 HP_HEIGHT = 16 @@ -91,17 +93,13 @@ class Scene_OF @cat_flying_arrows = [] @player_flying_arrows = [] - @player_arrows = [] + @cat_tails = [] + @cat_tails_end = [] + @player_tails = [] + @player_tails_end = [] @cat_arrows = [] + @player_arrows = [] for i in 0..3 - player_arrow = Sprite.new(@viewport_ui) - player_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE) - player_arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[PLAYER_ARROWS_SPRITES[:base][i]]) - player_arrow.zoom_x = player_arrow.zoom_y = ARROW_SCALE - player_arrow.x = Graphics.width / 2 - ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * i - (ARROW_SIZE * ARROW_SCALE * 4 + ARROWS_PADDING * 3) - player_arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 - @player_arrows << player_arrow - cat_arrow = Sprite.new(@viewport_ui) cat_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE) cat_arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[CAT_ARROWS_SPRITES[:base][i]]) @@ -109,6 +107,14 @@ class Scene_OF cat_arrow.x = ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * i - Graphics.width / 2 cat_arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 @cat_arrows << cat_arrow + + player_arrow = Sprite.new(@viewport_ui) + player_arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE) + player_arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[PLAYER_ARROWS_SPRITES[:base][i]]) + player_arrow.zoom_x = player_arrow.zoom_y = ARROW_SCALE + player_arrow.x = Graphics.width / 2 - ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * i - (ARROW_SIZE * ARROW_SCALE * 4 + ARROWS_PADDING * 3) + player_arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + @player_arrows << player_arrow end @simple_bitmap = Bitmap.new(1, 1) @@ -187,21 +193,95 @@ class Scene_OF @bst_debug.bitmap.clear @bst_debug.bitmap.draw_text(Rect.new(0, 0, 300, 40), "#{beat} : #{step} : #{tick}") - - @cat_flying_arrows.each do |arrow| +2 + # Cat Arrows + i = 0 + while i < @cat_flying_arrows.length + arrow = @cat_flying_arrows[i] arrow[0].y -= ARROWS_SPEED if arrow[0].y < ARROWS_TOP_MARGIN - Graphics.height / 2 arrow[0].dispose @cat_flying_arrows.delete(arrow) + i -= 1 end + i += 1 end - @player_flying_arrows.each do |arrow| + # Cat Arrows Tails (kolbaski) + i = 0 + while i < @cat_tails.length + arrow = @cat_tails[i] + arrow[0].y -= ARROWS_SPEED + if arrow[0].y < ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW + delta = (ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW) - arrow[0].y + arrow[0].y += delta + arrow[0].zoom_y -= pixels_to_zoom(arrow[0], delta) + if (arrow[0].zoom_y <= 0) + arrow[0].dispose + @cat_tails.delete(arrow) + i -= 1 + end + end + i += 1 + end + # Cat Tails ends + i = 0 + while i < @cat_tails_end.length + arrow = @cat_tails_end[i] + arrow[0].y -= ARROWS_SPEED + if arrow[0].y < ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW + arrow[0].dispose + @cat_tails_end.delete(arrow) + i -= 1 + end + i += 1 + end + # Player Arrows + i = 0 + while i < @player_flying_arrows.length + arrow = @player_flying_arrows[i] arrow[0].y -= ARROWS_SPEED if arrow[0].y < - Graphics.height / 2 - ARROW_SIZE * ARROW_SCALE miss arrow[0].dispose @player_flying_arrows.delete(arrow) + i -= 1 + #elsif arrow[0].y < ARROW_SIZE * ARROW_SCALE + # arrow[0].dispose + # @player_flying_arrows.delete(arrow) + # i -= 1 end + i += 1 + end + # Player Arrows Tails (kolbaski) + i = 0 + while i < @player_tails.length + arrow = @player_tails[i] + arrow[0].y -= ARROWS_SPEED + if arrow[0].y < -Graphics.height / 2 + delta = -Graphics.height / 2 - arrow[0].y + arrow[0].y += delta + arrow[0].zoom_y -= pixels_to_zoom(arrow[0], delta) + miss(0.5) + if (arrow[0].zoom_y <= 0) + arrow[0].dispose + @player_tails.delete(arrow) + i -= 1 + end + end + i += 1 + end + # Player Tails ends + i = 0 + while i < @player_tails_end.length + arrow = @player_tails_end[i] + arrow[0].y -= ARROWS_SPEED + if arrow[0].y < - Graphics.height / 2 - ARROW_SIZE * ARROW_SCALE / 2 + miss(0.5) + arrow[0].dispose + @player_tails_end.delete(arrow) + i -= 1 + end + i += 1 end @bump_timeout -= 1 @@ -214,16 +294,58 @@ class Scene_OF @viewport_arrows.scale_y = @viewport_ui.scale_y = @viewport_ui.scale_y * (1.0 - BUMP_RETURN_SPEED) + BUMP_RETURN_SPEED # player - for i in 1..4 - mapped = map_input(i * 2) - is_pressed = Input.press?(i * 2) + for dir in 1..4 + mapped = map_input(dir * 2) + is_pressed = Input.press?(dir * 2) if @arrows_states[mapped] != is_pressed @arrows_states[mapped] = is_pressed @player_arrows[mapped].bitmap.clear @player_arrows[mapped].bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE), @spritesheet, SPRITES[PLAYER_ARROWS_SPRITES[@arrows_states[mapped] ? :pressed : :base][mapped]]) end + + if is_pressed + + doing = true + i = 0 + while doing && i < @player_tails.length + arrow = @player_tails[i] + if arrow[1] == mapped + if arrow[0].y > ARROWS_TOP_MARGIN - Graphics.height / 2 + if arrow[0].y < ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW + delta = (ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW) - arrow[0].y + arrow[0].y += delta + arrow[0].zoom_y -= pixels_to_zoom(arrow[0], delta) + self.hp += 0.5 + if (arrow[0].zoom_y <= 0) + arrow[0].dispose + @player_tails.delete(arrow) + end + end + doing = false + end + end + i += 1 + end + + doing = true + i = 0 + while doing && i < @player_tails_end.length + arrow = @player_tails_end[i] + if arrow[1] == mapped + if arrow[0].y > ARROWS_TOP_MARGIN - Graphics.height / 2 + if arrow[0].y < ARROWS_TOP_MARGIN - Graphics.height / 2 + HALF_OF_ARROW + arrow[0].dispose + @player_tails_end.delete(arrow) + self.hp += 0.5 + end + end + doing = false + end + i += 1 + end + end - if Input.trigger?(i * 2) + if Input.trigger?(dir * 2) doing = true i = 0 while doing && i < @player_flying_arrows.length @@ -248,10 +370,12 @@ class Scene_OF end end - def miss - self.hp -= 10 - @miss_sound.play(0, 0.6, rand(75..125) / 100.0) + def miss(hp = 10) + self.hp -= hp @miss_timeout = MISS_TIME + if !@miss_sound.playing || @miss_sound.position > 0.1 + @miss_sound.play(0, 0.6, rand(75..125) / 100.0) + end end def hp @@ -281,36 +405,74 @@ class Scene_OF #beat = (@total_time / BPM_TIME / 2).to_i + 1 #step = (@total_time / BPM_TIME * 15 / 2).to_i % 15 + 1 #tick = (@total_time / BPM_TIME * 24 * 15 / 2).to_i % 24 - SONG_MAPPING.each do |line_data| + i = 0 + while i < SONG_MAPPING.length + line_data = SONG_MAPPING[i] beat = line_data[1] step = line_data[2] tick = line_data[3] - for i in 0..3 - if line_data[0][i] == '#' - arrow = make_arrow(i, true) - arrow.x = ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * i - Graphics.width / 2 - arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + - (beat - 1) * 2 * BPM_TIME * ARROWS_SPEED + - (step - 1) / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + - (tick) / 24.0 / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + lenght = bst2time((line_data[4] || 0) + 1, (line_data[5] || 0) + 1, line_data[6] || 0) - HALF_OF_ARROW + for dir in 0..3 + cat_arrow_x = ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * dir - Graphics.width / 2 + player_arrow_x = Graphics.width / 2 - ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * dir - (ARROW_SIZE * ARROW_SCALE * 4 + ARROWS_PADDING * 3) - @cat_flying_arrows << [arrow, i] + if line_data[0][dir] == '#' + arrow = make_arrow(dir, true) + arrow.x = cat_arrow_x + arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32 + arrow.z += 1 + + @cat_flying_arrows << [arrow, dir] + + if lenght > 0 + tail = make_tail(dir, true) + tail.x = cat_arrow_x + tail.y = arrow.y + HALF_OF_ARROW + + tail.zoom_y = pixels_to_zoom(tail, lenght + HALF_OF_ARROW) + + @cat_tails << [tail, dir] + + tail_end_arrow = make_tail_end(dir, true) + tail_end_arrow.x = cat_arrow_x + tail_end_arrow.y = arrow.y + lenght + ARROW_SIZE * ARROW_SCALE + @cat_tails_end << [tail_end_arrow, dir] + end end - if line_data[0][i + 5] == '#' - arrow = make_arrow(i, false) - arrow.x = Graphics.width / 2 - ARROWS_SIDES_MARGIN + (ARROW_SIZE * ARROW_SCALE + ARROWS_PADDING) * i - (ARROW_SIZE * ARROW_SCALE * 4 + ARROWS_PADDING * 3) - arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + - (beat - 1) * 2 * BPM_TIME * ARROWS_SPEED + - (step - 1) / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + - (tick) / 24.0 / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + if line_data[0][dir + 5] == '#' + arrow = make_arrow(dir, false) + arrow.x = player_arrow_x + arrow.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 32 + arrow.z += 1 - @player_flying_arrows << [arrow, i] + @player_flying_arrows << [arrow, dir] + + if lenght > 0 + tail = make_tail(dir, false) + tail.x = player_arrow_x + tail.y = arrow.y + HALF_OF_ARROW + + tail.zoom_y = pixels_to_zoom(tail, lenght + HALF_OF_ARROW) + + @player_tails << [tail, dir] + + tail_end_arrow = make_tail_end(dir, false) + tail_end_arrow.x = player_arrow_x + tail_end_arrow.y = arrow.y + lenght + ARROW_SIZE * ARROW_SCALE + @player_tails_end << [tail_end_arrow, dir] + end end end + + i += 1 end end + def pixels_to_zoom(sprite, pixels, voh = false) # false - vertical, true - horizontal + pixels.to_f / (voh ? sprite.bitmap.width.to_f : sprite.bitmap.height.to_f) + end + def make_arrow(direction, meow) arrow = Sprite.new(@viewport_arrows) arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE) @@ -319,60 +481,301 @@ class Scene_OF arrow end - SONG_MAPPING = [ - # arrows, B, S, T - ["# | ", 5, 1, 0], - [" # | ", 5, 3, 0], - [" # | ", 5, 5, 0], - [" #| ", 5, 9, 0], - [" # | ", 5, 13, 0], - ["# | ", 6, 1, 0], - [" # | ", 6, 3, 0], - [" # | ", 6, 5, 0], - [" # | ", 6, 9, 0], - ["# | ", 6, 13, 0], - [" # | ", 7, 1, 0], - [" #| ", 7, 3, 0], - [" # | ", 7, 5, 0], - ["# | ", 7, 9, 0], - ["# | ", 7, 13, 0], - ["# | ", 8, 1, 0], - [" # | ", 8, 3, 0], - [" # | ", 8, 6, 0], - [" # | ", 8, 8, 0], - [" # | ", 8, 11, 0], - [" #| ", 8, 13, 0], + def make_tail(direction, meow) + arrow = Sprite.new(@viewport_arrows) + arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2) + arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail][direction]]) + arrow.zoom_x = arrow.zoom_y = ARROW_SCALE + arrow + end - [" |# ", 9, 1, 0], - [" | # ", 9, 3, 0], - [" | # ", 9, 5, 0], - [" | #", 9, 9, 0], - [" | # ", 9, 13, 0], - [" |# ", 10, 1, 0], - [" | # ", 10, 3, 0], - [" | # ", 10, 5, 0], - [" | # ", 10, 9, 0], - [" |# ", 10, 13, 0], - [" | # ", 11, 1, 0], - [" | #", 11, 3, 0], - [" | # ", 11, 5, 0], - [" |# ", 11, 9, 0], - [" |# ", 11, 13, 0], - [" |# ", 12, 1, 0], - [" | # ", 12, 3, 0], + def make_tail_end(direction, meow) + arrow = Sprite.new(@viewport_arrows) + arrow.bitmap = Bitmap.new(ARROW_SIZE, ARROW_SIZE / 2) + arrow.bitmap.stretch_blt(Rect.new(0, 0, ARROW_SIZE, ARROW_SIZE / 2), @spritesheet, SPRITES[(meow ? CAT_ARROWS_SPRITES : PLAYER_ARROWS_SPRITES)[:tail_end][direction]]) + arrow.zoom_x = arrow.zoom_y = ARROW_SCALE + arrow + end + + def bst2time(b, s, t) + (b - 1) * 2 * BPM_TIME * ARROWS_SPEED + + (s - 1) / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + + t / 24.0 / 15.0 * 2 * BPM_TIME * ARROWS_SPEED + end + + SONG_MAPPING = [ # Length + # arrows, B, S, T, | B, S, T + ["# | ", 5, 1, 0, 0, 1, 0], + [" # | ", 5, 3, 0, 0, 1, 0], + [" # | ", 5, 5, 0, 0, 1, 0], + [" #| ", 5, 9, 0, 0, 1, 0], + [" # | ", 5, 13, 0, 0, 1, 0], + ["# | ", 6, 1, 0, 0, 1, 0], + [" # | ", 6, 3, 0, 0, 1, 0], + [" # | ", 6, 5, 0, 0, 1, 0], + [" # | ", 6, 9, 0, 0, 1, 0], + ["# | ", 6, 13, 0, 0, 1, 0], + [" # | ", 7, 1, 0, 0, 1, 0], + [" #| ", 7, 3, 0, 0, 1, 0], + [" # | ", 7, 5, 0, 0, 1, 0], + ["# | ", 7, 9, 0, 0, 1, 0], + ["# | ", 7, 13, 0, 0, 1, 0], + ["# | ", 8, 1, 0, 0, 1, 0], + [" # | ", 8, 3, 0, 0, 1, 0], + [" # | ", 8, 6, 0, 0, 1, 0], + [" # | ", 8, 8, 0, 0, 1, 0], + [" # | ", 8, 11, 0, 0, 1, 0], + [" #| ", 8, 13, 0, 0, 1, 0], + + [" |# ", 9, 1, 0, 0, 1, 0], + [" | # ", 9, 3, 0, 0, 1, 0], + [" | # ", 9, 5, 0, 0, 1, 0], + [" | #", 9, 9, 0, 0, 1, 0], + [" | # ", 9, 13, 0, 0, 1, 0], + [" |# ", 10, 1, 0, 0, 1, 0], + [" | # ", 10, 3, 0, 0, 1, 0], + [" | # ", 10, 5, 0, 0, 1, 0], + [" | # ", 10, 9, 0, 0, 1, 0], + [" |# ", 10, 13, 0, 0, 1, 0], + [" | # ", 11, 1, 0, 0, 1, 0], + [" | #", 11, 3, 0, 0, 1, 0], + [" | # ", 11, 5, 0, 0, 1, 0], + [" |# ", 11, 9, 0, 0, 1, 0], + [" |# ", 11, 13, 0, 0, 1, 0], + [" |# ", 12, 1, 0, 0, 1, 0], + [" | # ", 12, 3, 0, 0, 1, 0], [" | # ", 12, 5, 0], [" | # ", 12, 6, 0], [" | # ", 12, 7, 0], [" | # ", 12, 8, 0], [" | # ", 12, 9, 0], [" | #", 12, 10, 0], - [" | # ", 12, 11, 0], + [" | # ", 12, 11, 0, 0, 1, 0], [" |# ", 12, 13, 0], [" |# ", 12, 15, 0], #[" |# ", 12, 15, 12], [" |# ", 12, 16, 0], #[" |# ", 12, 16, 12], - [" |# ", 13, 1, 0], + #[" |# ", 13, 1, 0], + + ["# | ", 13, 1, 0], + [" # | ", 13, 2, 0], + [" # | ", 13, 3, 0], + [" # | ", 13, 4, 0], + ["# | ", 13, 5, 0, 0, 1, 0], + [" #| ", 13, 7, 0], + ["# | ", 13, 8, 0], + [" # | ", 13, 9, 0], + ["# | ", 13, 10, 0], + [" # | ", 13, 11, 0], + [" #| ", 13, 12, 0], + [" # | ", 13, 13, 0, 0, 1, 0], + [" # | ", 13, 15, 0], + [" #| ", 14, 1, 0], + [" # | ", 14, 2, 0], + ["# | ", 14, 3, 0], + [" # | ", 14, 4, 0], + ["# | ", 14, 5, 0, 0, 1, 0], + [" # | ", 14, 7, 0], + ["# | ", 14, 8, 0], + [" # | ", 14, 9, 0], + [" #| ", 14, 10, 0], + [" # | ", 14, 11, 0], + [" #| ", 14, 12, 0], + [" # | ", 14, 13, 0, 0, 1, 0], + ["# | ", 14, 15, 0], + [" # | ", 15, 1, 0], + [" #| ", 15, 2, 0], + [" # | ", 15, 3, 0], + ["# | ", 15, 4, 0], + ["# | ", 15, 5, 0, 0, 1, 0], + [" # | ", 15, 7, 0], + [" #| ", 15, 8, 0], + [" # | ", 15, 9, 0], + [" # | ", 15, 10, 0], + [" # | ", 15, 11, 0], + [" # | ", 15, 12, 0], + [" #| ", 15, 13, 0, 0, 1, 0], + ["# | ", 15, 15, 0, 0, 1, 0], + [" #| ", 16, 1, 0], + [" # | ", 16, 2, 0], + [" # | ", 16, 3, 0], + ["# | ", 16, 4, 0], + [" # | ", 16, 5, 0], + [" # | ", 16, 7, 0], + [" # | ", 16, 8, 0], + ["# | ", 16, 9, 0], + [" #| ", 16, 10, 0], + [" # | ", 16, 11, 0], + [" # | ", 16, 12, 0], + [" #| ", 16, 13, 0, 0, 1, 0], + [" #| ", 16, 15, 0, 0, 1, 0], + + [" |# ", 17, 1, 0], + [" | # ", 17, 2, 0], + [" | # ", 17, 3, 0], + [" | # ", 17, 4, 0], + [" |# ", 17, 5, 0, 0, 1, 0], + [" | #", 17, 7, 0], + [" |# ", 17, 8, 0], + [" | # ", 17, 9, 0], + [" |# ", 17, 10, 0], + [" | # ", 17, 11, 0], + [" | #", 17, 12, 0], + [" | # ", 17, 13, 0, 0, 1, 0], + [" | # ", 17, 15, 0], + [" | #", 18, 1, 0], + [" | # ", 18, 2, 0], + [" |# ", 18, 3, 0], + [" | # ", 18, 4, 0], + [" |# ", 18, 5, 0, 0, 1, 0], + [" | # ", 18, 7, 0], + [" |# ", 18, 8, 0], + [" | # ", 18, 9, 0], + [" | #", 18, 10, 0], + [" | # ", 18, 11, 0], + [" | #", 18, 12, 0], + [" | # ", 18, 13, 0, 0, 1, 0], + [" |# ", 18, 15, 0], + [" | # ", 19, 1, 0], + [" | #", 19, 2, 0], + [" | # ", 19, 3, 0], + [" |# ", 19, 4, 0], + [" |# ", 19, 5, 0, 0, 1, 0], + [" | # ", 19, 7, 0], + [" | #", 19, 8, 0], + [" | # ", 19, 9, 0], + [" | # ", 19, 10, 0], + [" | # ", 19, 11, 0], + [" | # ", 19, 12, 0], + [" | #", 19, 13, 0, 0, 1, 0], + [" |# ", 19, 15, 0, 0, 1, 0], + [" | #", 20, 1, 0], + [" | # ", 20, 2, 0], + [" | # ", 20, 3, 0], + [" |# ", 20, 4, 0], + [" | # ", 20, 5, 0, 0, 1, 0], + [" | # ", 20, 7, 0], + [" | # ", 20, 8, 0], + [" |# ", 20, 9, 0], + [" | #", 20, 10, 0], + [" | # ", 20, 11, 0], + [" | # ", 20, 12, 0], + [" | #", 20, 13, 0, 0, 1, 0], + + [" # | ", 21, 1, 0], + [" # | ", 21, 2, 0], + ["# | ", 21, 3, 0], + ["# # | ", 21, 5, 0], + [" # #| ", 21, 7, 0], + ["# # | ", 21, 9, 0], + [" # | ", 21, 11, 0], + [" # | ", 21, 12, 0], + ["# | ", 21, 13, 0], + [" #| ", 22, 1, 0], + [" # | ", 22, 2, 0], + ["# | ", 22, 3, 0], + [" ##| ", 22, 5, 0], + ["# # | ", 22, 7, 0], + [" # #| ", 22, 9, 0], + [" # | ", 22, 11, 0], + ["# | ", 22, 13, 0], + [" # | ", 23, 1, 0], + ["# | ", 23, 2, 0], + [" # | ", 23, 3, 0], + [" # #| ", 23, 5, 0], + ["# # | ", 23, 7, 0], + [" # #| ", 23, 9, 0], + [" # | ", 23, 11, 0], + [" # | ", 23, 13, 0], + [" #| ", 24, 1, 0], + [" # | ", 24, 2, 0], + [" # | ", 24, 3, 0], + ["# #| ", 24, 5, 0], + [" ##| ", 24, 7, 0], + [" # #| ", 24, 9, 0], + [" #| ", 24, 11, 0], + [" # | ", 24, 13, 0], + + [" | # ", 25, 1, 0], + [" | # ", 25, 2, 0], + [" |# ", 25, 3, 0], + [" |# # ", 25, 5, 0], + [" | # #", 25, 7, 0], + [" |# # ", 25, 9, 0], + [" | # ", 25, 11, 0], + [" | # ", 25, 12, 0], + [" |# ", 25, 13, 0], + [" | #", 26, 1, 0], + [" | # ", 26, 2, 0], + [" |# ", 26, 3, 0], + [" | ##", 26, 5, 0], + [" |# # ", 26, 7, 0], + [" | # #", 26, 9, 0], + [" | # ", 26, 11, 0], + [" |# ", 26, 13, 0], + [" | # ", 27, 1, 0], + [" |# ", 27, 2, 0], + [" | # ", 27, 3, 0], + [" | # #", 27, 5, 0], + [" |# # ", 27, 7, 0], + [" | # #", 27, 9, 0], + [" | # ", 27, 11, 0], + [" | # ", 27, 13, 0], + [" | #", 28, 1, 0], + [" | # ", 28, 2, 0], + [" | # ", 28, 3, 0], + [" |# #", 28, 5, 0], + [" | ##", 28, 7, 0], + [" | #", 28, 9, 0], + [" |# #", 28, 11, 0], + [" | ## ", 28, 13, 0], + + ["# | ", 29, 1, 0, 0, 1, 0], + [" # | ", 29, 3, 0, 0, 1, 0], + [" # | ", 29, 5, 0, 0, 1, 0], + [" #| ", 29, 9, 0, 0, 1, 0], + [" # | ", 29, 13, 0, 0, 1, 0], + ["# | ", 30, 1, 0, 0, 1, 0], + [" # | ", 30, 3, 0, 0, 1, 0], + [" # | ", 30, 5, 0, 0, 1, 0], + [" # | ", 30, 9, 0, 0, 1, 0], + ["# | ", 30, 13, 0, 0, 1, 0], + [" # | ", 31, 1, 0, 0, 1, 0], + [" #| ", 31, 3, 0, 0, 1, 0], + [" # | ", 31, 5, 0, 0, 1, 0], + ["# | ", 31, 9, 0, 0, 1, 0], + ["# | ", 31, 13, 0, 0, 1, 0], + ["# | ", 32, 1, 0, 0, 1, 0], + [" # | ", 32, 3, 0, 0, 1, 0], + [" # | ", 32, 6, 0, 0, 1, 0], + [" # | ", 32, 8, 0, 0, 1, 0], + [" # | ", 32, 11, 0, 0, 1, 0], + [" #| ", 32, 13, 0, 0, 1, 0], + + [" |# ", 33, 1, 0, 0, 1, 0], + [" | # ", 33, 3, 0, 0, 1, 0], + [" | # ", 33, 5, 0, 0, 1, 0], + [" | #", 33, 9, 0, 0, 1, 0], + [" | # ", 33, 13, 0, 0, 1, 0], + [" |# ", 34, 1, 0, 0, 1, 0], + [" | # ", 34, 3, 0, 0, 1, 0], + [" | # ", 34, 5, 0, 0, 1, 0], + [" | # ", 34, 9, 0, 0, 1, 0], + [" |# ", 34, 13, 0, 0, 1, 0], + [" | # ", 35, 1, 0, 0, 1, 0], + [" | #", 35, 3, 0, 0, 1, 0], + [" | # ", 35, 5, 0, 0, 1, 0], + [" |# ", 35, 9, 0, 0, 1, 0], + [" |# ", 35, 13, 0, 0, 1, 0], + ["# # |# ", 36, 1, 0, 0, 1, 0], + [" | # ", 36, 3, 0, 0, 1, 0], + [" # #| ", 36, 4, 0, 0, 1, 0], + [" | # ", 36, 6, 0, 0, 1, 0], + [" | # ", 36, 8, 0, 0, 1, 0], + [" ##| ", 36, 9, 0, 0, 1, 0], + [" | # ", 36, 11, 0, 0, 1, 0], + ["# #| #", 36, 13, 0, 0, 1, 0], ] end