diff --git a/website/client/components/achievements/genericAchievement.vue b/website/client/components/achievements/genericAchievement.vue
new file mode 100644
index 0000000000..6f1b9042e2
--- /dev/null
+++ b/website/client/components/achievements/genericAchievement.vue
@@ -0,0 +1,42 @@
+
+ b-modal#generic-achievement(:title='data.message', size='md', :hide-footer='true')
+ .modal-body
+ .col-12
+ achievement-avatar.avatar
+ .col-6.offset-3.text-center
+ p(v-html='data.modalText')
+ button.btn.btn-primary(@click='close()') {{ $t('huzzah') }}
+ achievement-footer
+
+
+
+
+
diff --git a/website/client/components/achievements/justAddWater.vue b/website/client/components/achievements/justAddWater.vue
new file mode 100644
index 0000000000..c89d252b8b
--- /dev/null
+++ b/website/client/components/achievements/justAddWater.vue
@@ -0,0 +1,46 @@
+
+ b-modal#just-add-water(:title='title', size='md', :hide-footer='true')
+ .modal-body
+ .col-12
+ achievement-avatar.avatar
+ .col-6.offset-3.text-center
+ p {{ $t('achievementJustAddWaterModalText') }}
+ button.btn.btn-primary(@click='close()') {{ $t('huzzah') }}
+ achievement-footer
+
+
+
+
+
diff --git a/website/client/components/achievements/lostMasterclasser.vue b/website/client/components/achievements/lostMasterclasser.vue
new file mode 100644
index 0000000000..8ff6ef6c46
--- /dev/null
+++ b/website/client/components/achievements/lostMasterclasser.vue
@@ -0,0 +1,46 @@
+
+ b-modal#lost-masterclasser(:title='title', size='md', :hide-footer='true')
+ .modal-body
+ .col-12
+ achievement-avatar.avatar
+ .col-6.offset-3.text-center
+ p {{ $t('achievementLostMasterclasserModalText') }}
+ button.btn.btn-primary(@click='close()') {{ $t('huzzah') }}
+ achievement-footer
+
+
+
+
+
diff --git a/website/client/components/achievements/mindOverMatter.vue b/website/client/components/achievements/mindOverMatter.vue
new file mode 100644
index 0000000000..013891d5d2
--- /dev/null
+++ b/website/client/components/achievements/mindOverMatter.vue
@@ -0,0 +1,46 @@
+
+ b-modal#mind-over-matter(:title='title', size='md', :hide-footer='true')
+ .modal-body
+ .col-12
+ achievement-avatar.avatar
+ .col-6.offset-3.text-center
+ p {{ $t('achievementMindOverMatterModalText') }}
+ button.btn.btn-primary(@click='close()') {{ $t('huzzah') }}
+ achievement-footer
+
+
+
+
+
diff --git a/website/client/components/header/notifications/justAddWater.vue b/website/client/components/header/notifications/justAddWater.vue
new file mode 100644
index 0000000000..9889b28cc4
--- /dev/null
+++ b/website/client/components/header/notifications/justAddWater.vue
@@ -0,0 +1,30 @@
+
+ base-notification(
+ :can-remove="canRemove",
+ :notification="notification",
+ :read-after-click="true",
+ @click="action"
+ )
+ div(slot="content", v-html="achievementString")
+
+
+
diff --git a/website/client/components/header/notifications/lostMasterclasser.vue b/website/client/components/header/notifications/lostMasterclasser.vue
new file mode 100644
index 0000000000..c72aa02d3e
--- /dev/null
+++ b/website/client/components/header/notifications/lostMasterclasser.vue
@@ -0,0 +1,30 @@
+
+ base-notification(
+ :can-remove="canRemove",
+ :notification="notification",
+ :read-after-click="true",
+ @click="action"
+ )
+ div(slot="content", v-html="achievementString")
+
+
+
diff --git a/website/client/components/header/notifications/mindOverMatter.vue b/website/client/components/header/notifications/mindOverMatter.vue
new file mode 100644
index 0000000000..9044a25a91
--- /dev/null
+++ b/website/client/components/header/notifications/mindOverMatter.vue
@@ -0,0 +1,30 @@
+
+ base-notification(
+ :can-remove="canRemove",
+ :notification="notification",
+ :read-after-click="true",
+ @click="action"
+ )
+ div(slot="content", v-html="achievementString")
+
+
+
diff --git a/website/client/components/header/notificationsDropdown.vue b/website/client/components/header/notificationsDropdown.vue
index 6fce4cc0cf..526bbece0b 100644
--- a/website/client/components/header/notificationsDropdown.vue
+++ b/website/client/components/header/notificationsDropdown.vue
@@ -95,6 +95,9 @@ import NEW_INBOX_MESSAGE from './notifications/newInboxMessage';
import NEW_CHAT_MESSAGE from './notifications/newChatMessage';
import WORLD_BOSS from './notifications/worldBoss';
import VERIFY_USERNAME from './notifications/verifyUsername';
+import ACHIEVEMENT_JUST_ADD_WATER from './notifications/justAddWater';
+import ACHIEVEMENT_LOST_MASTERCLASSER from './notifications/lostMasterclasser';
+import ACHIEVEMENT_MIND_OVER_MATTER from './notifications/mindOverMatter';
export default {
components: {
@@ -106,6 +109,7 @@ export default {
QUEST_INVITATION, GROUP_TASK_APPROVAL, GROUP_TASK_APPROVED, GROUP_TASK_ASSIGNED,
UNALLOCATED_STATS_POINTS, NEW_MYSTERY_ITEMS, CARD_RECEIVED,
NEW_INBOX_MESSAGE, NEW_CHAT_MESSAGE,
+ ACHIEVEMENT_JUST_ADD_WATER, ACHIEVEMENT_LOST_MASTERCLASSER, ACHIEVEMENT_MIND_OVER_MATTER,
WorldBoss: WORLD_BOSS,
VERIFY_USERNAME,
},
@@ -130,6 +134,7 @@ export default {
'QUEST_INVITATION', 'GROUP_TASK_ASSIGNED', 'GROUP_TASK_APPROVAL', 'GROUP_TASK_APPROVED',
'NEW_MYSTERY_ITEMS', 'CARD_RECEIVED',
'NEW_INBOX_MESSAGE', 'NEW_CHAT_MESSAGE', 'UNALLOCATED_STATS_POINTS',
+ 'ACHIEVEMENT_JUST_ADD_WATER', 'ACHIEVEMENT_LOST_MASTERCLASSER', 'ACHIEVEMENT_MIND_OVER_MATTER',
'VERIFY_USERNAME',
],
};
diff --git a/website/client/components/notifications.vue b/website/client/components/notifications.vue
index 75f2cf0adb..00a8a6baa4 100644
--- a/website/client/components/notifications.vue
+++ b/website/client/components/notifications.vue
@@ -26,6 +26,10 @@ div
quest-completed
quest-invitation
verify-username
+ generic-achievement(:data='notificationData')
+ just-add-water
+ lost-masterclasser
+ mind-over-matter