From db636756e3479ada6825873436c3c729e955c36f Mon Sep 17 00:00:00 2001 From: spacemeowx2 Date: Thu, 1 Dec 2022 16:00:41 +0800 Subject: [PATCH] feat: add x power to stat.ink --- src/exporters/stat.ink.ts | 17 ++++++++++++++++- src/types.ts | 6 +++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/exporters/stat.ink.ts b/src/exporters/stat.ink.ts index cad1077..68db33b 100644 --- a/src/exporters/stat.ink.ts +++ b/src/exporters/stat.ink.ts @@ -424,6 +424,7 @@ export class StatInkExporter implements GameExporter { }; async mapBattle( { + groupInfo, challengeProgress, bankaraMatchChallenge, listNode, @@ -511,7 +512,7 @@ export class StatInkExporter implements GameExporter { result.our_team_count = myTeam?.result?.score ?? undefined; result.their_team_count = otherTeams?.[0]?.result?.score ?? undefined; result.rank_exp_change = bankaraMatch?.earnedUdemaePoint ?? undefined; - if (listNode) { + if (listNode?.udemae) { [result.rank_before, result.rank_before_s_plus] = parseUdemae( listNode.udemae, ); @@ -529,11 +530,25 @@ export class StatInkExporter implements GameExporter { result.rank_after = result.rank_before; result.rank_after_s_plus = result.rank_before_s_plus; } + } + if (challengeProgress) { result.challenge_win = challengeProgress.winCount; result.challenge_lose = challengeProgress.loseCount; } + if (vsDetail.xMatch) { + result.x_power_before = result.x_power_after = vsDetail.xMatch.lastXPower; + + if ( + groupInfo?.xMatchMeasurement && + groupInfo?.xMatchMeasurement.state === "COMPLETED" && + challengeProgress?.index === 0 + ) { + result.x_power_after = groupInfo.xMatchMeasurement.xPowerAfter; + } + } + if (rankBeforeState && rankState) { result.rank_before_exp = rankBeforeState.rankPoint; result.rank_after_exp = rankState.rankPoint; diff --git a/src/types.ts b/src/types.ts index e63b161..a5880d8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -69,7 +69,7 @@ export type XMatchMeasurement = { }; export type BattleListNode = { id: string; - udemae: string; + udemae?: string; judgement: "LOSE" | "WIN" | "DEEMED_LOSE" | "EXEMPTED_LOSE" | "DRAW"; bankaraMatch: null | { earnedUdemaePoint: null | number; @@ -765,8 +765,8 @@ export type StatInkPostBody = { rank_up_battle?: "yes" | "no"; // Set "yes" if now "Rank-up Battle" mode. challenge_win?: number; // Win count for Anarchy (Series) If rank_up_battle is truthy("yes"), the value range is limited to [0, 3]. challenge_lose?: number; - x_power_before?: number; - x_power_after?: number; + x_power_before?: number | null; + x_power_after?: number | null; fest_power?: number; // Splatfest Power (Pro) fest_dragon?: | "10x"