diff --git a/apps/client/src/network/SocketClient.ts b/apps/client/src/network/SocketClient.ts index a14d709..11bdc85 100644 --- a/apps/client/src/network/SocketClient.ts +++ b/apps/client/src/network/SocketClient.ts @@ -1,13 +1,6 @@ import { io, Socket } from "socket.io-client"; import { SocketEvents } from "@repo/shared/src/protocol/events"; - -// プレイヤーの基本情報を定義する型 -export type PlayerData = { - id: string; - x: number; - y: number; - color: string; -}; +import type { PlayerData } from "@repo/shared/src/types/player"; /** * サーバーとのWebSocket通信を管理するクライアントクラス diff --git a/apps/server/src/network/SocketManager.ts b/apps/server/src/network/SocketManager.ts index a32636d..10d4e38 100644 --- a/apps/server/src/network/SocketManager.ts +++ b/apps/server/src/network/SocketManager.ts @@ -4,6 +4,7 @@ // shared側の型をインポート(※パスは実際の環境に合わせて修正してください) import { Room, RoomStatus } from "@repo/shared/src/types/room"; import { SocketEvents } from "@repo/shared/src/protocol/events"; +import { GAME_CONFIG } from "@repo/shared/src/config/gameConfig"; type RoomPlayer = Room["players"][0]; @@ -41,7 +42,7 @@ ownerId: socket.id, // 最初に作った人がオーナー players: [], status: RoomStatus.WAITING, - maxPlayers: 4 + maxPlayers: GAME_CONFIG.MAX_PLAYERS_PER_ROOM }; this.rooms.set(roomId, room); } diff --git a/packages/shared/src/config/gameConfig.ts b/packages/shared/src/config/gameConfig.ts index 6ed6666..bd60d31 100644 --- a/packages/shared/src/config/gameConfig.ts +++ b/packages/shared/src/config/gameConfig.ts @@ -6,6 +6,9 @@ // マップ設定 MAP_WIDTH: 2000, MAP_HEIGHT: 2000, + + // ルーム設定 + MAX_PLAYERS_PER_ROOM: 4, // プレイヤー設定 PLAYER_RADIUS: 10, // キャラの大きさ diff --git a/packages/shared/src/types/player.ts b/packages/shared/src/types/player.ts new file mode 100644 index 0000000..90b43b2 --- /dev/null +++ b/packages/shared/src/types/player.ts @@ -0,0 +1,7 @@ +// プレイヤーの基本情報を定義する共通型 +export interface PlayerData { + id: string; + x: number; + y: number; + color: string; +} \ No newline at end of file diff --git a/packages/shared/src/types/room.ts b/packages/shared/src/types/room.ts index 994fd39..8edade6 100644 --- a/packages/shared/src/types/room.ts +++ b/packages/shared/src/types/room.ts @@ -14,7 +14,7 @@ } as const; export type RoomStatus = typeof RoomStatus[keyof typeof RoomStatus]; -export interface Player { +export interface RoomMember { id: string; name: string; isOwner: boolean; @@ -24,7 +24,7 @@ export interface Room { roomId: string; ownerId: string; - players: Player[]; + players: RoomMember[]; status: RoomStatus; // 👈 ここで上記の型を使用する maxPlayers: number; }