diff --git a/apps/client/src/scenes/game/GameView.tsx b/apps/client/src/scenes/game/GameView.tsx index a86760a..af7abe9 100644 --- a/apps/client/src/scenes/game/GameView.tsx +++ b/apps/client/src/scenes/game/GameView.tsx @@ -26,9 +26,36 @@ onPlaceBomb: () => boolean; }; -const TimerOverlay = ({ timeLeft }: { timeLeft: string }) => ( -
{timeLeft}
-); +const parseRemainingSeconds = (timeLeft: string): number => { + const [minutesText, secondsText] = timeLeft.split(":"); + const minutes = Number(minutesText); + const seconds = Number(secondsText); + + if (!Number.isFinite(minutes) || !Number.isFinite(seconds)) { + return Number.POSITIVE_INFINITY; + } + + return minutes * 60 + seconds; +}; + +const TimerOverlay = ({ timeLeft }: { timeLeft: string }) => { + const remainingSeconds = parseRemainingSeconds(timeLeft); + + return ( +
+ {timeLeft} +
+ ); +}; const TeamPaintRateOverlay = ({ teamPaintRates, @@ -69,6 +96,7 @@ }: Props) => { return (
+ {/* タイマーUIの表示 */} diff --git a/packages/shared/src/config/gameConfig.ts b/packages/shared/src/config/gameConfig.ts index 4522680..5db3ee4 100644 --- a/packages/shared/src/config/gameConfig.ts +++ b/packages/shared/src/config/gameConfig.ts @@ -6,7 +6,7 @@ /** ゲーム全体で利用する共有設定値 */ export const GAME_CONFIG = { // ゲーム進行設定(クライアント/サーバー契約) - GAME_DURATION_SEC: 30, // 1ゲームの制限時間(3分 = 180秒) + GAME_DURATION_SEC: 60, // 1ゲームの制限時間(3分 = 180秒) GAME_START_DELAY_MS: 5000, // 開始通知から実際にゲーム進行を開始するまでの待機時間(ms) // ネットワーク同期設定(クライアント/サーバー契約)