summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-21 16:06:49 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-21 16:06:49 +0900
commit2b377a3dc5f0beccf36d4b37237adb9c39e92652 (patch)
tree5cd8782090f4e700c14d1ee26cb429db9acfa3d2 /packages/frontend/src
parentadd some achievements (diff)
downloadmisskey-2b377a3dc5f0beccf36d4b37237adb9c39e92652.tar.gz
misskey-2b377a3dc5f0beccf36d4b37237adb9c39e92652.tar.bz2
misskey-2b377a3dc5f0beccf36d4b37237adb9c39e92652.zip
add some achievements
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/init.ts11
-rw-r--r--packages/frontend/src/pages/achievements.vue27
-rw-r--r--packages/frontend/src/scripts/achievements.ts16
3 files changed, 48 insertions, 6 deletions
diff --git a/packages/frontend/src/init.ts b/packages/frontend/src/init.ts
index a2723d479c..09fb7caf14 100644
--- a/packages/frontend/src/init.ts
+++ b/packages/frontend/src/init.ts
@@ -346,10 +346,11 @@ import { claimAchievement, claimedAchievements } from './scripts/achievements';
});
}
+ const now = new Date();
+ const m = now.getMonth() + 1;
+ const d = now.getDate();
+
if ($i.birthday) {
- const now = new Date();
- const m = now.getMonth() + 1;
- const d = now.getDate();
const bm = parseInt($i.birthday.split('-')[1]);
const bd = parseInt($i.birthday.split('-')[2]);
if (m === bm && d === bd) {
@@ -357,6 +358,10 @@ import { claimAchievement, claimedAchievements } from './scripts/achievements';
}
}
+ if (m === 1 && d === 1) {
+ claimAchievement('loggedInOnNewYearsDay');
+ }
+
if ($i.loggedInDays >= 3) claimAchievement('login3');
if ($i.loggedInDays >= 7) claimAchievement('login7');
if ($i.loggedInDays >= 15) claimAchievement('login15');
diff --git a/packages/frontend/src/pages/achievements.vue b/packages/frontend/src/pages/achievements.vue
index b6cd174b41..3cec8f630f 100644
--- a/packages/frontend/src/pages/achievements.vue
+++ b/packages/frontend/src/pages/achievements.vue
@@ -8,11 +8,36 @@
</template>
<script lang="ts" setup>
-import { ref } from 'vue';
+import { onActivated, onDeactivated, onMounted, onUnmounted, ref } from 'vue';
import MkAchievements from '@/components/MkAchievements.vue';
import { i18n } from '@/i18n';
import { definePageMetadata } from '@/scripts/page-metadata';
import { $i } from '@/account';
+import { claimAchievement } from '@/scripts/achievements';
+
+let timer;
+
+function viewAchievements3min() {
+ claimAchievement('viewAchievements3min');
+}
+
+onMounted(() => {
+ if (timer == null) timer = window.setTimeout(viewAchievements3min, 1000 * 60 * 3);
+});
+
+onUnmounted(() => {
+ window.clearTimeout(timer);
+ timer = null;
+});
+
+onActivated(() => {
+ if (timer == null) timer = window.setTimeout(viewAchievements3min, 1000 * 60 * 3);
+});
+
+onDeactivated(() => {
+ window.clearTimeout(timer);
+ timer = null;
+});
definePageMetadata({
title: i18n.ts.achievements,
diff --git a/packages/frontend/src/scripts/achievements.ts b/packages/frontend/src/scripts/achievements.ts
index 70ea0ffbd4..8f484f8925 100644
--- a/packages/frontend/src/scripts/achievements.ts
+++ b/packages/frontend/src/scripts/achievements.ts
@@ -37,6 +37,7 @@ export const ACHIEVEMENT_TYPES = [
'passedSinceAccountCreated2',
'passedSinceAccountCreated3',
'loggedInOnBirthday',
+ 'loggedInOnNewYearsDay',
'noteClipped1',
'noteFavorited1',
'profileFilled',
@@ -54,6 +55,7 @@ export const ACHIEVEMENT_TYPES = [
'followers500',
'followers1000',
'collectAchievements30',
+ 'viewAchievements3min',
'iLoveMisskey',
'client30min',
'noteDeletedWithin1min',
@@ -289,7 +291,7 @@ export const ACHIEVEMENT_BADGES = {
frame: 'bronze',
},
'followers100': {
- img: '/fluent-emoji/1f396.png',
+ img: '/fluent-emoji/1f60e.png',
bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
frame: 'silver',
},
@@ -313,6 +315,11 @@ export const ACHIEVEMENT_BADGES = {
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
frame: 'silver',
},
+ 'viewAchievements3min': {
+ img: '/fluent-emoji/1f3c5.png',
+ bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
+ frame: 'bronze',
+ },
'iLoveMisskey': {
img: '/fluent-emoji/2764.png',
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
@@ -400,7 +407,12 @@ export const ACHIEVEMENT_BADGES = {
},
'loggedInOnBirthday': {
img: '/fluent-emoji/1f382.png',
- bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
+ bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
+ frame: 'silver',
+ },
+ 'loggedInOnNewYearsDay': {
+ img: '/fluent-emoji/1f38d.png',
+ bg: 'linear-gradient(0deg, rgb(255 144 144), rgb(255 232 168))',
frame: 'silver',
},
'cookieClicked': {