Git Product home page Git Product logo

codenames's People

Contributors

an-empty-string avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

codenames's Issues

Add stats

  • Per-game stats backend

    • Game mode
    • Players & teams
    • Winning team
    • Who pet the dog
    • Full game log: what words were assigned, who guessed what, in what order
  • Exposed on IRC

    • Dogs pet
    • Games played by mode
    • Spymaster percentage

Add two player mode

In two player mode, only the green team is active. After the green guessing phase, the game randomly removes two pink words from the board and jumps back to the green hinting phase.

Make keeping track of player count easier

Problem:
Currently, there is no way to know the exact player count without pinging everyone, without manually keeping track of players by hand.

Suggestions: (Either one should be enough)

  • Make !join/!leave shot the player count after the player joins/leaves. This way, one has to scroll no further back than the last join/leave message to know the exact player count.
  • Give +v to joined players, so that one can see who has joined at a glance, even without observing chat messages.
  • Allow doing !status / !players in PM to the bot.

Defections on joining after start

If someone joins a 3 player game after it starts, the existing guesser should defect to one of pink/green, and the new player should become a guesser for the other team. If someone joins a 4+ player game after it starts, they should join one of pink/green such that one team has at most 1 more guesser.

Add timeout for inactive players

Currently, if everyone who currently has to hint/guess is AFK or is otherwise uncooperative, they can stall the game forever.

This is exacerbated by #12 and #13, as the other players cannot leave the game or otherwise bring it to an end.

Proposal:

Similar lykos, this bot could keep track of last activity per-player, and issue a warning at, say, 5 minutes, followed by a force leave at 6 (or maybe the bot could just allow others to !fleave the inactive player, in case we want to keep the game more casual).

Add dogs

In each game, one civilian will be specially marked. If this civilian is guessed, whoever guessed it will be allowed to pet a dog.

Allow people to leave after game starts (defections)

  • In a 3 player game, the game should end if anyone leaves
  • In a 4 player game with 2 pink, 2 green, if a guesser leaves, the remaining guesser should defect to the gray team. If a spymaster leaves, their guesser should be promoted to spymaster and the other guesser should defect to the gray team.
  • Similar logic for 5+ players (promote to spymaster if necessary, redistribute guessers as needed)

Add idle timeout during join phase

During the join phase, check every minute for idle players:

  • If a player has been idle for 10 minutes, ping them and ask if they are still here.
  • If a player has been idle for 15 minutes, remove them from the game.

Players' idle timers should be reset whenever they talk in channel.

Architecture TBD.

Support !words in spymaster PM

It should be possible for spymasters to PM !words (or just words) to the bot to get the current set of remaining words for each team.

Handle people leaving the channel

Similar to lykos, a player leaving the channel or disconnects should cause a timer to start, and on expiry, they should be removed from the game. (The timer is to allow for e.g. accidental /part or transient network issues.)

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.