diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-21 16:06:49 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-21 16:06:49 +0900 |
| commit | 2b377a3dc5f0beccf36d4b37237adb9c39e92652 (patch) | |
| tree | 5cd8782090f4e700c14d1ee26cb429db9acfa3d2 /packages/frontend/src | |
| parent | add some achievements (diff) | |
| download | misskey-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.ts | 11 | ||||
| -rw-r--r-- | packages/frontend/src/pages/achievements.vue | 27 | ||||
| -rw-r--r-- | packages/frontend/src/scripts/achievements.ts | 16 |
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': { |