diff --git a/AquaNet/src/components/MapDetails.svelte b/AquaNet/src/components/MapDetails.svelte
index 0c521a37..6a598378 100644
--- a/AquaNet/src/components/MapDetails.svelte
+++ b/AquaNet/src/components/MapDetails.svelte
@@ -16,7 +16,15 @@
let mapData = g.split(":").map(Number)
let mult = getMult(mapData[3], game)
let mapRank: number | undefined = meta?.notes?.[mapData[1] === 10 ? 0 : mapData[1]]?.lv
-
+
+ let gameIndexMap = {
+ 'mai2': 3,
+ 'ongeki': 2,
+ 'chu3': 2
+ };
+
+ let gameIndex = gameIndexMap[game as keyof typeof gameIndexMap];
+
@@ -30,11 +38,11 @@
-
+
- {("" + getMult(mapData[3], game)[2]).replace("p", "+")}
-
- {roundFloor(mapData[3], game, 1)}%
+ {("" + getMult(mapData[gameIndex], game)[2]).replace("p", "+")}
+
+ {roundFloor(mapData[gameIndex], game, 1)}%
{#if game === 'mai2'}
diff --git a/AquaNet/src/libs/ongekiTypes.ts b/AquaNet/src/libs/ongekiTypes.ts
new file mode 100644
index 00000000..5f107fe2
--- /dev/null
+++ b/AquaNet/src/libs/ongekiTypes.ts
@@ -0,0 +1,24 @@
+import type { GenericGamePlaylog } from "./generalTypes";
+
+export interface OngekiUserSummaryEntry {
+ name: string
+ iconId: number
+ serverRank: number
+ accuracy: number
+ rating: number
+ ratingHighest: number
+ ranks: { name: string, count: number }[]
+ maxCombo: number
+ fullCombo: number
+ allPerfect: number
+ totalDxScore: number
+ plays: number
+ totalPlayTime: number
+ joined: string
+ lastSeen: string
+ lastVersion: string
+ best30: string
+ best15: string
+ recent10: string
+ recent: GenericGamePlaylog[]
+}
diff --git a/AquaNet/src/pages/UserHome.svelte b/AquaNet/src/pages/UserHome.svelte
index 26672453..b94fe552 100644
--- a/AquaNet/src/pages/UserHome.svelte
+++ b/AquaNet/src/pages/UserHome.svelte
@@ -231,6 +231,19 @@
+ {#if d.user.ratingComposition.best30}
+
+
B30
+
+ {#each d.user.ratingComposition.best30.split(",") as map}
+
+
+
+ {/each}
+
+
+ {/if}
+
{#if d.user.ratingComposition.best35}
B35
@@ -257,6 +270,19 @@
{/if}
+ {#if d.user.ratingComposition.recent10}
+
+
R10
+
+ {#each d.user.ratingComposition.recent10.split(",") as map}
+
+
+
+ {/each}
+
+
+ {/if}
+
{t('UserHome.RecentScores')}
@@ -550,4 +576,10 @@
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr))
gap: $gap
+.rating-composition-2
+ display: grid
+ // 2 columns
+ grid-template-columns: repeat(auto-fill, minmax(290px, 1fr))
+ gap: $gap
+
diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt
index 1beaadaf..d248951a 100644
--- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt
+++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt
@@ -29,11 +29,15 @@ class Ongeki(
) }
override suspend fun userSummary(username: String) = us.cardByName(username) { card ->
-// val extra = userGeneralDataRepository.findByUser_Card_ExtId(u.ghostCard.extId)
-// .associate { it.propertyKey to it.propertyValue }
+ val extra = userGeneralDataRepository.findByUser_Card_ExtId(card.extId)
+ .associate { it.propertyKey to it.propertyValue }
- // TODO: Rating composition
+ val ratingComposition = mapOf(
+ "best30" to (extra["rating_base_best"] ?: ""),
+ "best15" to (extra["rating_base_new_best"] ?: ""),
+ "recent10" to (extra["rating_base_hot_best"] ?: "")
+ )
- genericUserSummary(card, mapOf())
+ genericUserSummary(card, ratingComposition)
}
}
\ No newline at end of file