From d4e72e13c0a5be46a21b6079ea06cbe5c7500523 Mon Sep 17 00:00:00 2001 From: CatWindow Date: Sat, 15 Aug 2026 19:50:08 +0300 Subject: [PATCH] OFM: full chart --- scripts/Scene_OF.rb | 328 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 315 insertions(+), 13 deletions(-) diff --git a/scripts/Scene_OF.rb b/scripts/Scene_OF.rb index 0430a02..c7eda35 100644 --- a/scripts/Scene_OF.rb +++ b/scripts/Scene_OF.rb @@ -2,7 +2,7 @@ class Scene_OF BPM = 100 BPM_TIME = 1.0 / (BPM / 60.0) * Graphics.frame_rate * 2 - BUMP_SCALE = 1.07 + BUMP_SCALE = 1.04 BUMP_RETURN_SPEED = 0.1 ICONS_BUMP_SCALE = 1.17 ICONS_BUMP_RETURN_SPEED = 0.2 @@ -166,7 +166,8 @@ class Scene_OF @bst_debug.bitmap = Bitmap.new(300, 40) @total_time = 0 - @bump_timeout = 0 + @bump_timeout = 999999 + @bump_time = 999999 @icons_bump_timeout = 0 @miss_timeout = 0 @@ -220,7 +221,7 @@ class Scene_OF @bump_timeout -= 1 @icons_bump_timeout -= 1 if @bump_timeout <= 0 - @bump_timeout += BPM_TIME + @bump_timeout += @bump_time @viewport_ui.scale_y = @viewport_ui.scale_x = BUMP_SCALE end if @icons_bump_timeout <= 0 @@ -457,7 +458,7 @@ class Scene_OF 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.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 16 @cat_flying_arrows << [arrow, dir] @@ -480,7 +481,7 @@ class Scene_OF 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.y = ARROWS_TOP_MARGIN - Graphics.height / 2 + bst2time(beat, step, tick) - 16 @player_flying_arrows << [arrow, dir] @@ -548,7 +549,7 @@ class Scene_OF SONG_MAPPING = [ # Length # arrows, B, S, T, | B, S, T | proc - ["# | ", 5, 1, 0, 0, 1, 0], + ["# | ", 5, 1, 0, 0, 1, 0, proc { @bump_time = BPM_TIME * 2; @bump_timeout = 0 }], [" # | ", 5, 3, 0, 0, 1, 0], [" # | ", 5, 5, 0, 0, 1, 0], [" #| ", 5, 9, 0, 0, 1, 0], @@ -583,7 +584,7 @@ class Scene_OF [" | # ", 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, 9, 0, 0, 1, 0, proc { @bump_time = BPM_TIME / 2; @bump_timeout = 0 }], [" |# ", 11, 13, 0, 0, 1, 0], [" |# ", 12, 1, 0, 0, 1, 0], [" | # ", 12, 3, 0, 0, 1, 0], @@ -591,17 +592,17 @@ class Scene_OF [" | # ", 12, 6, 0], [" | # ", 12, 7, 0], [" | # ", 12, 8, 0], - [" | # ", 12, 9, 0], + [" | # ", 12, 9, 0, 0, 0, 0, proc { @bump_time = BPM_TIME / 4; @bump_timeout = 0 }], [" | #", 12, 10, 0], [" | # ", 12, 11, 0, 0, 1, 0], - [" |# ", 12, 13, 0], + [" |# ", 12, 13, 0, 0, 0, 0, proc { @bump_time = BPM_TIME / 8; @bump_timeout = 0 }], [" |# ", 12, 15, 0], #[" |# ", 12, 15, 12], [" |# ", 12, 16, 0], #[" |# ", 12, 16, 12], #[" |# ", 13, 1, 0], - ["# | ", 13, 1, 0, 0, 0, 0, proc { @rotate_power = 1 }], + ["# | ", 13, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0 }], [" # | ", 13, 2, 0], [" # | ", 13, 3, 0], [" # | ", 13, 4, 0], @@ -706,7 +707,7 @@ class Scene_OF [" | # ", 20, 12, 0], [" | #", 20, 13, 0, 0, 1, 0], - [" # | ", 21, 1, 0, 0, 0, 0, proc { @rotate_power = 0 }], + [" # | ", 21, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = BPM_TIME; @bump_timeout = 0 }], [" # | ", 21, 2, 0], ["# | ", 21, 3, 0], ["# # | ", 21, 5, 0], @@ -774,7 +775,7 @@ class Scene_OF [" |# #", 28, 11, 0], [" | ## ", 28, 13, 0], - ["# | ", 29, 1, 0, 0, 1, 0], + ["# | ", 29, 1, 0, 0, 1, 0, proc { @rotate_power = 0; @bump_time = 999999; @bump_timeout = 999999}], [" # | ", 29, 3, 0, 0, 1, 0], [" # | ", 29, 5, 0, 0, 1, 0], [" #| ", 29, 9, 0, 0, 1, 0], @@ -820,7 +821,7 @@ class Scene_OF [" | # ", 36, 11, 0, 0, 1, 0], ["# #| #", 36, 13, 0, 0, 1, 0], - [" #| #", 37, 1, 0, 0, 0, 0, proc { @rotate_power = 1 }], + [" #| #", 37, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0}], [" # | # ", 37, 2, 0], ["# |# ", 37, 3, 0], [" # | # ", 37, 4, 0], @@ -833,6 +834,307 @@ class Scene_OF [" # | # ", 37, 12, 0], [" #| #", 37, 13, 0, 0, 1, 0], [" # | # ", 37, 15, 0], + [" #| #", 38, 1, 0], + ["# |# ", 38, 2, 0], + [" #| #", 38, 3, 0], + [" # | # ", 38, 4, 0], + ["# |# ", 38, 6, 0], + [" # | # ", 38, 7, 0], + [" #| #", 38, 8, 0], + [" # | # ", 38, 9, 0], + ["# |# ", 38, 10, 0], + [" # | # ", 38, 11, 0], + [" # | # ", 38, 12, 0], + [" #| #", 38, 13, 0, 0, 1, 0], + [" # | # ", 38, 15, 0], + ["# |# ", 39, 1, 0], + [" # | # ", 39, 2, 0], + [" # | # ", 39, 3, 0], + [" #| #", 39, 4, 0], + [" # | # ", 39, 6, 0], + ["# |# ", 39, 7, 0], + [" #| #", 39, 8, 0], + [" # | # ", 39, 9, 0], + ["# |# ", 39, 10, 0], + [" #| #", 39, 11, 0], + [" # | # ", 39, 12, 0], + ["# |# ", 39, 13, 0, 0, 1, 0], + [" # | # ", 39, 15, 0], + ["# |# ", 40, 1, 0], + [" # | # ", 40, 2, 0], + [" #| #", 40, 3, 0], + ["# |# ", 40, 4, 0], + [" #| #", 40, 6, 0], + [" # | # ", 40, 7, 0], + [" #| #", 40, 8, 0], + [" # | # ", 40, 9, 0], + [" # | # ", 40, 10, 0], + ["# |# ", 40, 11, 0], + [" # | # ", 40, 12, 0], + ["# |# ", 40, 13, 0, 0, 1, 0], + [" #| #", 40, 15, 0], + + [" #| #", 41, 1, 0], + [" # | # ", 41, 2, 0], + [" # | # ", 41, 3, 0], + ["# |# ", 41, 4, 0], + ["# |# ", 41, 6, 0], + [" # | # ", 41, 7, 0], + [" # | # ", 41, 8, 0], + [" #| #", 41, 9, 0, 0, 1, 0], + [" # | # ", 41, 11, 0, 0, 1, 0], + [" #| #", 41, 13, 0, 0, 1, 0], + [" # | # ", 41, 15, 0, 0, 1, 0], + [" #| #", 42, 1, 0], + [" # | # ", 42, 2, 0], + [" # | # ", 42, 3, 0], + ["# |# ", 42, 4, 0], + [" #| #", 42, 6, 0], + [" # | # ", 42, 7, 0], + [" # | # ", 42, 8, 0], + [" # | # ", 42, 9, 0, 0, 1, 0], + ["# |# ", 42, 11, 0, 0, 1, 0], + [" # | # ", 42, 13, 0, 0, 1, 0], + ["# |# ", 42, 15, 0, 0, 1, 0], + [" # | # ", 43, 1, 0], + ["# |# ", 43, 2, 0], + [" #| #", 43, 3, 0], + [" # | # ", 43, 4, 0], + [" # | # ", 43, 6, 0], + [" # | # ", 43, 7, 0], + [" #| #", 43, 8, 0], + [" # | # ", 43, 9, 0, 0, 1, 0], + [" # | # ", 43, 11, 0, 0, 1, 0], + [" # | # ", 43, 13, 0, 0, 1, 0], + [" # | # ", 43, 15, 0, 0, 1, 0], + ["# |# ", 44, 1, 0], + [" # | # ", 44, 2, 0], + [" # | # ", 44, 3, 0], + [" #| #", 44, 4, 0], + [" # | # ", 44, 6, 0], + [" # | # ", 44, 7, 0], + [" # | # ", 44, 8, 0], + [" #| #", 44, 9, 0, 0, 1, 0], + ["# |# ", 44, 11, 0, 0, 1, 0], + [" #| #", 44, 13, 0, 0, 1, 0], + ["# |# ", 44, 15, 0, 0, 1, 0], + + [" #| #", 45, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = 9999999 }], + [" | # ", 45, 3, 0], + [" | # ", 45, 5, 0], + ["# |# ", 45, 9, 0], + [" | # ", 45, 11, 0], + [" # | # ", 45, 13, 0], + [" #| #", 46, 1, 0], + [" |# ", 46, 3, 0], + [" | # ", 46, 5, 0], + [" #| #", 46, 9, 0], + [" | # ", 46, 11, 0], + [" # | # ", 46, 13, 0], + [" # | # ", 47, 1, 0], + [" | # ", 47, 3, 0], + [" |# ", 47, 5, 0], + [" #| #", 47, 9, 0], + [" | # ", 47, 11, 0], + [" # | # ", 47, 13, 0], + [" # | # ", 48, 1, 0], + [" |# ", 48, 3, 0], + [" | # ", 48, 5, 0], + [" #| #", 48, 9, 0], + [" | # ", 48, 11, 0], + ["# |# ", 48, 13, 0], + + [" #| ", 49, 1, 0, 0, 0, 0, proc { @rotate_power = 0; @bump_time = BPM_TIME; @bump_timeout = 0 }], + [" # | ", 49, 3, 0], + ["# | ", 49, 5, 0], + [" # | ", 49, 7, 0], + ["# | ", 49, 9, 0], + [" # | ", 49, 11, 0], + ["# | ", 49, 13, 0], + [" #| ", 50, 1, 0], + [" # | ", 50, 3, 0], + [" # | ", 50, 5, 0], + [" #| ", 50, 7, 0], + [" # | ", 50, 9, 0], + ["# | ", 50, 11, 0], + [" # | ", 50, 13, 0], + ["# | ", 51, 1, 0], + [" # | ", 51, 3, 0], + [" # | ", 51, 5, 0], + [" #| ", 51, 7, 0], + [" # | ", 51, 9, 0], + [" #| ", 51, 11, 0], + ["# | ", 51, 13, 0], + [" #| ", 52, 1, 0], + ["# | ", 52, 3, 0], + [" # | ", 52, 5, 0], + ["# | ", 52, 7, 0], + [" # | ", 52, 9, 0], + [" # | ", 52, 11, 0], + ["# | ", 52, 13, 0], + + [" | #", 53, 1, 0], + [" | # ", 53, 3, 0], + [" |# ", 53, 5, 0], + [" | # ", 53, 7, 0], + [" |# ", 53, 9, 0], + [" | # ", 53, 11, 0], + [" |# ", 53, 13, 0], + [" | #", 54, 1, 0], + [" | # ", 54, 3, 0], + [" | # ", 54, 5, 0], + [" | #", 54, 7, 0], + [" | # ", 54, 9, 0], + [" |# ", 54, 11, 0], + [" | # ", 54, 13, 0], + [" |# ", 55, 1, 0], + [" | # ", 55, 3, 0], + [" | # ", 55, 5, 0], + [" | #", 55, 7, 0], + [" | # ", 55, 9, 0], + [" | #", 55, 11, 0], + [" |# ", 55, 13, 0], + [" | #", 56, 1, 0], + [" |# ", 56, 3, 0], + [" | # ", 56, 5, 0], + [" |# ", 56, 7, 0], + [" ## | ## ", 56, 9, 0, 0, 2, 0, proc {@bump_time = BPM_TIME / 8; @bump_timeout = 0 }], + ["# #|# #", 56, 13, 0, 0, 2, 0, proc {@bump_time = BPM_TIME / 4; @bump_timeout = 0 }], + + ["# | ", 57, 1, 0, 0, 0, 0, proc { @rotate_power = 1; @bump_time = BPM_TIME / 2; @bump_timeout = 0 }], + [" # | ", 57, 2, 0], + [" # | ", 57, 3, 0], + [" # | ", 57, 4, 0], + ["# | ", 57, 5, 0, 0, 1, 0], + [" #| ", 57, 7, 0], + ["# | ", 57, 8, 0], + [" # | ", 57, 9, 0], + ["# | ", 57, 10, 0], + [" # | ", 57, 11, 0], + [" #| ", 57, 12, 0], + [" # | ", 57, 13, 0, 0, 1, 0], + [" # | ", 57, 15, 0], + [" #| ", 58, 1, 0], + [" # | ", 58, 2, 0], + ["# | ", 58, 3, 0], + [" # | ", 58, 4, 0], + ["# | ", 58, 5, 0, 0, 1, 0], + [" # | ", 58, 7, 0], + ["# | ", 58, 8, 0], + [" # | ", 58, 9, 0], + [" #| ", 58, 10, 0], + [" # | ", 58, 11, 0], + [" #| ", 58, 12, 0], + [" # | ", 58, 13, 0, 0, 1, 0], + ["# | ", 58, 15, 0], + [" # | ", 59, 1, 0], + [" #| ", 59, 2, 0], + [" # | ", 59, 3, 0], + ["# | ", 59, 4, 0], + ["# | ", 59, 5, 0, 0, 1, 0], + [" # | ", 59, 7, 0], + [" #| ", 59, 8, 0], + [" # | ", 59, 9, 0], + [" # | ", 59, 10, 0], + [" # | ", 59, 11, 0], + [" # | ", 59, 12, 0], + [" #| ", 59, 13, 0, 0, 1, 0], + ["# | ", 59, 15, 0, 0, 1, 0], + [" #| ", 60, 1, 0], + [" # | ", 60, 2, 0], + [" # | ", 60, 3, 0], + ["# | ", 60, 4, 0], + [" # | ", 60, 5, 0], + [" # | ", 60, 7, 0], + [" # | ", 60, 8, 0], + ["# | ", 60, 9, 0], + [" #| ", 60, 10, 0], + [" # | ", 60, 11, 0], + [" # | ", 60, 12, 0], + [" #| ", 60, 13, 0, 0, 1, 0], + [" #| ", 60, 15, 0, 0, 1, 0], + + [" |# ", 61, 1, 0], + [" | # ", 61, 2, 0], + [" | # ", 61, 3, 0], + [" | # ", 61, 4, 0], + [" |# ", 61, 5, 0, 0, 1, 0], + [" | #", 61, 7, 0], + [" |# ", 61, 8, 0], + [" | # ", 61, 9, 0], + [" |# ", 61, 10, 0], + [" | # ", 61, 11, 0], + [" | #", 61, 12, 0], + [" | # ", 61, 13, 0, 0, 1, 0], + [" | # ", 61, 15, 0], + [" | #", 62, 1, 0], + [" | # ", 62, 2, 0], + [" |# ", 62, 3, 0], + [" | # ", 62, 4, 0], + [" |# ", 62, 5, 0, 0, 1, 0], + [" | # ", 62, 7, 0], + [" |# ", 62, 8, 0], + [" | # ", 62, 9, 0], + [" | #", 62, 10, 0], + [" | # ", 62, 11, 0], + [" | #", 62, 12, 0], + [" | # ", 62, 13, 0, 0, 1, 0], + [" |# ", 62, 15, 0], + [" | # ", 63, 1, 0], + [" | #", 63, 2, 0], + [" | # ", 63, 3, 0], + [" |# ", 63, 4, 0], + [" |# ", 63, 5, 0, 0, 1, 0], + [" | # ", 63, 7, 0], + [" | #", 63, 8, 0], + [" | # ", 63, 9, 0], + [" | # ", 63, 10, 0], + [" | # ", 63, 11, 0], + [" | # ", 63, 12, 0], + [" | #", 63, 13, 0, 0, 1, 0], + [" |# ", 63, 15, 0, 0, 1, 0], + [" | #", 64, 1, 0], + [" | # ", 64, 2, 0], + [" | # ", 64, 3, 0], + [" |# ", 64, 4, 0], + [" | # ", 64, 5, 0, 0, 1, 0], + [" | # ", 64, 7, 0], + [" | # ", 64, 8, 0], + [" |# ", 64, 9, 0], + [" | #", 64, 10, 0], + [" | # ", 64, 11, 0], + [" | # ", 64, 12, 0], + [" | #", 64, 13, 0, 0, 1, 0], + [" | #", 64, 15, 0, 0, 1, 0], + + [" # | # ", 65, 1, 0, 0, 1, 0, proc { @rotate_power = 0; @bump_time = 9999999; @bump_timeout = 9999999 }], + [" #| #", 65, 3, 0], + [" # | # ", 65, 6, 0], + [" # | # ", 65, 7, 0, 0, 1, 0], + [" #| #", 65, 9, 0, 0, 1, 0], + ["# |# ", 65, 11, 0, 0, 1, 0], + [" #| #", 65, 13, 0, 0, 1, 0], + [" #| #", 66, 1, 0, 0, 1, 0], + [" # | # ", 66, 3, 0], + [" # | # ", 66, 5, 0], + ["# |# ", 66, 6, 0, 0, 1, 0], + [" #| #", 66, 8, 0, 0, 1, 0], + [" # | # ", 66, 11, 0, 0, 1, 0], + [" # | # ", 66, 13, 0, 0, 1, 0], + [" # | # ", 67, 1, 0, 0, 1, 0], + [" #| #", 67, 3, 0], + [" # | # ", 67, 6, 0], + [" # | # ", 67, 7, 0, 0, 1, 0], + [" #| #", 67, 9, 0, 0, 1, 0], + ["# |# ", 67, 11, 0, 0, 1, 0], + [" #| #", 67, 13, 0, 0, 1, 0], + ["# |# ", 68, 1, 0, 0, 1, 0], + [" #| #", 68, 3, 0], + ["# |# ", 68, 5, 0], + [" # | # ", 68, 6, 0, 0, 1, 0], + [" #| #", 68, 8, 0, 0, 1, 0], + [" #| #", 68, 11, 0, 0, 1, 0], + ["# |# ", 68, 13, 0, 0, 1, 0], ] end