Files
restitution/gameServer/package.json
kaykayyali 3fc29f728e feat: Colyseus authoritative server + invite-code lobby
- Replace socket.io relay with Colyseus 0.15 authoritative server
- GameRoom with GameState schema (players, units, resources)
- Pure TS services: CombatResolver, EconomyService, PathfindingService, UnitManager
- POST /api/create-room → 4-char invite code
- React/MUI LobbyScreen: Create (shows code + START GAME) / Join by code
- ColyseusClient: joinOrCreate/join by room type = invite code
- Nginx: static assets direct, all else proxied to Colyseus (WS upgrade)
- Content-hashed JS bundles for Cloudflare cache-busting
- 1-player lobbies: START GAME button bypasses 2-player wait
2026-05-30 02:49:20 +00:00

36 lines
760 B
JSON

{
"name": "restitution-server",
"version": "1.0.0",
"scripts": {
"start": "ts-node src/index.ts",
"build": "tsc",
"test": "jest --verbose --coverage --forceExit"
},
"dependencies": {
"@colyseus/schema": "^2.0.0",
"colyseus": "^0.15.0",
"easystarjs": "^0.4.4",
"express": "^4.18.0",
"xstate": "^5.32.0"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.0",
"jest": "^29.7.0",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.0",
"typescript": "^5.3.0"
},
"jest": {
"preset": "ts-jest",
"testEnvironment": "node",
"testMatch": [
"**/tests/**/*.test.ts"
],
"collectCoverageFrom": [
"src/**/*.ts"
]
}
}