summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2024-01-12 21:01:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2024-01-12 21:01:38 +0900
commit87ffc672ddac7007b7b7c7a7dbe41fbc15b9c14c (patch)
treeddbba7dc9480636c6c21056e2cd953b76700d620
parentUpdate 10000yen.png (diff)
downloadmisskey-87ffc672ddac7007b7b7c7a7dbe41fbc15b9c14c.tar.gz
misskey-87ffc672ddac7007b7b7c7a7dbe41fbc15b9c14c.tar.bz2
misskey-87ffc672ddac7007b7b7c7a7dbe41fbc15b9c14c.zip
enhance(drop-and-fusion): yenモードで生涯で稼いだ額を記録するように
-rw-r--r--packages/frontend/src/pages/drop-and-fusion.game.vue30
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/frontend/src/pages/drop-and-fusion.game.vue b/packages/frontend/src/pages/drop-and-fusion.game.vue
index 1ac5e027a4..c973b4582b 100644
--- a/packages/frontend/src/pages/drop-and-fusion.game.vue
+++ b/packages/frontend/src/pages/drop-and-fusion.game.vue
@@ -110,6 +110,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.frameInner">
<div>SCORE: <b><MkNumber :value="score"/>{{ gameMode === 'yen' ? '円' : 'pt' }}</b></div>
<div>HIGH SCORE: <b v-if="highScore"><MkNumber :value="highScore"/>{{ gameMode === 'yen' ? '円' : 'pt' }}</b><b v-else>-</b></div>
+ <div v-if="gameMode === 'yen'">TOTAL EARNINGS: <b v-if="yenTotal"><MkNumber :value="yenTotal"/>円</b><b v-else>-</b></div>
</div>
</div>
<div :class="[$style.frame]" style="margin-left: auto;">
@@ -609,6 +610,7 @@ const dropReady = ref(true);
const isGameOver = ref(false);
const gameLoaded = ref(false);
const highScore = ref<number | null>(null);
+const yenTotal = ref<number | null>(null);
const showConfig = ref(false);
const replaying = ref(false);
const replayPlaybackRate = ref(1);
@@ -1071,6 +1073,15 @@ function attachGameEvents() {
logs: DropAndFusionGame.serializeLogs(logs),
});
+ if (props.gameMode === 'yen') {
+ yenTotal.value = (yenTotal.value ?? 0) + score.value;
+ misskeyApi('i/registry/set', {
+ scope: ['dropAndFusionGame'],
+ key: 'yenTotal',
+ value: yenTotal.value,
+ });
+ }
+
if (score.value > (highScore.value ?? 0)) {
highScore.value = score.value;
@@ -1135,6 +1146,25 @@ onMounted(async () => {
highScore.value = null;
}
+ if (props.gameMode === 'yen') {
+ try {
+ yenTotal.value = await misskeyApi('i/registry/get', {
+ scope: ['dropAndFusionGame'],
+ key: 'yenTotal',
+ });
+ } catch (err) {
+ if (err.code === 'NO_SUCH_KEY') {
+ // nop
+ } else {
+ os.alert({
+ type: 'error',
+ text: i18n.ts.cannotLoad,
+ });
+ return;
+ }
+ }
+ }
+
await start();
const bgmBuffer = await sound.loadAudio('/client-assets/drop-and-fusion/bgm_1.mp3');