add some achievements
This commit is contained in:
parent
9d367882fb
commit
2b377a3dc5
|
@ -1095,6 +1095,9 @@ _achievements:
|
||||||
_collectAchievements30:
|
_collectAchievements30:
|
||||||
title: "実績コレクター"
|
title: "実績コレクター"
|
||||||
description: "実績を30個以上獲得した"
|
description: "実績を30個以上獲得した"
|
||||||
|
_viewAchievements3min:
|
||||||
|
title: "実績好き"
|
||||||
|
description: "実績一覧を3分以上眺め続けた"
|
||||||
_iLoveMisskey:
|
_iLoveMisskey:
|
||||||
title: "I Love Misskey"
|
title: "I Love Misskey"
|
||||||
description: "\"I ❤ #Misskey\"を投稿した"
|
description: "\"I ❤ #Misskey\"を投稿した"
|
||||||
|
@ -1152,6 +1155,9 @@ _achievements:
|
||||||
_loggedInOnBirthday:
|
_loggedInOnBirthday:
|
||||||
title: "ハッピーバースデー"
|
title: "ハッピーバースデー"
|
||||||
description: "誕生日にログインした"
|
description: "誕生日にログインした"
|
||||||
|
_loggedInOnNewYearsDay:
|
||||||
|
title: "あけましておめでとうございます"
|
||||||
|
description: "元日にログインした"
|
||||||
_cookieClicked:
|
_cookieClicked:
|
||||||
title: "クッキーをクリックするゲーム"
|
title: "クッキーをクリックするゲーム"
|
||||||
description: "クッキーをクリックした"
|
description: "クッキーをクリックした"
|
||||||
|
|
|
@ -41,6 +41,7 @@ const ACHIEVEMENT_TYPES = [
|
||||||
'passedSinceAccountCreated2',
|
'passedSinceAccountCreated2',
|
||||||
'passedSinceAccountCreated3',
|
'passedSinceAccountCreated3',
|
||||||
'loggedInOnBirthday',
|
'loggedInOnBirthday',
|
||||||
|
'loggedInOnNewYearsDay',
|
||||||
'noteClipped1',
|
'noteClipped1',
|
||||||
'noteFavorited1',
|
'noteFavorited1',
|
||||||
'profileFilled',
|
'profileFilled',
|
||||||
|
@ -58,6 +59,7 @@ const ACHIEVEMENT_TYPES = [
|
||||||
'followers500',
|
'followers500',
|
||||||
'followers1000',
|
'followers1000',
|
||||||
'collectAchievements30',
|
'collectAchievements30',
|
||||||
|
'viewAchievements3min',
|
||||||
'iLoveMisskey',
|
'iLoveMisskey',
|
||||||
'client30min',
|
'client30min',
|
||||||
'noteDeletedWithin1min',
|
'noteDeletedWithin1min',
|
||||||
|
|
|
@ -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) {
|
if ($i.birthday) {
|
||||||
const now = new Date();
|
|
||||||
const m = now.getMonth() + 1;
|
|
||||||
const d = now.getDate();
|
|
||||||
const bm = parseInt($i.birthday.split('-')[1]);
|
const bm = parseInt($i.birthday.split('-')[1]);
|
||||||
const bd = parseInt($i.birthday.split('-')[2]);
|
const bd = parseInt($i.birthday.split('-')[2]);
|
||||||
if (m === bm && d === bd) {
|
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 >= 3) claimAchievement('login3');
|
||||||
if ($i.loggedInDays >= 7) claimAchievement('login7');
|
if ($i.loggedInDays >= 7) claimAchievement('login7');
|
||||||
if ($i.loggedInDays >= 15) claimAchievement('login15');
|
if ($i.loggedInDays >= 15) claimAchievement('login15');
|
||||||
|
|
|
@ -8,11 +8,36 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from 'vue';
|
import { onActivated, onDeactivated, onMounted, onUnmounted, ref } from 'vue';
|
||||||
import MkAchievements from '@/components/MkAchievements.vue';
|
import MkAchievements from '@/components/MkAchievements.vue';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import { definePageMetadata } from '@/scripts/page-metadata';
|
import { definePageMetadata } from '@/scripts/page-metadata';
|
||||||
import { $i } from '@/account';
|
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({
|
definePageMetadata({
|
||||||
title: i18n.ts.achievements,
|
title: i18n.ts.achievements,
|
||||||
|
|
|
@ -37,6 +37,7 @@ export const ACHIEVEMENT_TYPES = [
|
||||||
'passedSinceAccountCreated2',
|
'passedSinceAccountCreated2',
|
||||||
'passedSinceAccountCreated3',
|
'passedSinceAccountCreated3',
|
||||||
'loggedInOnBirthday',
|
'loggedInOnBirthday',
|
||||||
|
'loggedInOnNewYearsDay',
|
||||||
'noteClipped1',
|
'noteClipped1',
|
||||||
'noteFavorited1',
|
'noteFavorited1',
|
||||||
'profileFilled',
|
'profileFilled',
|
||||||
|
@ -54,6 +55,7 @@ export const ACHIEVEMENT_TYPES = [
|
||||||
'followers500',
|
'followers500',
|
||||||
'followers1000',
|
'followers1000',
|
||||||
'collectAchievements30',
|
'collectAchievements30',
|
||||||
|
'viewAchievements3min',
|
||||||
'iLoveMisskey',
|
'iLoveMisskey',
|
||||||
'client30min',
|
'client30min',
|
||||||
'noteDeletedWithin1min',
|
'noteDeletedWithin1min',
|
||||||
|
@ -289,7 +291,7 @@ export const ACHIEVEMENT_BADGES = {
|
||||||
frame: 'bronze',
|
frame: 'bronze',
|
||||||
},
|
},
|
||||||
'followers100': {
|
'followers100': {
|
||||||
img: '/fluent-emoji/1f396.png',
|
img: '/fluent-emoji/1f60e.png',
|
||||||
bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
|
bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
|
||||||
frame: 'silver',
|
frame: 'silver',
|
||||||
},
|
},
|
||||||
|
@ -313,6 +315,11 @@ export const ACHIEVEMENT_BADGES = {
|
||||||
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
|
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
|
||||||
frame: 'silver',
|
frame: 'silver',
|
||||||
},
|
},
|
||||||
|
'viewAchievements3min': {
|
||||||
|
img: '/fluent-emoji/1f3c5.png',
|
||||||
|
bg: 'linear-gradient(0deg, rgb(144 224 255), rgb(255 168 252))',
|
||||||
|
frame: 'bronze',
|
||||||
|
},
|
||||||
'iLoveMisskey': {
|
'iLoveMisskey': {
|
||||||
img: '/fluent-emoji/2764.png',
|
img: '/fluent-emoji/2764.png',
|
||||||
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
|
bg: 'linear-gradient(0deg, rgb(255 77 77), rgb(247 155 214))',
|
||||||
|
@ -400,7 +407,12 @@ export const ACHIEVEMENT_BADGES = {
|
||||||
},
|
},
|
||||||
'loggedInOnBirthday': {
|
'loggedInOnBirthday': {
|
||||||
img: '/fluent-emoji/1f382.png',
|
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',
|
frame: 'silver',
|
||||||
},
|
},
|
||||||
'cookieClicked': {
|
'cookieClicked': {
|
||||||
|
|
Loading…
Reference in New Issue