diff --git a/client/package.json b/client/package.json index 29cdbfd93..36be8bab9 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "tachi-client", - "version": "2.1.3", + "version": "2.1.4", "private": true, "scripts": { "start": "node scripts/start.js -o", diff --git a/client/src/components/tables/cells/CHUNITHMJudgementCell.tsx b/client/src/components/tables/cells/CHUNITHMJudgementCell.tsx new file mode 100644 index 000000000..aa5e6cce7 --- /dev/null +++ b/client/src/components/tables/cells/CHUNITHMJudgementCell.tsx @@ -0,0 +1,45 @@ +import React from "react"; +import { COLOUR_SET, PBScoreDocument, ScoreDocument } from "tachi-common"; +import { IsNullish } from "util/misc"; + +export default function CHUNITHMJudgementCell({ + score, +}: { + score: ScoreDocument<"chunithm:Single"> | PBScoreDocument<"chunithm:Single">; +}) { + // even if we dont have judgement data, we know what they got. + if (score.scoreData.lamp === "ALL JUSTICE CRITICAL") { + return ( + + + 0- + 0- + 0- + 0 + + + ); + } + + const judgements = score.scoreData.judgements; + + if ( + IsNullish(judgements.miss) || + IsNullish(judgements.attack) || + IsNullish(judgements.justice) || + IsNullish(judgements.jcrit) + ) { + return No Data.; + } + + return ( + + + {judgements.jcrit}- + {judgements.justice}- + {judgements.attack}- + {judgements.miss} + + + ); +} diff --git a/client/src/components/tables/game-core-cells/CHUNITHMCoreCells.tsx b/client/src/components/tables/game-core-cells/CHUNITHMCoreCells.tsx new file mode 100644 index 000000000..3ef2139c8 --- /dev/null +++ b/client/src/components/tables/game-core-cells/CHUNITHMCoreCells.tsx @@ -0,0 +1,34 @@ +import React from "react"; +import { GetGamePTConfig, PBScoreDocument, ScoreDocument } from "tachi-common"; +import { ChangeOpacity } from "util/color-opacity"; +import { FormatMillions } from "util/misc"; +import CHUNITHMJudgementCell from "../cells/CHUNITHMJudgementCell"; +import LampCell from "../cells/LampCell"; +import RatingCell from "../cells/RatingCell"; + +export default function CHUNITHMCoreCells({ + sc, + rating, +}: { + sc: ScoreDocument<"chunithm:Single"> | PBScoreDocument<"chunithm:Single">; + rating: keyof ScoreDocument["calculatedData"]; +}) { + const gptConfig = GetGamePTConfig(sc.game, sc.playtype); + + return ( + <> + + {sc.scoreData.grade} +
+ {FormatMillions(sc.scoreData.score)} + + + + + + ); +} diff --git a/client/src/components/tables/game-core-cells/ScoreCoreCells.tsx b/client/src/components/tables/game-core-cells/ScoreCoreCells.tsx index 5dd37698b..8cad9ee8c 100644 --- a/client/src/components/tables/game-core-cells/ScoreCoreCells.tsx +++ b/client/src/components/tables/game-core-cells/ScoreCoreCells.tsx @@ -8,6 +8,7 @@ import { ScoreDocument, } from "tachi-common"; import BMSCoreCells from "./BMSCoreCells"; +import CHUNITHMCoreCells from "./CHUNITHMCoreCells"; import GenericCoreCells from "./GenericCoreCells"; import IIDXCoreCells from "./IIDXCoreCells"; import JubeatCoreCells from "./JubeatCoreCells"; @@ -58,7 +59,7 @@ export default function ScoreCoreCells({ } else if (game === "jubeat") { return ; } else if (game === "chunithm") { - return ; + return ; } else if (game === "ddr") { return ; } else if (game === "gitadora") { diff --git a/client/src/components/tables/headers/GameHeaders.tsx b/client/src/components/tables/headers/GameHeaders.tsx index d751c8619..0a94c8518 100644 --- a/client/src/components/tables/headers/GameHeaders.tsx +++ b/client/src/components/tables/headers/GameHeaders.tsx @@ -1,4 +1,3 @@ -import { nanoid } from "nanoid"; import React from "react"; import { Game, @@ -127,10 +126,14 @@ export function GetGPTCoreHeaders | PBScoreDocument<"popn:9B">; - if (!aSc || !bSc) { + if (!aSc && bSc) { return -Infinity; } + if (aSc && !bSc) { + return Infinity; + } + if (aSc.scoreData.lampIndex === bSc.scoreData.lampIndex) { if ( !aSc.scoreData.hitMeta.specificClearType || diff --git a/client/src/util/constants/version.ts b/client/src/util/constants/version.ts index 39a86d13a..979fcec74 100644 --- a/client/src/util/constants/version.ts +++ b/client/src/util/constants/version.ts @@ -1,6 +1,6 @@ const MAJOR = 2; const MINOR = 1; -const PATCH = 3; +const PATCH = 4; // As is with all front-facing zkldi projects, the version names for tachi-client // are from an album I like. In this case, the album is The Cure - Disintegration.