Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import type { Tile } from '@/components/GameCanvas/GameCanvas.types'; import { useGameStore } from '@/stores/useGameStore'; interface HandleMatchPairOptions { playMatch: () => Promise<void>; checkIfGameOver: () => boolean; playWin: () => Promise<void>; onGameOver: () => void; onMatch?: (a: Tile, b: Tile) => void; setGameOver: (value: boolean) => void; unlock: () => void; } export async function handleMatchPair(a: Tile, b: Tile, opts: HandleMatchPairOptions) { a.matched = true; b.matched = true; a.haloAngle = 0; b.haloAngle = 0; if (opts.onMatch) opts.onMatch(a, b); await opts.playMatch(); useGameStore().incrementMatch(a, b); if (opts.checkIfGameOver()) { await opts.playWin(); opts.setGameOver(true); opts.onGameOver(); } opts.unlock(); } |