The
Elector
Update


New Roles
  • Elector: transfer one player’s vote to another
    • If the person who gained the vote power dies, the person who lost their VP immediately regains it
    • If two electors try to steal from someone, the first elector gets priority
    • If two electors try to steal from someone, and then that someone gains vp from ANOTHER elector, they will transfer their dented VP to the person that owns it
      • “Owing vp” only lasts through the night, and no longer
    • If you lose vote power, you will be notified
    • If you gain vote power, you will be notified
    • If you gain AND lose vote power, you will not be notified
    • Drug dealers cannot hide the fact that you gained or lost VP
    • Disguisers disguising into someone with no VPs will also have that effect of no vps
    • Same if they’re disguising into someone with more VPs
    • Disguiser will regain the vote power of their target if the person who stole their target’s vote power dies
  • Thief: pick a role amongst the remaining roles that haven’t been assigned
    • Is unique
    • Cannot be put on a team with enemies
  • Silencer: stops one from chatting during the day, but can still vote
  • Disfranchiser: stops one from voting during the day, but can still talk


Narrator Feature & Fixes
  • Fixed issue with “secret voting” publicizing votes
  • Added liar’s club setup
  • Changed mayor’s ‘new vote count’ to ‘vote count increase’
  • Various “Diminishing Pool” vote system fixes


Setup Creation Enhancements
  • Custom setups are truly now a thing, and persist
  • Modernized setup manipulation
  • Restored role settings and visualizations on the UI


Visual Fixes
  • Clicking on any colored role, team, or setup hidden should properly show the right info
  • Lack of puppets will no longer cause browser to crash
  • Toggling between custom and auto setup should work again
  • Will show a helpful error when auth token is inactive
  • Day chat is disabled if sc2mafia is an integration for this game


Lobby Enhancements
  • Fixed timer not counting down
  • Player exits redone, accounting for all(?) scenarios


Sc2Mafia Integration Fixes + Features
  • Will detect new games every 10 minutes
  • Will post signup and setup threads on new games
  • Will update the setup when (some) setups changes happen
  • Will detect player signs and update the player signups
  • Will pm role info upon game start
  • Will publicize who won the game
  • Default phase lengths are 48 hours and 24 hours
  • Will gracefully close out empty lobbies
  • Votes will be announced as they happen
  • Votes will be detected


Discord Fixes + Features
  • Vote count will be announced before trials
  • Vote count will be announced at end of day
  • Vote count will be announced on vote resets
  • Moderators will be informed of live voting during ‘secret voting’
  • Moderators can ask for roles of players from the bot in pm
  • The name of the moderator will be announced on game start, if one exists
  • Added vote help text
  • Fixed “spots available” text on !info command during game setup
  • Fixed !living command
  • Fixed !graveyard command
  • Fixed !setups command
  • Limited !votecount to only show who’s allowed to be voted
  • Fixed client crash error when players joined night chats
  • Allow moderators to ask for vote count via bot pm
  • Added full-blown test suite for discord
  • Will correctly pull the nickname if it exists
  • Will properly show error text when game fails to start, so host can action on them


Database Fixes
  • Fixed incorrect role_ability_bool_modifier name length


Tech upgrades
  • Modernized code architecture for Discord interface
  • Added full blown test suite for Discord, shortening tests from 10 minutes to 30 seconds.
  • Removed a lot of the old web socket/ server interactions in favor of HTTP requests. This is good because the browser can now process failures much easier
  • Added cypress testing to stop front end features from breaking
  • Prettied up all my javascript code
  • Moved the timer logic out of Java and into Javascript