package funkin.freeplayStuff; import flixel.FlxSprite; import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup; using StringTools; class FreeplayScore extends FlxTypedSpriteGroup { public var scoreShit(default, set):Int = 0; function set_scoreShit(val):Int { if (group == null || group.members == null) return val; var loopNum:Int = group.members.length - 1; var dumbNumb = Std.parseInt(Std.string(val)); var prevNum:ScoreNum; while (dumbNumb > 0) { group.members[loopNum].digit = dumbNumb % 10; // var funnyNum = group.members[loopNum]; // prevNum = group.members[loopNum + 1]; // if (prevNum != null) // { // funnyNum.x = prevNum.x - (funnyNum.width * 0.7); // } // funnyNum.y = (funnyNum.baseY - (funnyNum.height / 2)) + 73; // funnyNum.x = (funnyNum.baseX - (funnyNum.width / 2)) + 450; // this plus value is hand picked lol! dumbNumb = Math.floor(dumbNumb / 10); loopNum--; } while (loopNum > 0) { group.members[loopNum].digit = 0; loopNum--; } return val; } public function new(x:Float, y:Float, scoreShit:Int = 100) { super(x, y); for (i in 0...7) { add(new ScoreNum(x + (45 * i), y, 0)); } this.scoreShit = scoreShit; } public function updateScore(scoreNew:Int) { scoreShit = scoreNew; } } class ScoreNum extends FlxSprite { public var digit(default, set):Int = 0; function set_digit(val):Int { if (animation.curAnim != null && animation.curAnim.name != Std.string(val)) { animation.play(Std.string(val), true, false, 0); updateHitbox(); switch (val) { case 5: // set offsets // offset.x += 0; // offset.y += 10; case 7: // offset.y += 6; case 4: // offset.y += 5; case 9: // offset.y += 5; default: centerOffsets(false); } } return val; } public var baseY:Float = 0; public var baseX:Float = 0; public function new(x:Float, y:Float, ?initDigit:Int = 0) { super(x, y); baseY = y; baseX = x; frames = Paths.getSparrowAtlas('noteComboNumbers'); for (i in 0...10) { var stringNum:String = Std.string(i); animation.addByPrefix(stringNum, stringNum, 24, false); } this.digit = initDigit; animation.play(Std.string(digit), true); antialiasing = true; setGraphicSize(Std.int(width * 0.3)); updateHitbox(); } }