Play Keyforge online, track chain as you play with particular decks, and challenge your friends.
This is very much so a work in progress.
- Authentication
- Build script to pull cards for every expansion and chosen language
- Deck upload & manager
- Dashboard and deck selection
- Invite new connections & reply to requests
- Check which connections are online
- Challenge your connections & reply to challenges
- Render game board at any screen size
- Game lifecycle (passing turns, choosing houses, etc.)
- Mulligan/keep opening hands
- Discard cards from active house in main phase
- Play exhausted creatures on either flank in main phase
- Draw up to hand size at the end of turn
- Ready cards in play at end of turn
- Play exhausted artifacts in main phase
- Play actions in main phase
- Play an upgrade on a creature in the main phase
- Creature fighting
- Creature reaping
- Perform a card action outside of fighting/reaping
- Handle individual card rules
- Invoke action immediately on the client, check for validity when game is updated
- Handle mavericks by showing another house on the card & maverick identifier
- Automatically complete any old, uncompleted games
- Game rejoin logic
- Internationalization
Feel free to open an issue if there is a feature you'd like to see or something is broken. Pull requests are always welcome.
This project is a front-end application written in React + Redux with a Firebase backend. For more information see create-react-app.
npm i
andcd functions && npm i
cp .env.example .env.local
- Create a firebase project and fill out
.env.local
. - Ensure you enable authentication and the Firestore database in the web interface.
$(npm bin)/firebase login
or use your global firebase instance if you installed it globally.$(npm bin)/firebase use --add
and select the project you configured in the firebase console.- Generate new private key from the account services page and place json file at
./bootstrap/serviceAccountKey.json
. npm run bootstrap
to upload card and house images to firebase storagenpm run deploy:all
to setup the cloud functions, firestore indexes, and hostingnpm start
If you are seeing a CORS error in the console. Try this fix out.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
Combines the build command from above and with a deploy command from the local firebase package. The build directory is uploaded to the associated firebase project.