diff --git a/app/assets/fonts/nds-39px.ttf b/app/assets/fonts/nds-39px.ttf
index e345c83..0e978f5 100644
Binary files a/app/assets/fonts/nds-39px.ttf and b/app/assets/fonts/nds-39px.ttf differ
diff --git a/app/components/Settings/BottomScreen/Menus/Clock/Alarm.vue b/app/components/Settings/BottomScreen/Menus/Clock/Alarm.vue
new file mode 100644
index 0000000..3516b43
--- /dev/null
+++ b/app/components/Settings/BottomScreen/Menus/Clock/Alarm.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/components/Settings/BottomScreen/Menus/Menus.vue b/app/components/Settings/BottomScreen/Menus/Menus.vue
index a9f1f77..20751f8 100644
--- a/app/components/Settings/BottomScreen/Menus/Menus.vue
+++ b/app/components/Settings/BottomScreen/Menus/Menus.vue
@@ -11,6 +11,7 @@ import UserUserName from "./User/UserName.vue";
import UserPersonalMessage from "./User/PersonalMessage.vue";
import ClockMenu from "./Clock/Menu.vue";
+import ClockAlarm from "./Clock/Alarm.vue";
import ClockDate from "./Clock/Date.vue";
import ClockTime from "./Clock/Time.vue";
import TouchScreenMenu from "./TouchScreen/Menu.vue";
@@ -172,6 +173,7 @@ const viewComponents: Record = {
optionsLanguage: OptionsLanguage,
optionsGbaMode: OptionsGbaMode,
+ clockAlarm: ClockAlarm,
clockDate: ClockDate,
clockTime: ClockTime,
diff --git a/app/stores/achievements.ts b/app/stores/achievements.ts
index dbe8fdf..83ca348 100644
--- a/app/stores/achievements.ts
+++ b/app/stores/achievements.ts
@@ -72,8 +72,12 @@ export const useAchievementsStore = defineStore("achievements", () => {
};
return {
+ // TODO: rename to unlocked
achievements: computed(() => storage.value.unlocked),
advancement: computed(() => storage.value.advancement),
+ allObtained: computed(
+ () => storage.value.unlocked.length === ACHIEVEMENTS.length,
+ ),
unlock,
reset,
isUnlocked: computed(
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index c78c02c..5ff4810 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -54,6 +54,13 @@
"title": "Clock",
"description": "Change date, time, and alarm settings.",
+ "alarm": {
+ "title": "Achievements",
+ "description": "Manage your achievements.",
+ "resetButton": "Reset Achievements",
+ "resetConfirmation": "Reset all achievements?"
+ },
+
"date": {
"title": "Date",
"description": "Today's date."
diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/X.webp b/public/nds/images/settings/bottom-screen/clock/achievements/X.webp
new file mode 100644
index 0000000..c3c793e
Binary files /dev/null and b/public/nds/images/settings/bottom-screen/clock/achievements/X.webp differ
diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/header.webp b/public/nds/images/settings/bottom-screen/clock/achievements/header.webp
new file mode 100644
index 0000000..f57ab8b
Binary files /dev/null and b/public/nds/images/settings/bottom-screen/clock/achievements/header.webp differ
diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/reset-button.webp b/public/nds/images/settings/bottom-screen/clock/achievements/reset-button.webp
new file mode 100644
index 0000000..f388a85
Binary files /dev/null and b/public/nds/images/settings/bottom-screen/clock/achievements/reset-button.webp differ
diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/small-trophy.webp b/public/nds/images/settings/bottom-screen/clock/achievements/small-trophy.webp
new file mode 100644
index 0000000..1623aef
Binary files /dev/null and b/public/nds/images/settings/bottom-screen/clock/achievements/small-trophy.webp differ
diff --git a/public/nds/images/settings/bottom-screen/clock/achievements/view-all-button.webp b/public/nds/images/settings/bottom-screen/clock/achievements/view-all-button.webp
new file mode 100644
index 0000000..9a60f67
Binary files /dev/null and b/public/nds/images/settings/bottom-screen/clock/achievements/view-all-button.webp differ