mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-27 01:55:52 -05:00
colors and numbers teehee
This commit is contained in:
parent
8cd96a7b0d
commit
46c15e76f1
3 changed files with 137 additions and 6 deletions
|
@ -1445,12 +1445,25 @@ class PlayState extends MusicBeatState implements IHook
|
|||
trace('WENT TO RESULTS SCREEN!');
|
||||
// unloadAssets();
|
||||
|
||||
persistentUpdate = false;
|
||||
vocals.stop();
|
||||
camZooming = false;
|
||||
FlxG.camera.follow(PlayState.instance.currentStage.getGirlfriend(), null, 0.05);
|
||||
FlxG.camera.targetOffset.y -= 370;
|
||||
|
||||
var res:ResultState = new ResultState();
|
||||
res.camera = camHUD;
|
||||
openSubState(res);
|
||||
new FlxTimer().start(0.8, _ ->
|
||||
{
|
||||
FlxTween.tween(FlxG.camera, {zoom: 1200}, 1.1, {
|
||||
ease: FlxEase.expoIn,
|
||||
onComplete: _ ->
|
||||
{
|
||||
persistentUpdate = false;
|
||||
vocals.stop();
|
||||
|
||||
var res:ResultState = new ResultState();
|
||||
res.camera = camHUD;
|
||||
openSubState(res);
|
||||
}
|
||||
});
|
||||
});
|
||||
// FlxG.switchState(new FreeplayState());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import flixel.tweens.FlxTween;
|
|||
import flixel.util.FlxColor;
|
||||
import flixel.util.FlxGradient;
|
||||
import flixel.util.FlxTimer;
|
||||
import funkin.ui.TallyCounter;
|
||||
|
||||
class ResultState extends MusicBeatSubstate
|
||||
{
|
||||
|
@ -42,6 +43,7 @@ class ResultState extends MusicBeatSubstate
|
|||
soundSystem.animation.play("idle");
|
||||
soundSystem.visible = true;
|
||||
});
|
||||
soundSystem.antialiasing = true;
|
||||
add(soundSystem);
|
||||
|
||||
var difficulty:FlxSprite = new FlxSprite(680);
|
||||
|
@ -61,17 +63,20 @@ class ResultState extends MusicBeatSubstate
|
|||
difficulty.loadGraphic(Paths.image("resultScreen/" + diffSpr));
|
||||
difficulty.y = -difficulty.height;
|
||||
FlxTween.tween(difficulty, {y: 110}, 0.5, {ease: FlxEase.quartOut, startDelay: 0.8});
|
||||
difficulty.antialiasing = true;
|
||||
add(difficulty);
|
||||
|
||||
var blackTopBar:FlxSprite = new FlxSprite().loadGraphic(Paths.image("resultScreen/topBarBlack"));
|
||||
blackTopBar.y = -blackTopBar.height;
|
||||
FlxTween.tween(blackTopBar, {y: 0}, 0.4, {ease: FlxEase.quartOut, startDelay: 0.5});
|
||||
blackTopBar.antialiasing = true;
|
||||
add(blackTopBar);
|
||||
|
||||
var resultsAnim:FlxSprite = new FlxSprite(-2000, -10);
|
||||
var resultsAnim:FlxSprite = new FlxSprite(-200, -10);
|
||||
resultsAnim.frames = Paths.getSparrowAtlas("resultScreen/results");
|
||||
resultsAnim.animation.addByPrefix("result", "results", 24, false);
|
||||
resultsAnim.animation.play("result");
|
||||
resultsAnim.antialiasing = true;
|
||||
add(resultsAnim);
|
||||
|
||||
var ratingsPopin:FlxSprite = new FlxSprite(-150, 120);
|
||||
|
@ -79,8 +84,32 @@ class ResultState extends MusicBeatSubstate
|
|||
ratingsPopin.animation.addByPrefix("idle", "Categories", 24, false);
|
||||
// ratingsPopin.animation.play("idle");
|
||||
ratingsPopin.visible = false;
|
||||
ratingsPopin.antialiasing = true;
|
||||
add(ratingsPopin);
|
||||
|
||||
var hStuf:Int = 50;
|
||||
|
||||
var totalHit:TallyCounter = new TallyCounter(375, hStuf * 3, Highscore.tallies.totalNotes);
|
||||
add(totalHit);
|
||||
|
||||
var maxCombo:TallyCounter = new TallyCounter(375, hStuf * 4, Highscore.tallies.maxCombo);
|
||||
add(maxCombo);
|
||||
|
||||
var tallySick:TallyCounter = new TallyCounter(230, hStuf * 5, Highscore.tallies.sick, 0xFF89E59E);
|
||||
add(tallySick);
|
||||
|
||||
var tallyGood:TallyCounter = new TallyCounter(230, hStuf * 6, Highscore.tallies.good, 0xFF89C9E5);
|
||||
add(tallyGood);
|
||||
|
||||
var tallyBad:TallyCounter = new TallyCounter(230, hStuf * 7, Highscore.tallies.bad, 0xffE6CF8A);
|
||||
add(tallyBad);
|
||||
|
||||
var tallyShit:TallyCounter = new TallyCounter(230, hStuf * 8, Highscore.tallies.shit, 0xFFE68C8A);
|
||||
add(tallyShit);
|
||||
|
||||
var tallyMissed:TallyCounter = new TallyCounter(230, hStuf * 9, Highscore.tallies.missed, 0xFFC68AE6);
|
||||
add(tallyMissed);
|
||||
|
||||
new FlxTimer().start(0.5, _ ->
|
||||
{
|
||||
ratingsPopin.animation.play("idle");
|
||||
|
|
89
source/funkin/ui/TallyCounter.hx
Normal file
89
source/funkin/ui/TallyCounter.hx
Normal file
|
@ -0,0 +1,89 @@
|
|||
package funkin.ui;
|
||||
|
||||
import flixel.FlxSprite;
|
||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
||||
import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup;
|
||||
import flixel.math.FlxMath;
|
||||
import flixel.tweens.FlxEase;
|
||||
import flixel.tweens.FlxTween;
|
||||
|
||||
/**
|
||||
* Similar to ComboCounter, but it's not!
|
||||
*/
|
||||
class TallyCounter extends FlxTypedSpriteGroup<FlxSprite>
|
||||
{
|
||||
var curNumber:Float = 0;
|
||||
|
||||
public var neededNumber:Int = 0;
|
||||
public var flavour:Int = 0xFFFFFFFF;
|
||||
|
||||
public function new(x:Float, y:Float, neededNumber:Int = 0, ?flavour:Int = 0xFFFFFFFF)
|
||||
{
|
||||
super(x, y);
|
||||
|
||||
this.flavour = flavour;
|
||||
|
||||
this.neededNumber = neededNumber;
|
||||
FlxTween.tween(this, {curNumber: neededNumber}, 4, {ease: FlxEase.quartOut});
|
||||
drawNumbers();
|
||||
}
|
||||
|
||||
var tmr:Float = 0;
|
||||
|
||||
override function update(elapsed:Float)
|
||||
{
|
||||
super.update(elapsed);
|
||||
|
||||
if (curNumber < neededNumber)
|
||||
drawNumbers();
|
||||
}
|
||||
|
||||
function drawNumbers()
|
||||
{
|
||||
var seperatedScore:Array<Int> = [];
|
||||
var tempCombo:Int = Math.round(curNumber);
|
||||
|
||||
while (tempCombo != 0)
|
||||
{
|
||||
seperatedScore.push(tempCombo % 10);
|
||||
tempCombo = Math.floor(tempCombo / 10);
|
||||
}
|
||||
|
||||
if (seperatedScore.length == 0)
|
||||
seperatedScore.push(0);
|
||||
|
||||
seperatedScore.reverse();
|
||||
|
||||
for (ind => num in seperatedScore)
|
||||
{
|
||||
if (ind >= members.length)
|
||||
{
|
||||
var numb:TallyNumber = new TallyNumber(ind * 43, 0, num);
|
||||
add(numb);
|
||||
numb.color = flavour;
|
||||
}
|
||||
else
|
||||
{
|
||||
members[ind].animation.play(Std.string(num));
|
||||
members[ind].color = flavour;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TallyNumber extends FlxSprite
|
||||
{
|
||||
public function new(x:Float, y:Float, digit:Int)
|
||||
{
|
||||
super(x, y);
|
||||
|
||||
frames = Paths.getSparrowAtlas("resultScreen/tallieNumber");
|
||||
|
||||
for (i in 0...10)
|
||||
animation.addByPrefix(Std.string(i), i + " small", 24, false);
|
||||
|
||||
animation.play(Std.string(digit));
|
||||
antialiasing = true;
|
||||
updateHitbox();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue