What we want for Betman (previously known as betsys.py
):
Classes: Competitor, Better, Game, System, Matchmaker, Outlet, Team, SystemInterface.
- Each Competitor holds at least an ID, a human readable name, and subclasses may hold a tier, like in an ELO system.
- Each Better holds an ID, a human readable name and a balance.
- Each Team class holds an ID, a human readable name, and the involved competitors.
- Each Game class (and its subclasses) holds the involved Competitors, and what Teams they pertain to.
- The Matchmaker subclasses will find two competitors, create a Game subclass with them, and return the game.
- Each System class contains all of the Betters and all of the Games. It will interact with SystemInterface objects.
- The SystemInterface class is something like a Discord bot, or an IRC bot, or a web server, which will interact with the System to fetch information and send events and other things. NetSystemInterface is a SystemInterface subclass that opens a listen socket, effectively exposing the interfaced System to the network.
What we want for the Discord MUGEN bot:
- Being able to print out the general (and better) status when requested.
- Automatic print match events. (win, bet lock, current competitors)
- Automatically lock bets when the match starts, and unlock them after it ends.
- Provide a way for admins to know whether it's locked, and toggling the lock.
- Announce the Competitors before a Game.
- Find the winner of the match, from the game. (hard)