GithubHelp home page GithubHelp logo

aj-r / avalon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ldeluigi/avalon

0.0 1.0 0.0 33.62 MB

Discord bot that masters The Resistance: Avalon games, built using discord.py library.

Python 100.00%

avalon's Introduction

The Resistance: Avalon - Discord Edition

Discord bot built using discord.py library. Original game by Don Eskridge.

This bot is not hosted. You need to host the bot yourself (remember to set the .env var SECRET_TOKEN to your discord bot token).

Technical Requirements

Needed for hosting the bot

Alternatively, you can simply run pip install -r requirements.txt

Run instructions

  1. Download dependencies
    Note: make sure python version meets requirements.
  2. Setup the SECRET_TOKEN as environment variable or create a file called ".env" in the main folder containing:
    SECRET_TOKEN=token
    Where token is your discord bot token. (Learn more)
  3. Run the start command:
    python dreamlord.py

Rules

Information in this section drawn from a combination of the game's manual, Wikipedia and theresistanceonline.com

The Resistance: Avalon is a variant of The Resistance. It is similar in structure to party games such as Mafia and Werewolf, where a small, secret group of informed players attempt to disrupt a larger uninformed group, while the larger group attempts to identify the traitors and eliminate them. The Resistance uses slightly different mechanics from similar games, and was designed to avoid player elimination and increase available information for player decisions.

Avalon is a game of hidden loyalty. Players are either Loyal Servants of Arthur fighting for Goodness and honor or aligned with the Evil ways of Mordred. Good wins the game by successfully completing three Quests. Evil wins if three Quests end in failure. Evil can also win by assassinating Merlin at game's end or if a Quest cannot be undertaken.

  • The game requires between five and ten players.
  • Approximately one third of the players are randomly chosen as Evil; the rest are Good. This depends on the player count.
  • Evil players have knowledge of who their fellow evil players are. The Good players do not have any additional information.
  • The game consists of up to five rounds called Quests.
  • Each quest has a leader. The leader proposes a quest party of a certain size as determined by the game, which the group approves by public vote.
  • The leader for the first quest is randomly determined, it will then pass in a sequential fashion as determined by the player list.
  • If the group does not approve the quest by a simple majority, leadership passes to the next player.
  • If the group cannot approve a quest party after five attempts, Evil wins.
  • Once a mission team is chosen, it votes by secret ballot whether the mission succeeds or fails.
  • Good will always vote for success and are unable to fail, but Evil has the option of voting for success or failure.
  • It usually only takes one traitor to sabotage a quest, but in games of 7 or more the fourth quest will require two fails.
  • (optional) After the 2nd, 3rd, and 4th missions, the player with the Lady of the Lake inspects the loyalty of another player. The lady of the lake then passes to te inspected player.
  • If three quests succeed, Good wins. If three fail, Evil wins.
  • In the event of a Good victory, a character known as the assassin will choose one person to assassinate. If Merlin is correctly identified and assassinated, Evil wins.

Special Roles

Good

  • Merlin - Merlin has knowledge of all the Evil players in the game (except Mordred). He must lead the forces of good, but do so with subtlety lest he be identified by the Assassin.
  • Percival - Has knowledge of who Merlin is. If Morgana is in the game, Morgana will also appear as Merlin. Percival must carefully determine which is the true Merlin and condemn the imposter Morgana.

Evil

  • The Assassin - If Good wins, if the Assassin is able to correctly identify Merlin- Evil will win instead.
  • Morgana - Appears to Percival as Merlin. Must attempt to turn Percival against the true Merlin.
  • Mordred - The Big Bad. Fully hidden. Merlin does not know who the Mordred player is.
  • Oberon - The Blind Bad. Other evil characters don't know who he is, neither he knows who the other bads are.

Commands

  • !avalon - Starts the game.
  • !help - Direct messages the user a link to this page.
  • !stop - End the currently running game.
  • !join - Used to join the game during the login phase.
  • !party - Used by the leader to propose a party during the team building phase.
  • !approve/!reject - Used to approve or reject a party during the team building phase.
  • !success/!fail - Used to succeed or fail a quest during the secret vote phase.
  • !lady - Examine a player's loyalty using Lady of the Lake
  • !assassinate - Used by the Assassin in the event of a Good victory to assassinate a member of the game. This command does not have any input verification and only allows you one try. Ensure that you @tag the correct person!

Original Rulebook

The original game rules can be found at http://upload.snakesandlattes.com/rules/r/ResistanceAvalon.pdf

avalon's People

Contributors

ldeluigi avatar aj-r avatar rrobby86 avatar cameronleong avatar dwfig avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.