From 43b5940ea911bed7b333ccefe2f2ac02f9ad7dfb Mon Sep 17 00:00:00 2001 From: Danny Miller Date: Thu, 30 May 2024 20:52:02 -0400 Subject: [PATCH] show who didnt mark ready --- models/db/multiplayerMatch.d.ts | 2 +- pages/[subdomain]/match/[matchId]/index.tsx | 26 +++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/models/db/multiplayerMatch.d.ts b/models/db/multiplayerMatch.d.ts index 319b5f361..d1d7589e1 100644 --- a/models/db/multiplayerMatch.d.ts +++ b/models/db/multiplayerMatch.d.ts @@ -15,7 +15,7 @@ interface MultiplayerMatch { }; levels: Level[] | Types.ObjectId[]; levelsPopulated: Level[]; // virtual - markedReady: Types.ObjectId[] | User[]; + markedReady: Types.ObjectId[] | User[] | string[]; matchId: string; matchLog?: MatchLog[]; players: UserWithMultiplayerProfile[]; diff --git a/pages/[subdomain]/match/[matchId]/index.tsx b/pages/[subdomain]/match/[matchId]/index.tsx index 894cd9ef6..599368e89 100644 --- a/pages/[subdomain]/match/[matchId]/index.tsx +++ b/pages/[subdomain]/match/[matchId]/index.tsx @@ -411,6 +411,15 @@ export default function Match() { return Loading...; } + const playersNotMarkedReady = match.players.filter(player => !(match.markedReady as string[]).includes(player._id.toString())); + const prettyMatchState = ({ + [MultiplayerMatchState.OPEN]: 'Match Open', + [MultiplayerMatchState.FINISHED]: 'Match Finished', + [MultiplayerMatchState.ACTIVE]: 'Match about to begin', + [MultiplayerMatchState.ABORTED]: 'Match Aborted', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } as any)[match.state]; + return (

{ - ({ - [MultiplayerMatchState.OPEN]: 'Match Open', - [MultiplayerMatchState.FINISHED]: 'Match Finished', - [MultiplayerMatchState.ACTIVE]: 'Match about to begin', - [MultiplayerMatchState.ABORTED]: 'Match Aborted', - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any)[match.state] + prettyMatchState }

{/* if you are in the game and the game is about to start then say Your Record */} @@ -434,6 +437,15 @@ export default function Match() { Your record against {otherPlayer?.name} is {headToHead?.totalWins} - {headToHead?.totalLosses} - {headToHead?.totalTies} } + { match.state === MultiplayerMatchState.ABORTED && +

+ {playersNotMarkedReady.map(player => ( +
+ {player.name} did not mark ready +
+ ))} +

+ } {connectedPlayersInRoom && connectedPlayersInRoom.count > 2 &&
{connectedPlayersInRoom.count - 2} spectating