2022-03-08 08:13:53 +00:00
|
|
|
package funkin.ui;
|
2022-02-16 21:31:20 +00:00
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
import funkin.util.Constants;
|
2022-02-16 21:31:20 +00:00
|
|
|
import flixel.FlxSprite;
|
|
|
|
import flixel.group.FlxGroup.FlxTypedGroup;
|
|
|
|
import flixel.tweens.FlxTween;
|
2022-03-08 08:13:53 +00:00
|
|
|
import funkin.play.PlayState;
|
2022-02-16 21:31:20 +00:00
|
|
|
|
|
|
|
class PopUpStuff extends FlxTypedGroup<FlxSprite>
|
|
|
|
{
|
|
|
|
override public function new()
|
|
|
|
{
|
|
|
|
super();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function displayRating(daRating:String)
|
|
|
|
{
|
|
|
|
if (daRating == null)
|
|
|
|
daRating = "good";
|
|
|
|
|
|
|
|
var rating:FlxSprite = new FlxSprite();
|
|
|
|
var ratingPath:String = daRating;
|
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
if (PlayState.instance.currentStageId.startsWith('school'))
|
2022-02-16 21:31:20 +00:00
|
|
|
ratingPath = "weeb/pixelUI/" + ratingPath + "-pixel";
|
|
|
|
|
|
|
|
rating.loadGraphic(Paths.image(ratingPath));
|
|
|
|
rating.x = FlxG.width * 0.55 - 40;
|
|
|
|
// make sure rating is visible lol!
|
|
|
|
if (rating.x < FlxG.camera.scroll.x)
|
|
|
|
rating.x = FlxG.camera.scroll.x;
|
|
|
|
else if (rating.x > FlxG.camera.scroll.x + FlxG.camera.width - rating.width)
|
|
|
|
rating.x = FlxG.camera.scroll.x + FlxG.camera.width - rating.width;
|
|
|
|
|
|
|
|
rating.y = FlxG.camera.scroll.y + FlxG.camera.height * 0.4 - 60;
|
|
|
|
rating.acceleration.y = 550;
|
|
|
|
rating.velocity.y -= FlxG.random.int(140, 175);
|
|
|
|
rating.velocity.x -= FlxG.random.int(0, 10);
|
|
|
|
|
|
|
|
add(rating);
|
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
if (PlayState.instance.currentStageId.startsWith('school'))
|
2022-02-16 21:31:20 +00:00
|
|
|
{
|
2022-03-11 06:30:01 +00:00
|
|
|
rating.setGraphicSize(Std.int(rating.width * Constants.PIXEL_ART_SCALE * 0.7));
|
2022-02-16 21:31:20 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
rating.setGraphicSize(Std.int(rating.width * 0.7));
|
|
|
|
rating.antialiasing = true;
|
|
|
|
}
|
|
|
|
rating.updateHitbox();
|
|
|
|
|
|
|
|
FlxTween.tween(rating, {alpha: 0}, 0.2, {
|
|
|
|
onComplete: function(tween:FlxTween)
|
|
|
|
{
|
|
|
|
remove(rating, true);
|
|
|
|
rating.destroy();
|
|
|
|
},
|
|
|
|
startDelay: Conductor.crochet * 0.001
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public function displayCombo(?combo:Int = 0):Int
|
|
|
|
{
|
|
|
|
if (combo == null)
|
|
|
|
combo = 0;
|
|
|
|
|
|
|
|
var pixelShitPart1:String = "";
|
|
|
|
var pixelShitPart2:String = '';
|
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
if (PlayState.instance.currentStageId.startsWith('school'))
|
2022-02-16 21:31:20 +00:00
|
|
|
{
|
|
|
|
pixelShitPart1 = 'weeb/pixelUI/';
|
|
|
|
pixelShitPart2 = '-pixel';
|
|
|
|
}
|
|
|
|
var comboSpr:FlxSprite = new FlxSprite().loadGraphic(Paths.image(pixelShitPart1 + 'combo' + pixelShitPart2));
|
|
|
|
comboSpr.y = FlxG.camera.scroll.y + FlxG.camera.height * 0.4 + 80;
|
|
|
|
comboSpr.x = FlxG.width * 0.55;
|
|
|
|
// make sure combo is visible lol!
|
|
|
|
// 194 fits 4 combo digits
|
|
|
|
if (comboSpr.x < FlxG.camera.scroll.x + 194)
|
|
|
|
comboSpr.x = FlxG.camera.scroll.x + 194;
|
|
|
|
else if (comboSpr.x > FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width)
|
|
|
|
comboSpr.x = FlxG.camera.scroll.x + FlxG.camera.width - comboSpr.width;
|
|
|
|
|
|
|
|
comboSpr.acceleration.y = 600;
|
|
|
|
comboSpr.velocity.y -= 150;
|
|
|
|
comboSpr.velocity.x += FlxG.random.int(1, 10);
|
|
|
|
|
|
|
|
add(comboSpr);
|
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
if (PlayState.instance.currentStageId.startsWith('school'))
|
2022-02-16 21:31:20 +00:00
|
|
|
{
|
2022-03-11 06:30:01 +00:00
|
|
|
comboSpr.setGraphicSize(Std.int(comboSpr.width * Constants.PIXEL_ART_SCALE * 0.7));
|
2022-02-16 21:31:20 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
comboSpr.setGraphicSize(Std.int(comboSpr.width * 0.7));
|
|
|
|
comboSpr.antialiasing = true;
|
|
|
|
}
|
|
|
|
comboSpr.updateHitbox();
|
|
|
|
|
|
|
|
FlxTween.tween(comboSpr, {alpha: 0}, 0.2, {
|
|
|
|
onComplete: function(tween:FlxTween)
|
|
|
|
{
|
|
|
|
remove(comboSpr, true);
|
|
|
|
comboSpr.destroy();
|
|
|
|
},
|
|
|
|
startDelay: Conductor.crochet * 0.001
|
|
|
|
});
|
|
|
|
|
|
|
|
var seperatedScore:Array<Int> = [];
|
|
|
|
var tempCombo:Int = combo;
|
|
|
|
|
|
|
|
while (tempCombo != 0)
|
|
|
|
{
|
|
|
|
seperatedScore.push(tempCombo % 10);
|
|
|
|
tempCombo = Std.int(tempCombo / 10);
|
|
|
|
}
|
|
|
|
while (seperatedScore.length < 3)
|
|
|
|
seperatedScore.push(0);
|
|
|
|
|
|
|
|
// seperatedScore.reverse();
|
|
|
|
|
|
|
|
var daLoop:Int = 1;
|
|
|
|
for (i in seperatedScore)
|
|
|
|
{
|
|
|
|
var numScore:FlxSprite = new FlxSprite().loadGraphic(Paths.image(pixelShitPart1 + 'num' + Std.int(i) + pixelShitPart2));
|
|
|
|
numScore.y = comboSpr.y;
|
|
|
|
|
2022-03-11 06:30:01 +00:00
|
|
|
if (PlayState.instance.currentStageId.startsWith('school'))
|
2022-02-16 21:31:20 +00:00
|
|
|
{
|
2022-03-11 06:30:01 +00:00
|
|
|
numScore.setGraphicSize(Std.int(numScore.width * Constants.PIXEL_ART_SCALE));
|
2022-02-16 21:31:20 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
numScore.antialiasing = true;
|
|
|
|
numScore.setGraphicSize(Std.int(numScore.width * 0.5));
|
|
|
|
}
|
|
|
|
numScore.updateHitbox();
|
|
|
|
|
|
|
|
numScore.x = comboSpr.x - (43 * daLoop); //- 90;
|
|
|
|
numScore.acceleration.y = FlxG.random.int(200, 300);
|
|
|
|
numScore.velocity.y -= FlxG.random.int(140, 160);
|
|
|
|
numScore.velocity.x = FlxG.random.float(-5, 5);
|
|
|
|
|
|
|
|
add(numScore);
|
|
|
|
|
|
|
|
FlxTween.tween(numScore, {alpha: 0}, 0.2, {
|
|
|
|
onComplete: function(tween:FlxTween)
|
|
|
|
{
|
|
|
|
remove(numScore, true);
|
|
|
|
numScore.destroy();
|
|
|
|
},
|
|
|
|
startDelay: Conductor.crochet * 0.002
|
|
|
|
});
|
|
|
|
|
|
|
|
daLoop++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return combo;
|
|
|
|
}
|
|
|
|
}
|