From 449727d65058f1da774773a020e8e8870b224a04 Mon Sep 17 00:00:00 2001 From: hypercross Date: Sun, 5 Apr 2026 00:01:26 +0800 Subject: [PATCH] fix: api change --- packages/boop-game/src/game/commands.ts | 7 +++---- packages/boop-game/src/scenes/PieceSpawner.ts | 3 ++- packages/boop-game/src/ui/App.tsx | 8 +++++++- packages/sample-game/src/ui/App.tsx | 8 +++++++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/boop-game/src/game/commands.ts b/packages/boop-game/src/game/commands.ts index 744a8d6..bd848af 100644 --- a/packages/boop-game/src/game/commands.ts +++ b/packages/boop-game/src/game/commands.ts @@ -151,11 +151,10 @@ const checkGraduatesCommand = registry.register('check-graduates', checkGraduate async function setup(game: BoopGame) { while (true) { const currentPlayer = game.value.currentPlayer; - const turnOutput = await turnCommand(game, currentPlayer); - if (!turnOutput.success) throw new Error(turnOutput.error); + const { winner } = await turnCommand(game, currentPlayer); await game.produceAsync((state: BoopState) => { - state.winner = turnOutput.result.winner; + state.winner = winner; if (!state.winner) { state.currentPlayer = state.currentPlayer === 'white' ? 'black' : 'white'; } @@ -234,7 +233,7 @@ async function turn(game: BoopGame, turnPlayer: PlayerType) { await placeCommand(game, row, col, turnPlayer, pieceType); await boopCommand(game, row, col, pieceType); const winner = await checkWinCommand(game); - if(winner.success) return { winner: winner.result as WinnerType }; + if(winner) return { winner: winner as WinnerType }; await checkGraduatesCommand(game); await checkFullBoard(game, turnPlayer); diff --git a/packages/boop-game/src/scenes/PieceSpawner.ts b/packages/boop-game/src/scenes/PieceSpawner.ts index fcffa60..e748e49 100644 --- a/packages/boop-game/src/scenes/PieceSpawner.ts +++ b/packages/boop-game/src/scenes/PieceSpawner.ts @@ -8,7 +8,8 @@ class BoopPartSpawner implements Spawner *getData() { for (const part of Object.values(this.scene.state.pieces)) { - yield part; + if(part.regionId === 'board') + yield part; } } diff --git a/packages/boop-game/src/ui/App.tsx b/packages/boop-game/src/ui/App.tsx index 6913595..94638b6 100644 --- a/packages/boop-game/src/ui/App.tsx +++ b/packages/boop-game/src/ui/App.tsx @@ -14,7 +14,13 @@ export default function App>(props: { gam const scene = useComputed(() => new props.gameScene()); const handleReset = async () => { - gameHost.value.gameHost.setup('setup'); + gameHost.value.gameHost.setup('setup').then(result => { + if(!result.success) { + console.error(result.error); + }else{ + console.log('Game finished!', result.result); + } + }); }; const label = useComputed(() => gameHost.value.gameHost.status.value === 'running' ? 'Restart' : 'Start'); diff --git a/packages/sample-game/src/ui/App.tsx b/packages/sample-game/src/ui/App.tsx index 2dc04e0..d2fe80a 100644 --- a/packages/sample-game/src/ui/App.tsx +++ b/packages/sample-game/src/ui/App.tsx @@ -14,7 +14,13 @@ export default function App>(props: { gam const scene = useComputed(() => new props.gameScene()); const handleReset = async () => { - gameHost.value.gameHost.setup('setup'); + gameHost.value.gameHost.setup('setup').then(result => { + if(!result.success) { + console.error(result.error); + }else{ + console.log('Game finished!', result.result); + } + }); }; const label = useComputed(() => gameHost.value.gameHost.status.value === 'running' ? 'Restart' : 'Start');