1.9 KiB
1.9 KiB
VCK Online FastAPI Server
Simple REST API server for developing and testing the Valeria Card Kingdoms Online game.
Setup
-
Install dependencies:
pip install -r requirements.txt -
Make sure database is accessible (SSH tunnel if needed):
ssh -L 3306:localhost:3306 lukesau.com
Running the Server
python3 server.py
Or with uvicorn directly:
uvicorn server:app --host 0.0.0.0 --port 8000 --reload
The server will start on http://localhost:8000
API Endpoints
Lobby
-
POST /api/lobby/join- Join lobby with name{"name": "Player Name"}Returns:
{"player_id": "...", "message": "Joined lobby"} -
POST /api/lobby/ready- Mark player as ready{"player_id": "..."}Returns game info if all players ready
-
POST /api/lobby/unready- Mark player as not ready -
POST /api/lobby/leave?player_id=...- Leave lobby -
GET /api/lobby/status?player_id=...- Get lobby status
Game
GET /api/game/{game_id}/state- Get current game statePOST /api/game/{game_id}/action- Perform game action{ "player_id": "...", "action_type": "hire_citizen|buy_domain|slay_monster|act_on_required_action|roll_phase|harvest_phase|play_turn", "citizen_id": 123, // for hire_citizen "domain_id": 456, // for buy_domain "monster_id": 789, // for slay_monster "gold_cost": 5, // for hire_citizen/buy_domain "strength_cost": 3, // for slay_monster "magic_cost": 0, // optional "action": "choose 1" // for act_on_required_action }
Web Client
Visit http://localhost:8000 for a simple HTML client to test the API.
Development Notes
- Games are stored in-memory (will be lost on server restart)
- Inactive games are cleaned up after 3 minutes of no activity
- Inactive lobby players are removed after 60 seconds
- This is a development/testing server, not production-ready