From 13125a56267f2a88ed0a38833ea6bc1a7e64775c Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 27 Mar 2022 17:48:35 -0500 Subject: Add harp --- src/lib/APITypes.d.ts | 37 +++++++++++++++++------ src/lib/sections/Harp.svelte | 70 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 9 deletions(-) create mode 100644 src/lib/sections/Harp.svelte (limited to 'src/lib') diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index 5b14842..8986f9a 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -5,14 +5,13 @@ export interface CleanMemberProfile { } export interface CleanMemberProfilePlayer extends CleanPlayer { + // The profile name may be different for each player, so we put it here profileName: string firstJoin: number lastSave: number purse: number stats: StatItem[] - rawHypixelStats: { - [key: string]: number - } + rawHypixelStats: { [key: string]: number } minions: CleanMinion[] fairySouls: FairySouls inventories?: Inventories @@ -21,6 +20,8 @@ export interface CleanMemberProfilePlayer extends CleanPlayer { zones: Zone[] collections: Collection[] slayers: SlayerData + pets: PetsData + harp: HarpData } export interface CleanMember extends CleanBasicMember { @@ -242,12 +243,30 @@ export interface CleanBasicMember { } export interface Bank { - balance?: number; - history: BankHistoryItem[]; + balance?: number + history: BankHistoryItem[] } export interface BankHistoryItem { - change: number; - total: number; - timestamp: number; - name: string; + change: number + total: number + timestamp: number + name: string +} + + +export interface HarpSong { + id: string + /** A number between 0 and 1 representing the user's best completion */ + progress: number + completions: number + perfectCompletions: number +} + +export interface HarpData { + selected: { + id: string + timestamp: number + } | null + claimedMelodysHair: boolean + songs: HarpSong[] } diff --git a/src/lib/sections/Harp.svelte b/src/lib/sections/Harp.svelte new file mode 100644 index 0000000..438f354 --- /dev/null +++ b/src/lib/sections/Harp.svelte @@ -0,0 +1,70 @@ + + +
+

Claimed Melody's hair:

+ {#if data.member.harp.selected} +

+ Selected song: + {toTitleCase(cleanId(data.member.harp.selected.id))} + + {millisecondsToTime(Date.now() - data.member.harp.selected.timestamp)} ago + +

+ {/if} +
+
+ {#each data.member.harp.songs as song} +
+

{toTitleCase(cleanId(song.id))}

+
+ {#if song.completions} +

Completions: {song.completions}

+

Perfect completions: {song.perfectCompletions}

+ {:else} +

Progress: {Math.floor(song.progress * 100)}%

+ {/if} +
+
+ {/each} +
+ + -- cgit