diff --git a/AquaNet/src/components/MapDetails.svelte b/AquaNet/src/components/MapDetails.svelte
new file mode 100644
index 00000000..b81c6803
--- /dev/null
+++ b/AquaNet/src/components/MapDetails.svelte
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
.padStart(6,)
+
+
+
{meta.name ?? t("UserHome.UnknownSong")}
+
+ { mapRank }
+
+
+
+
+
+ {("" + getMult(mapData[3], game)[2]).replace("p", "+")}
+ {(mapData[3] / 10000).toFixed(2)}%
+
+ {#if game === 'mai2'}
+
+ { (mapData[3] / 1000000 * mapRank * Number(mult[1])).toFixed(0) }
+
+ {/if}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AquaNet/src/libs/i18n/en_ref.ts b/AquaNet/src/libs/i18n/en_ref.ts
index de669ab0..128d7acf 100644
--- a/AquaNet/src/libs/i18n/en_ref.ts
+++ b/AquaNet/src/libs/i18n/en_ref.ts
@@ -23,6 +23,7 @@ export const EN_REF_USER = {
'UserHome.ShowRanksDetails': "Click to show details",
'UserHome.RankDetail.Title': 'Achievement Details',
'UserHome.RankDetail.Level': "Level",
+ 'UserHome.B50': "B50",
}
export const EN_REF_Welcome = {
diff --git a/AquaNet/src/libs/i18n/zh.ts b/AquaNet/src/libs/i18n/zh.ts
index 8ffa93cb..5c28b09c 100644
--- a/AquaNet/src/libs/i18n/zh.ts
+++ b/AquaNet/src/libs/i18n/zh.ts
@@ -25,6 +25,7 @@ const zhUser: typeof EN_REF_USER = {
'UserHome.ShowRanksDetails': "点击显示评分详细",
'UserHome.RankDetail.Title': '评分详细',
'UserHome.RankDetail.Level': "等级",
+ 'UserHome.B50': "B50",
}
const zhWelcome: typeof EN_REF_Welcome = {
diff --git a/AquaNet/src/pages/UserHome.svelte b/AquaNet/src/pages/UserHome.svelte
index 2ddcf4db..3861e184 100644
--- a/AquaNet/src/pages/UserHome.svelte
+++ b/AquaNet/src/pages/UserHome.svelte
@@ -5,7 +5,10 @@
GenericGameSummary,
MusicMeta,
TrendEntry,
- AquaNetUser
+ AquaNetUser,
+
+ AllMusic
+
} from "../libs/generalTypes";
import { DATA_HOST } from "../libs/config";
import 'cal-heatmap/cal-heatmap.css';
@@ -18,6 +21,7 @@
import Icon from "@iconify/svelte";
import { GAME_TITLE, t } from "../libs/i18n";
import RankDetails from "../components/RankDetails.svelte";
+ import MapDetails from "../components/MapDetails.svelte";
const TREND_DAYS = 60
@@ -38,11 +42,11 @@
user: GenericGameSummary,
trend: TrendEntry[]
recent: MusicAndPlay[],
- validGames: [ string, string ][]
+ validGames: [ string, string ][],
} | null
+ let allMusics: AllMusic
let showDetailRank = false
-
USER.isLoggedIn() && USER.me().then(u => me = u)
@@ -69,6 +73,7 @@
recent: user.recent.map(it => {return {...music[it.musicId], ...it}}),
validGames: Object.entries(GAME_TITLE).filter(g => games[g[0] as GameName])
}
+ allMusics = music
renderCal(calElement, trend.map(it => {return {date: it.date, value: it.plays}})).then(() => {
// Scroll to the rightmost
calElement.scrollLeft = calElement.scrollWidth - calElement.clientWidth
@@ -215,6 +220,18 @@
+
+
+
B35
+
+ {#each d.user.ratingComposition.best35.split(",") as map}
+
+
+
+
+ {/each}
+
+
{t('UserHome.RecentScores')}