From 7d3f2e8796672e69812c16954cfeff2e0de0173a Mon Sep 17 00:00:00 2001 From: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:04 -0700 Subject: [PATCH] feat(stats): minigame stats (#1249) Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1249 Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> --- src/models/statsModel.ts | 7 ++++++- src/services/statsService.ts | 9 +++++++++ src/types/statTypes.ts | 10 ++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/models/statsModel.ts b/src/models/statsModel.ts index 93cf9c1f3..64f312585 100644 --- a/src/models/statsModel.ts +++ b/src/models/statsModel.ts @@ -92,7 +92,12 @@ const statsSchema = new Schema({ Deaths: Number, HealCount: Number, ReviveCount: Number, - Races: { type: Map, of: raceSchema, default: {} } + Races: { type: Map, of: raceSchema, default: {} }, + ZephyrScore: Number, + SentinelGameScore: Number, + CaliberChicksScore: Number, + OlliesCrashCourseScore: Number, + DojoObstacleScore: Number }); statsSchema.set("toJSON", { diff --git a/src/services/statsService.ts b/src/services/statsService.ts index ebc5b2f2b..006122471 100644 --- a/src/services/statsService.ts +++ b/src/services/statsService.ts @@ -305,6 +305,15 @@ export const updateStats = async (playerStats: TStatsDatabaseDocument, payload: break; + case "ZephyrScore": + case "SentinelGameScore": + case "CaliberChicksScore": + case "OlliesCrashCourseScore": + case "DojoObstacleScore": + playerStats[category] ??= 0; + if (data > playerStats[category]) playerStats[category] = data; + break; + default: if (!ignoredCategories.includes(category)) { if (!unknownCategories[action]) { diff --git a/src/types/statTypes.ts b/src/types/statTypes.ts index 6d3a2fd34..d020cff64 100644 --- a/src/types/statTypes.ts +++ b/src/types/statTypes.ts @@ -26,6 +26,11 @@ export interface IStatsClient { HealCount?: number; ReviveCount?: number; Races?: Map; + ZephyrScore?: number; + SentinelGameScore?: number; + CaliberChicksScore?: number; + OlliesCrashCourseScore?: number; + DojoObstacleScore?: number; } export interface IStatsDatabase extends IStatsClient { @@ -139,6 +144,11 @@ export interface IStatsMax { WEAPON_XP?: IUploadEntry; MISSION_SCORE?: IUploadEntry; RACE_SCORE?: IUploadEntry; + ZephyrScore?: number; + SentinelGameScore?: number; + CaliberChicksScore?: number; + OlliesCrashCourseScore?: number; + DojoObstacleScore?: number; } export interface IStatsSet {