diff --git a/app/Transformers/ScoreTransformer.php b/app/Transformers/ScoreTransformer.php index 817bf242377..ca6f49c67d9 100644 --- a/app/Transformers/ScoreTransformer.php +++ b/app/Transformers/ScoreTransformer.php @@ -100,6 +100,10 @@ public function transformSolo(MultiplayerScoreLink|ScoreModel|SoloScore $score) $score = $score->score; } + if ($score instanceof SoloScore) { + $extraAttributes['ranked'] = $score->ranked; + } + $hasReplay = $score->has_replay; return [ diff --git a/resources/js/interfaces/solo-score-json.ts b/resources/js/interfaces/solo-score-json.ts index fa83b534ceb..b16d3055f87 100644 --- a/resources/js/interfaces/solo-score-json.ts +++ b/resources/js/interfaces/solo-score-json.ts @@ -40,6 +40,7 @@ type SoloScoreJsonDefaultAttributes = { passed: boolean; pp: number | null; rank: Rank; + ranked?: boolean; ruleset_id: number; started_at: string | null; statistics: Partial>; diff --git a/resources/js/scores/pp-value.tsx b/resources/js/scores/pp-value.tsx index c84c77b8a08..395c203eb72 100644 --- a/resources/js/scores/pp-value.tsx +++ b/resources/js/scores/pp-value.tsx @@ -21,13 +21,16 @@ export default function PpValue(props: Props) { if (!isBest && !isSolo) { title = trans('scores.status.non_best'); content = '-'; + } else if (props.score.ranked === false) { + title = trans('scores.status.no_pp'); + content = '-'; } else if (props.score.pp == null) { if (isSolo && !props.score.passed) { title = trans('scores.status.non_passing'); content = '-'; } else { title = trans('scores.status.processing'); - content = ; + content = ; } } else { title = formatNumber(props.score.pp); diff --git a/resources/lang/en/scores.php b/resources/lang/en/scores.php index e55b8aa5437..b6511efbae9 100644 --- a/resources/lang/en/scores.php +++ b/resources/lang/en/scores.php @@ -25,6 +25,7 @@ 'status' => [ 'non_best' => 'Only personal best scores award pp', 'non_passing' => 'Only passing scores award pp', + 'no_pp' => 'pp is not awarded for this score', 'processing' => 'This score is still being calculated and will be displayed soon', ], ];