From 085cc452534df530ce5fdbdecde8c6fa40c03dd7 Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Wed, 28 Sep 2022 03:40:51 -0400 Subject: [PATCH] cute hearts --- source/funkin/FreeplayState.hx | 26 +++++++++++++++++++-- source/funkin/freeplayStuff/SongMenuItem.hx | 9 +++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/source/funkin/FreeplayState.hx b/source/funkin/FreeplayState.hx index 6462aa196..672464202 100644 --- a/source/funkin/FreeplayState.hx +++ b/source/funkin/FreeplayState.hx @@ -381,6 +381,7 @@ class FreeplayState extends MusicBeatSubstate funnyMenu.ID = i; funnyMenu.alpha = 0.5; funnyMenu.songText.visible = false; + funnyMenu.favIcon.visible = tempSongs[i].isFav; fp.updateScore(0); @@ -473,11 +474,32 @@ class FreeplayState extends MusicBeatSubstate if (FlxG.keys.justPressed.F) { + var realShit = curSelected; songs[curSelected].isFav = !songs[curSelected].isFav; if (songs[curSelected].isFav) - FlxTween.tween(grpCapsules.members[curSelected], {angle: 360}, 0.4, {ease: FlxEase.elasticOut}); + { + + FlxTween.tween(grpCapsules.members[realShit], {angle: 360}, 0.4, { + ease: FlxEase.elasticOut, + onComplete: _ -> + { + grpCapsules.members[realShit].favIcon.visible = true; + grpCapsules.members[realShit].favIcon.animation.play("fav"); + } + }); + } else - FlxTween.tween(grpCapsules.members[curSelected], {angle: 0}, 0.4, {ease: FlxEase.elasticOut}); + { + grpCapsules.members[realShit].favIcon.animation.play('fav', false, true); + new FlxTimer().start((1 / 24) * 14, _ -> + { + grpCapsules.members[realShit].favIcon.visible = false; + }); + new FlxTimer().start((1 / 24) * 24, _ -> + { + FlxTween.tween(grpCapsules.members[realShit], {angle: 0}, 0.4, {ease: FlxEase.elasticOut}); + }); + } } if (FlxG.keys.justPressed.T) diff --git a/source/funkin/freeplayStuff/SongMenuItem.hx b/source/funkin/freeplayStuff/SongMenuItem.hx index 7eb862bef..d98668937 100644 --- a/source/funkin/freeplayStuff/SongMenuItem.hx +++ b/source/funkin/freeplayStuff/SongMenuItem.hx @@ -17,6 +17,7 @@ class SongMenuItem extends FlxSpriteGroup public var songTitle:String = "Test"; public var songText:FlxText; + public var favIcon:FlxSprite; public var targetPos:FlxPoint = new FlxPoint(); public var doLerp:Bool = false; @@ -40,6 +41,14 @@ class SongMenuItem extends FlxSpriteGroup songText.color = 0xFF43C1EA; add(songText); + favIcon = new FlxSprite(440, 40); + favIcon.frames = Paths.getSparrowAtlas('freeplay/favHeart'); + favIcon.animation.addByPrefix('fav', "favorite heart", 24, false); + favIcon.animation.play('fav'); + favIcon.antialiasing = true; + favIcon.setGraphicSize(60, 60); + add(favIcon); + selected = selected; // just to kickstart the set_selected }