diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 1b5bf86c9..360a1eab1 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -265,9 +265,9 @@ class PlayState extends MusicBeatState public var combo:Int = 0; /** - * Whenever the misses should show "Combo Breaks" instead of "Misses" + * Whenever the misses counter should count your "Combo Breaks" with it. */ - public var comboBreaks:Bool = !Options.ghostTapping; + public var comboBreaks:Bool = Options.comboBreaks; /** * Health bar background. */ @@ -311,6 +311,10 @@ class PlayState extends MusicBeatState * The player's amount of misses. */ public var misses:Int = 0; + /** + * The player's amount of breaks. (should be counted with the misses, so "breaks + misses") + */ + public var breaks:Int = 0; /** * The player's accuracy (shortcut to `accuracyPressedNotes / totalAccuracyAmount`). */ @@ -1226,7 +1230,7 @@ class PlayState extends MusicBeatState function updateRatingStuff() { scoreTxt.text = 'Score:$songScore'; - missesTxt.text = '${comboBreaks ? "Combo Breaks" : "Misses"}:$misses'; + missesTxt.text = '${comboBreaks ? "Combo Breaks" : "Misses"}:${comboBreaks ? (breaks + misses) : misses}'; // yes, this is how combo breaks work, if you don't believe me, heres proof, https://github.com/user-attachments/assets/ee1d30d5-6763-46bc-aca2-d6dbf71339d6 if (curRating == null) curRating = new ComboRating(0, "[N/A]", 0xFF888888); @@ -1684,6 +1688,10 @@ class PlayState extends MusicBeatState displayCombo(event); if (event.displayRating) displayRating(event.rating, event); + if (comboBreaks && (event.rating == 'bad' || event.rating == 'shit')) { + breaks += 1; + combo = 0; + } ratingNum += 1; } } diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx index a9bf72ac1..912efb1c0 100644 --- a/source/funkin/options/Options.hx +++ b/source/funkin/options/Options.hx @@ -19,6 +19,7 @@ class Options public static var naughtyness:Bool = true; public static var downscroll:Bool = false; public static var ghostTapping:Bool = true; + public static var comboBreaks:Bool = false; public static var flashingMenu:Bool = true; public static var camZoomOnBeat:Bool = true; public static var fpsCounter:Bool = true; diff --git a/source/funkin/options/categories/GameplayOptions.hx b/source/funkin/options/categories/GameplayOptions.hx index 15c0ba603..4a5527fe3 100644 --- a/source/funkin/options/categories/GameplayOptions.hx +++ b/source/funkin/options/categories/GameplayOptions.hx @@ -18,6 +18,10 @@ class GameplayOptions extends OptionsScreen { "Ghost Tapping", "If unchecked, trying to hit any strum that have no note that can be hit will cause a miss.", "ghostTapping")); + add(new Checkbox( + "Combo Breaks", + "If checked, hitting bads and shits break your combo, and adds to the miss **counter**, not your actual misses.", + "comboBreaks")); add(offsetSetting = new NumOption( "Song Offset", "Changes the offset that songs should start with.",