diff --git a/assets/images/UI/simplylove/base/combo.png b/assets/images/UI/simplylove/base/combo.png index d65ee404c..6e98d21d5 100644 Binary files a/assets/images/UI/simplylove/base/combo.png and b/assets/images/UI/simplylove/base/combo.png differ diff --git a/source/ForeverAssets.hx b/source/ForeverAssets.hx index 1e6365e13..9471c9201 100644 --- a/source/ForeverAssets.hx +++ b/source/ForeverAssets.hx @@ -53,7 +53,7 @@ class ForeverAssets newSprite.animation.play('base'); } - if (assetModifier == 'pixel') + if (assetModifier == 'pixel') newSprite.setGraphicSize(Std.int(newSprite.width * PlayState.daPixelZoom)); else { @@ -61,10 +61,11 @@ class ForeverAssets newSprite.setGraphicSize(Std.int(newSprite.width * 0.5)); } newSprite.updateHitbox(); - + if (!Init.trueSettings.get('Simply Judgements')) + { newSprite.acceleration.y = FlxG.random.int(200, 300); newSprite.velocity.y = -FlxG.random.int(140, 160); - newSprite.velocity.x = FlxG.random.float(-5, 5); + newSprite.velocity.x = FlxG.random.float(-5, 5);} return newSprite; } @@ -88,10 +89,12 @@ class ForeverAssets rating.screenCenter(); rating.x = (FlxG.width * 0.55) - 40; rating.y -= 60; + if (!Init.trueSettings.get('Simply Judgements')) + { rating.acceleration.y = 550; rating.velocity.y = -FlxG.random.int(140, 175); rating.velocity.x = -FlxG.random.int(0, 10); - + } rating.animation.add('base', [ Std.int((Timings.judgementsMap.get(asset)[0] * 2) + (perfectSick ? 0 : 2) + (timing == 'late' ? 1 : 0)) ], 24, false); diff --git a/source/Init.hx b/source/Init.hx index bb92a949b..8ff4b6579 100644 --- a/source/Init.hx +++ b/source/Init.hx @@ -134,6 +134,12 @@ class Init extends FlxState Checkmark, "Fixes the judgements to the camera instead of to the world itself, making them easier to read." ], + 'Simply Judgements' => [ + false, + Checkmark, + "Simplifies the judgement animations, displaying only one judgement / rating sprite at a time." + ], + ]; diff --git a/source/gameFolder/meta/state/PlayState.hx b/source/gameFolder/meta/state/PlayState.hx index ef9993e56..c07e30661 100644 --- a/source/gameFolder/meta/state/PlayState.hx +++ b/source/gameFolder/meta/state/PlayState.hx @@ -140,6 +140,11 @@ class PlayState extends MusicBeatState private var allUIs:Array = []; + // stores the last judgement object + public static var lastRating:FlxSprite; + // stores the last combo objects in an array + public static var lastCombo:Array; + // at the beginning of the playstate override public function create() { @@ -150,6 +155,8 @@ class PlayState extends MusicBeatState combo = 0; health = 1; misses = 0; + // sets up the combo object array + lastCombo = []; defaultCamZoom = 1.05; forceZoom = [0, 0, 0, 0]; @@ -1093,6 +1100,22 @@ class PlayState extends MusicBeatState if ((comboString.startsWith('-')) || (combo == 0)) negative = true; var stringArray:Array = comboString.split(""); + // deletes all combo sprites prior to initalizing new ones + if (lastCombo != null) + { + for (i in 0...lastCombo.length - 1) + { + lastCombo[i].kill(); + lastCombo.remove(lastCombo[i]); + } + if (lastCombo.length == 1) + { + //this part is very jank, but it works + lastCombo[0].kill(); + lastCombo.remove(lastCombo[0]); + } + } + for (scoreInt in 0...stringArray.length) { // numScore.loadGraphic(Paths.image('UI/' + pixelModifier + 'num' + stringArray[scoreInt])); @@ -1100,23 +1123,37 @@ class PlayState extends MusicBeatState negative, createdColor, scoreInt); add(numScore); // hardcoded lmao + if (!Init.trueSettings.get('Simply Judgements')) + { + add(numScore); + FlxTween.tween(numScore, {alpha: 0}, 0.2, { + onComplete: function(tween:FlxTween) + { + numScore.kill(); + }, + startDelay: Conductor.crochet * 0.002 + }); + } + else + { + add(numScore); + // centers combo + numScore.y += 10; + numScore.x -= 95; + numScore.x -= ((comboString.length - 1) * 22); + lastCombo.push(numScore); + FlxTween.tween(numScore, {y: numScore.y + 20}, 0.1, {type: FlxTween.BACKWARD, ease: FlxEase.circOut}); + } + if (preload) + numScore.visible = false; + // hardcoded lmao if (Init.trueSettings.get('Fixed Judgements')) { numScore.cameras = [camHUD]; numScore.x += 100; numScore.y += 50; - } - - if (preload) - numScore.visible = false; - - FlxTween.tween(numScore, {alpha: 0}, 0.2, { - onComplete: function(tween:FlxTween) - { - numScore.kill(); - }, - startDelay: Conductor.crochet * 0.002 - }); + } else + numScore.x += 100; } } @@ -1173,6 +1210,37 @@ class PlayState extends MusicBeatState var rating = ForeverAssets.generateRating('$daRating', (daRating == 'sick' ? allSicks : false), timing, assetModifier, changeableSkin, 'UI'); add(rating); + if (!Init.trueSettings.get('Simply Judgements')) + { + add(rating); + + FlxTween.tween(rating, {alpha: 0}, 0.2, { + onComplete: function(tween:FlxTween) + { + rating.kill(); + }, + startDelay: Conductor.crochet * 0.00125 + }); + } + else + { + if (lastRating != null) + { + lastRating.kill(); + } + add(rating); + lastRating = rating; + FlxTween.tween(rating, {y: rating.y + 20}, 0.2, {type: FlxTweenType.BACKWARD, ease: FlxEase.circOut}); + FlxTween.tween(rating, {"scale.x": 0, "scale.y": 0}, 0.1, { + onComplete: function(tween:FlxTween) + { + rating.kill(); + }, + startDelay: Conductor.crochet * 0.00125 + }); + } + // */ + if (Init.trueSettings.get('Fixed Judgements')) { // bound to camera @@ -1182,16 +1250,6 @@ class PlayState extends MusicBeatState if (cache) rating.visible = false; - - ///* - FlxTween.tween(rating, {alpha: 0}, 0.2, { - onComplete: function(tween:FlxTween) - { - rating.kill(); - }, - startDelay: Conductor.crochet * 0.00125 - }); - // */ } function healthCall(?ratingMultiplier:Float = 0) diff --git a/source/gameFolder/meta/state/menus/OptionsMenuState.hx b/source/gameFolder/meta/state/menus/OptionsMenuState.hx index d14a469c8..01aec086d 100644 --- a/source/gameFolder/meta/state/menus/OptionsMenuState.hx +++ b/source/gameFolder/meta/state/menus/OptionsMenuState.hx @@ -88,6 +88,7 @@ class OptionsMenuState extends MusicBeatState ['Disable Antialiasing', getFromOption], ['No Camera Note Movement', getFromOption], ['Fixed Judgements', getFromOption], + ['Simply Judgements', getFromOption], ['', null], ['Accessibility Settings', null], ['', null],