From 8d5fb47e3d0a847df959c8c30cb8138a9fbc4073 Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 20 May 2022 21:04:28 -0500 Subject: achievements --- src/lib/APITypes.d.ts | 20 +++++++ src/lib/sections/Achievements.svelte | 81 +++++++++++++++++++++++++++++ src/routes/player/[player]/[profile].svelte | 20 +++++-- 3 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 src/lib/sections/Achievements.svelte diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index e01a950..04cd554 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -59,6 +59,7 @@ export interface CleanPlayer extends CleanBasicPlayer { socials: CleanSocialMedia profiles?: CleanBasicProfile[] claimed?: ClaimedSkyBlockItem[] + achievements?: Achievements } export interface StatItem { @@ -454,3 +455,22 @@ export interface ItemAuctionsSchema { sbId: string auctions: SimpleAuctionSchema[] } + +interface TieredAchievement { + id: string + name: string + value: number | null + description: string +} + +interface ChallengeAchievement { + id: string + name: string + unlocked: boolean + description: string +} + +export interface Achievements { + tiered: TieredAchievement[] + challenge: ChallengeAchievement[] +} diff --git a/src/lib/sections/Achievements.svelte b/src/lib/sections/Achievements.svelte new file mode 100644 index 0000000..61f320e --- /dev/null +++ b/src/lib/sections/Achievements.svelte @@ -0,0 +1,81 @@ + + +{#if data.member.achievements} +

+ Tiered + + ({data.member.achievements.tiered.filter(a => a.value).length}/{data.member.achievements + .tiered.length}) + +

+ + +

+ Challenge + + ({data.member.achievements.challenge.filter(a => a.unlocked).length}/{data.member.achievements + .challenge.length}) + +

+ +{/if} + + diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte index 62f77b9..363b439 100644 --- a/src/routes/player/[player]/[profile].svelte +++ b/src/routes/player/[player]/[profile].svelte @@ -45,6 +45,7 @@