0.0.1-0 • Published 7 years ago

play-riot-root v0.0.1-0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Riot!

Riot is a card game strongly inspired by Bang!.

My friends and I designed this game as kids, with the intention of making a competitive card game with multiple common strategies and a modular rule system.

In other words, we wanted the "meta" to vary over time as other strategies arose, and we wanted to change the game's rules mid-play.

Premise

You find yourself in the sandy streets of Kabul, when suddenly a riot breaks out! The rebels spring to action and take their chance to kill the mayor and his officers. You quickly scavenge what gear you can and prepare to fight for your friends.

How will you survive? Will you fight with guns, blades, or explosives? Or will you attempt to call the town to order in the nearby courthouse?

Gameplay

Roles

Each player is assigned a role at the beginning of the game. These roles are:

  • Mayor
    • Visible to everyone
    • Wins by eliminating all rebels and maniac
    • Draws two cards each turn
    • Plays first
  • Officer
    • Wins by eliminating all rebels and maniac
  • Rebel
    • Wins by eliminating mayor and all officers
  • Maniac
    • Wins by eliminating everyone else

Turns

Players initially draw cards. During the first round, players are unable to attack without the use of consumables. It is advised that players take this turn to equip items and sell duplicates.

After the first round, players are free to attack using weapons. Players can collect a variety of melee, ranged, explosive weapons, in addition to head and body armors to protect themselves.

Court

During each turn, players have the option to call court against another player. This is an opportunity for players to discuss an action in the game and impose their own laws.

Unfortunately the electronic version of this game does not play so well with modifying core mechanics, so we leave enforcement of laws up to the players.

However, when a court case is decided, a punishment is chosen and inflicted on the losing party in the case.

Blackmarket

Players can sell unwanted items to collect cash. This cash can be spent at the blackmarket to purchase powerful, one-of-a-kind items that are unobtainable otherwise.

Contributing

To setup your local development environment, run this code in your terminal:

git clone https://github.com/hawkins/play-riot
cd play-riot
npm run setup

Testing

Unfortunately, testing is currently done manually. You can configure your own local server by running npm run localhost in the root project directory. Then, start the server with npm run server and connect to it with npm run client in as many terminals as you like.

To test deployments, deploy and reconfigure your client by running npm run deploy. This will deploy your code to now.sh and modify the client's URL to match the new deployment. Then, start the server with npm run server and connect to it with npm run client in as many terminals as you like.

Client

The client is currently a TUI made with Blessed. Its source can be found in /client.

Server

The server is responsible for the rules of the game, and is designed to be deployed to now.sh. The server's source can be found in /server.