Giter Club home page Giter Club logo

lupinotuum's Introduction

Lupinotuum

A Bot to play Werewolf on Discord in real-time.

Usage

To host this bot yourself clone this repository. You'll have to create a config.json in Lupinotuum/ and enter your bot token and a covert_server. Then just run lupinotuum.py.

The covert_server should be a server where private communication is managed using text_channels. Here the bot need permissions to create and modify channels.

The invite link should be the last part of a generated invite link to your covert server. In the given case the link https://discord.gg/PzYPTdr has been generated which leads to PzYPTdr as the last part.

Your config.json might look like this

{
  "token": "Dwa9aFW9saf68gwaf-faw80saf789fwa.fawXAawdfajigeoAIWZUk",
  "covert_server": 4201333712345678910
  "invite_link" : "PzYPTdr"
}

Task List

  • Interface
    • Game Setup
    • Ingame interaction
  • Game logic
    • Main game
    • Usability
      • Group management
      • Time management
  • Database
    • Game state
      • Save game state
      • Recall game state
    • Game setup

Roles

Town aligned roles

Role Ability Special win condition
Villager - -
Seer View a players alignment each night -
Guardian Angel Each night, choose a player to be protected during the night against the werewolves. Can choose himself, but not the same player twice in a row -
Alchemist Has two potions, healing and poison, which can be used once each. Each night after being shown the victim, choose which potion to apply (or not to apply) on any player -
Hunter If eliminated from the game, immediately eliminate any player of their choice -
Cupid Chooses two players at the start to have altered win conditions Also wins with the couple
Mayor Vote is worth twice as much -
Apprentice Seer Becomes a Seer when the Seer dies -
Knight Survives the first attack on him -
Vigilante May kill two players per game -
Bomb Kills their killer -
Resurrectionist May resurrect one player per game -
Mailman May write a Message each night to be shown to the Town -
Oracle May reveal a players role to another player but not themselves -
Priest Can throw Holy Water at another player. If target is a werewolf the target dies; otherwise the priest dies -
Brothers Knows the other Brothers -
Mason Knows the other Masons -
Villager-Villager Their role as a villager is visible to all players -
Fox Once: Choose any three players. If there is at least one werewolf amongst them, keep this ability -
Teacher May not vote. Each day, right before the votes: Forbid up to 2(?) players from voting that turn, but which can still debate. -
Lord Once: After any vote, the Lord can, upon request by the victim, pardon the victim. No player is eliminated. Can pardon himself -

Evil Roles

Role Ability Special win condition
Mafiosi Vote to kill a player at night -
Werewolf Each night, devour a villager. Can not devour another werewolf -
Alpha Werewolf Acts as a normal werewolf. Wakes up a second time and devours a second victim as long as no other werewolf has been eliminated -
White Werewolf Acts as a normal werewolf Wins if he is the last werewolf remaining
Teenage Werewolf Must say 'werewolf' once each day -
Vampire May bite a player every even night Only Vampires left
Serial Killer May kill a player every night Has to be last survivor
Cultist Is not part of werewolf chat -
Ancient Werewolf Acts as a normal werewolf. Once: Infect the victim. The infected inhabitant becomes a Werewolf but also keeps his other identity and isn't devoured. -
Witch Each night: May choose a player. This players ability is inhibited during the night -

Neutral Roles

Role Ability Special win condition
Survivor - Wins if he alive at the end
Executioner - At the start of the game: Choose a target. Wins if target is eliminated by the end of the game
Protector - At the start of the game: Choose a target. Wins if target is alive by the end of the game
Jester - Wins if he is eliminated by the villager's vote
Universal At the beginning of the game: Choose a role on the first night. The role is kept until the end of the game -
Copycat Gets the role of the first player to die -
Actor Each night: May choose any of three provided roles and use the corresponding power until the next night. After a role has been chosen, it gets removed from the pool. Roles may not be Werewolf roles -

lupinotuum's People

Contributors

hoebelt avatar leny-mi avatar mowirth avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

treemanhero98

lupinotuum's Issues

Implement basic Input/Output

Simple commands should be used to interact with the game. These are temporary since the future may show better ways to interact.

Guardian Angel Implementation

Implement the

$guard PLAYER

Command. This comand guards the specific Player given by its ID. The Guarding-Angel doesn't know wether the guarded Player is harmed or not.

Hunter Implementation

Implement the

$kill PLAYER

command. If the Player with this Role dies, he can choose another Player given by its ID to die too. This is only possible until the next time-state starts.

Add "neutral role" Description

Neutral Role descriptions are used to explain the roles to those unfamiliar with them. They should be simple enough to be understood by a first-time player.
Following Roles need a Descripition:

  • Universal

  • Survivor

  • Protector

  • Jester

  • Executioner

  • Copycat

  • Actor

  • Narrator

Add "good role" descriptions

Good Role descriptions are used to explain the roles to those unfamiliar with them. They should be simple enough to be understood by a first-time player.
Following Roles need a Descripition:

  • Hunter

  • Guardian_Angel

  • Villager

  • Vigilante

  • Seer

  • Resurrectionist

  • Priest

  • Oracle

  • Mayor

  • Mason

  • Mailman

  • Knight

  • Cupid

  • Brother

  • Bombshell

  • Apprentice_Seer

  • Alchemist

  • Fox

  • Teacher

  • Lord

Add "evil role" Description

Evil Role descriptions are used to explain the roles to those unfamiliar with them. They should be simple enough to be understood by a first-time player.
Following Roles need a Descripition:

  • Alpha

  • Ancient

  • Cultist

  • Mafiosi

  • Serial_Killer

  • Teenager_Werewolf

  • Vampire

  • Werewolf

  • Witch

  • White

Implement subgroup logic

At multiple points in the game there will be a need to open subgroups to allow for group communication. The Werewolves for example need the subgroup to communicate and vote. Subgroups need to support

  • creation
  • adding players
  • removing players
  • relaying messages
  • clean up (delete)

Game Winning Logic

Die Logik für das Spiel-Ende besprechen und anschließend implementieren.
Basically soll zu jedem Event-Übergang geprüft werden, ob es nur noch gute oder böse Rollen gibt. Die neutralen Rollen spielen hier keine Rolle.

Seer Implementation

Implement the $see command to see the Alignment of a specific user given by its ID. This happens in the private Chat with the bot. The Seer can do this once every night.

Werewolf complete Implementation

Funktionalitäten der Werwolf-Rolle implementieren. Dazu gehören folgende Aufgaben:

  • Voting zum töten eines Mitspielers. Dies passiert, anders als sonst, im Werwolf-Gruppenchat

  • Implementierung der Standardfunktionen für die direkte Interaktion mit dem Bot wie $players etc.

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.