This project is an adaptation for BoardGameArena of game Ticket to Ride edited by Days of Wonder. You can play here : https://boardgamearena.com
Intall node/npm then npm i
on the root folder to get builders.
In VS Code, add extension https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave and then add to config.json extension part :
"commands": [
{
"match": ".*\\.ts$",
"isAsync": true,
"cmd": "npm run build:ts"
},
{
"match": ".*\\.scss$",
"isAsync": true,
"cmd": "npm run build:scss"
}
]
}
If you use it for another game, replace tickettoride
mentions on package.json build:scss
script and on tsconfig.json files
property.
Also add one auto-FTP upload extension (for example https://marketplace.visualstudio.com/items?itemName=lukasz-wronski.ftp-sync) and configure it. The extension will detected modified files in the workspace, including builded ones, and upload them to remote server.
Make sure ftp-sync.json and node_modules are in .gitignore
go on tests dir and start execute file, for example php ./tickettoride.game.test-longest-path.php
/ php ./tickettoride.game.test-destination-completed.php
If there is a lot of locomotives remaining in a small set of available cards (for example 3 locomotives in 5 visible cards, no card in discard), we attempt 3 times to replace and if there is still 3 locomotives, we log and let them visible (to avoid an infinite loop). In case the player cannot pick destination cards nor train car cards, and cannot claim a route, we let him pass. What if he can only construct ? Does he have to ? -> probably yes, no issue here What if he can only pick destinations ? Does he have to ? -> asked, can be a negative move for the player
Some code is already prepared in case of new maps. search "TODO MAPS" to activate them if you duplicate this project to create a new map