add player badges
All checks were successful
Deploy / deploy (push) Successful in 2m24s

This commit is contained in:
Lee
2024-09-27 23:04:14 +01:00
parent d9b68f0c65
commit 1fa20b6e52
19 changed files with 502 additions and 108 deletions

View File

@ -8,10 +8,13 @@ import clsx from "clsx";
type Badge = {
name: string;
color?: (score: ScoreSaberScoreToken, leaderboard: ScoreSaberLeaderboardToken) => string | undefined;
color?: (
score: ScoreSaberScoreToken,
leaderboard: ScoreSaberLeaderboardToken,
) => string | undefined;
create: (
score: ScoreSaberScoreToken,
leaderboard: ScoreSaberLeaderboardToken
leaderboard: ScoreSaberLeaderboardToken,
) => string | React.ReactNode | undefined;
};
@ -31,11 +34,17 @@ const badges: Badge[] = [
},
{
name: "Accuracy",
color: (score: ScoreSaberScoreToken, leaderboard: ScoreSaberLeaderboardToken) => {
color: (
score: ScoreSaberScoreToken,
leaderboard: ScoreSaberLeaderboardToken,
) => {
const acc = (score.baseScore / leaderboard.maxScore) * 100;
return accuracyToColor(acc);
},
create: (score: ScoreSaberScoreToken, leaderboard: ScoreSaberLeaderboardToken) => {
create: (
score: ScoreSaberScoreToken,
leaderboard: ScoreSaberLeaderboardToken,
) => {
const acc = (score.baseScore / leaderboard.maxScore) * 100;
return `${acc.toFixed(2)}%`;
},
@ -61,8 +70,16 @@ const badges: Badge[] = [
return (
<>
<p>{fullCombo ? <span className="text-green-400">FC</span> : formatNumberWithCommas(score.missedNotes)}</p>
<XMarkIcon className={clsx("w-5 h-5", fullCombo ? "hidden" : "text-red-400")} />
<p>
{fullCombo ? (
<span className="text-green-400">FC</span>
) : (
formatNumberWithCommas(score.missedNotes)
)}
</p>
<XMarkIcon
className={clsx("w-5 h-5", fullCombo ? "hidden" : "text-red-400")}
/>
</>
);
},