From 96f14531c02e9b45f113495218bc6be1016a9ad7 Mon Sep 17 00:00:00 2001 From: mat Date: Sat, 9 Apr 2022 19:59:32 -0500 Subject: Include mode in profile list --- src/lib/APITypes.d.ts | 5 ++++- src/lib/profile.ts | 11 +++++++++++ src/routes/player/[player]/index.svelte | 16 +++++++++++++--- 3 files changed, 28 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index bb0cd25..65e70f3 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -111,7 +111,8 @@ export interface CleanUser { } export interface CleanProfile extends CleanBasicProfile { - members?: CleanBasicMember[] + members: CleanBasicMember[] + mode: GameMode } /** A basic profile that only includes the profile uuid and name */ @@ -346,3 +347,5 @@ export interface CoopInvitation { accepted: boolean acceptedTimestamp: number | null } + +export type GameMode = 'normal' | 'stranded' | 'bingo' | 'ironman' diff --git a/src/lib/profile.ts b/src/lib/profile.ts index ceeac77..106e261 100644 --- a/src/lib/profile.ts +++ b/src/lib/profile.ts @@ -11,12 +11,23 @@ export function prettyTimestamp(ms: number) { return timeAsString } +export const MODE_EMOJIS = { + ironman: '♻️', + stranded: '🏝️' +} +export const DEFAULT_MODE_EMOJI = '❓' + export function generateInfobox(data: CleanMemberProfile): string[] { const result: string[] = [] if (data.member.left) result.push(`🚪 Removed from profile`) + if (data.profile.mode !== 'normal') { + const modeEmoji = MODE_EMOJIS[data.profile.mode] ?? DEFAULT_MODE_EMOJI + result.push(`${modeEmoji} Mode: ${cleanId(data.profile.mode)}`) + } + if (data.member.lastSave) result.push(`💾 Last save: ${prettyTimestamp(data.member.lastSave)}`) diff --git a/src/routes/player/[player]/index.svelte b/src/routes/player/[player]/index.svelte index 7964af1..c33d43f 100644 --- a/src/routes/player/[player]/index.svelte +++ b/src/routes/player/[player]/index.svelte @@ -36,6 +36,10 @@ import Header from '$lib/Header.svelte' import Head from '$lib/Head.svelte' import { chooseDefaultBackground } from '$lib/backgrounds' + import Emoji from '$lib/Emoji.svelte' + import { MODE_EMOJIS, DEFAULT_MODE_EMOJI } from '$lib/profile' + import Tooltip from '$lib/Tooltip.svelte' + import { cleanId } from '$lib/utils' export let data: CleanUser & { player: CleanPlayer } @@ -93,6 +97,14 @@ > {profile.name} + {#if profile.mode !== 'normal'} + + + {cleanId(profile.mode)} mode + + + + {/if} {#if (profile.members?.length ?? 0) > 1} {#each profile.members?.filter(m => !m.left) ?? [] as player} @@ -119,10 +131,8 @@