Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/senryoku/draftmancer
Multiplayer MTG Limited Simulator
https://github.com/senryoku/draftmancer
draft magic-the-gathering mtg mtga typescript
Last synced: 3 days ago
JSON representation
Multiplayer MTG Limited Simulator
- Host: GitHub
- URL: https://github.com/senryoku/draftmancer
- Owner: Senryoku
- License: mit
- Created: 2019-05-14T08:55:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T11:16:53.000Z (2 months ago)
- Last Synced: 2024-10-29T12:33:46.795Z (2 months ago)
- Topics: draft, magic-the-gathering, mtg, mtga, typescript
- Language: TypeScript
- Homepage: https://draftmancer.com
- Size: 1.98 GB
- Stars: 86
- Watchers: 8
- Forks: 32
- Open Issues: 24
-
Metadata Files:
- Readme: Readme.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Draftmancer
## Contact
Join the discord for development related discussions: https://discord.gg/XscXXNw
## How to run the project locally
- Clone repository (`git clone https://github.com/Senryoku/Draftmancer.git`)
- Open repository (`cd Draftmancer`)
- Execute `npm install` to install dependencies.
- Execute `npm run build` to build the server using typescript and the client using webpack (for production).
- Execute `npm start` to start the server (which also serves the webapp).
- Navigate to `http://localhost:3000/`### Development tips
- Running `npm run start-dev` instead of `npm start` will restart the node server on any changes. (Install nodemon globally with `npm install nodemon -g`)
- Use `npm run build-client-dev` to watch for changes in the client js code and automatically re-build it.
- Use `npm run build-server-dev` to watch for changes in the server typescript code and automatically re-build it.- Setting the environment variable `DISABLE_PERSISTENCE` to `TRUE` (one can use a `.env` file for development) will disable retrieving/saving the states of Connections/Sessions between server execution from disk (see `src/Persistence.ts`).
### Tests
- `npm test` runs all tests in the `test` folder (non recursive). This is the command run by GitHub actions on each commit.
- `npm run manualtest` runs tests from the `test/manual` folder, it contains additional (and long) statistical tests. These are not included in the automatic test suite.
- `npm run fronttest` runs tests from the `test/frontend` folder, it contains additional end-to-end tests, including the client. These are not included in the automatic test suite.Add `-bail` (e.g. `npm run test-bail`) to stop on the first error.
## Notes on Arena Importer
- Splits Cards (Ravnica) needs both card names, e.g. Discovery // Dispersal
- Adventures (ELD) and Dual Faces (IXL) need only one.
- AKR Splits Cards uses triple forward slashes (///) instead of double.## Custom Set format
See cubeformat.html
## Acknowledgement
- Card data and images provided by [Scryfall](https://scryfall.com/)
- Data used for automatic collation from https://github.com/taw/magic-sealed-data ; Used https://www.lethe.xyz/mtg/collation/ as reference for manual implementations.
- Bots from https://github.com/CubeArtisan/mtgml