diff --git a/packages/frontend/assets/reversi/matched.mp3 b/packages/frontend/assets/reversi/matched.mp3 new file mode 100644 index 0000000000..f26d07614e Binary files /dev/null and b/packages/frontend/assets/reversi/matched.mp3 differ diff --git a/packages/frontend/src/pages/reversi/game.board.vue b/packages/frontend/src/pages/reversi/game.board.vue index b787e301be..3a24777db8 100644 --- a/packages/frontend/src/pages/reversi/game.board.vue +++ b/packages/frontend/src/pages/reversi/game.board.vue @@ -487,6 +487,7 @@ $gap: 4px; aspect-ratio: 1; transform-style: preserve-3d; perspective: 150px; + transition: border 0.25s ease, opacity 0.25s ease; &.boardCell_empty { border: solid 2px var(--divider); diff --git a/packages/frontend/src/pages/reversi/index.vue b/packages/frontend/src/pages/reversi/index.vue index d33acc95a9..5fbbbef2c5 100644 --- a/packages/frontend/src/pages/reversi/index.vue +++ b/packages/frontend/src/pages/reversi/index.vue @@ -10,11 +10,12 @@ SPDX-License-Identifier: AGPL-3.0-only -
+
{{ i18n.ts._reversi.freeMatch }} {{ i18n.ts.invite }}
+
{{ i18n.ts.soundWillBePlayed }}
@@ -101,6 +102,7 @@ import MkPagination from '@/components/MkPagination.vue'; import { useRouter } from '@/global/router/supplier.js'; import * as os from '@/os.js'; import { useInterval } from '@/scripts/use-interval.js'; +import * as sound from '@/scripts/sound.js'; const myGamesPagination = { endpoint: 'reversi/games' as const, @@ -141,6 +143,12 @@ const matchingAny = ref(false); function startGame(game: Misskey.entities.ReversiGameDetailed) { matchingUser.value = null; matchingAny.value = false; + + sound.playUrl('/client-assets/reversi/matched.mp3', { + volume: 1, + playbackRate: 1, + }); + router.push(`/reversi/g/${game.id}`); }