Add achievements UI to player profile

This commit is contained in:
Aotumuri
2026-05-08 21:56:10 +09:00
parent bbe4a74870
commit f6bc47b1de
3 changed files with 6 additions and 29 deletions
-2
View File
@@ -243,8 +243,6 @@
"personal_player_id": "Personal Player ID:"
},
"achievements": {
"test": "Test",
"test_desc": "This is a test achievement.",
"win_no_nukes": "Win Without Nukes",
"win_no_nukes_desc": "Win a free-for-all match without launching any nukes."
},
-3
View File
@@ -1,7 +1,4 @@
{
"test": {
"difficulty": "Medium"
},
"win_no_nukes": {
"difficulty": "Hard"
}
@@ -23,13 +23,6 @@ const playerAchievementMetadata = playerAchievementMetadataJson as Record<
string,
PlayerAchievementMetadata
>;
const MOCK_UNLOCKED_TEST_ACHIEVEMENT = {
playerId: "0",
achievement: "test",
achievedAt: "2025-01-01T00:00:00.000Z",
gameId: "0",
game: "ui-test",
} satisfies PlayerAchievementJson;
@customElement("player-achievements")
export class PlayerAchievements extends LitElement {
@@ -40,24 +33,13 @@ export class PlayerAchievements extends LitElement {
@property({ attribute: false }) achievementGroups: AchievementsResponse = [];
private get unlockedAchievements(): PlayerAchievementJson[] {
const unlockedAchievements = this.achievementGroups
return this.achievementGroups
.flatMap((group) => (group.type === "player" ? group.data : []))
.slice();
if (
!unlockedAchievements.some(
(achievement) =>
achievement.achievement ===
MOCK_UNLOCKED_TEST_ACHIEVEMENT.achievement,
)
) {
unlockedAchievements.push(MOCK_UNLOCKED_TEST_ACHIEVEMENT);
}
return unlockedAchievements.sort(
(a, b) =>
new Date(b.achievedAt).getTime() - new Date(a.achievedAt).getTime(),
);
.slice()
.sort(
(a, b) =>
new Date(b.achievedAt).getTime() - new Date(a.achievedAt).getTime(),
);
}
private get achievements(): PlayerAchievementCard[] {