mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 12:00:44 +00:00
Add achievements UI to player profile
This commit is contained in:
@@ -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."
|
||||
},
|
||||
|
||||
@@ -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[] {
|
||||
|
||||
Reference in New Issue
Block a user