From 2bfc24f22b01d8b21df7ab2aff769cb99708029e Mon Sep 17 00:00:00 2001 From: MoonDroid Date: Fri, 11 Apr 2025 18:59:21 +0700 Subject: [PATCH] Add the ability to swipe on the mp3 capsules to change difficulty. --- source/funkin/ui/freeplay/FreeplayState.hx | 52 ++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index f0821e1be..6b12e57b7 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1691,10 +1691,56 @@ class FreeplayState extends MusicBeatSubState final selected = grpCapsules.members[curSelected].theActualHitbox; _pressedOn = _pressedOn && selected != null && TouchUtil.overlaps(selected, funnyCam); - if (_pressedOn && TouchUtil.touch != null && TouchUtil.touch.ticksDeltaSincePress >= 500) + if (_pressedOn && TouchUtil.touch != null) { - _pressedOn = false; - favoriteSong(); + draggingDifficulty = true; + @:nullSafety(Off) + if (SwipeUtil.swipeLeft) + { + changeDiff(1); + _pressedOn = false; + draggingDifficulty = false; + busy = true; + grpCapsules.members[curSelected].doLerp = false; + FlxTween.tween(grpCapsules.members[curSelected], {x: grpCapsules.members[curSelected].x + 15}, 0.1, {ease: FlxEase.expoOut}); + + FlxTween.tween(grpCapsules.members[curSelected], {x: grpCapsules.members[curSelected].x - 15}, 0.1, + { + ease: FlxEase.expoIn, + startDelay: 0.1, + onComplete: function(_) { + grpCapsules.members[curSelected].doLerp = true; + busy = false; + } + }); + } + else if (SwipeUtil.swipeRight) + { + changeDiff(-1); + _pressedOn = false; + draggingDifficulty = false; + busy = true; + + grpCapsules.members[curSelected].doLerp = false; + FlxTween.tween(grpCapsules.members[curSelected], {x: grpCapsules.members[curSelected].x - 15}, 0.1, {ease: FlxEase.expoOut}); + + FlxTween.tween(grpCapsules.members[curSelected], {x: grpCapsules.members[curSelected].x + 15}, 0.1, + { + ease: FlxEase.expoIn, + startDelay: 0.1, + onComplete: function(_) { + grpCapsules.members[curSelected].doLerp = true; + busy = false; + } + }); + } + + if (TouchUtil.touch.ticksDeltaSincePress >= 500) + { + _pressedOn = false; + draggingDifficulty = false; + favoriteSong(); + } } for (diff in grpDifficulties.group.members)