Get rid of conceal_roles in the game_mode decorator

A game mode is considered "hidden" if it doesn't have a `ROLE_GUIDE`
attribute. The `default` game mode was modified to have those
attributes, and is not hidden.
This commit is contained in:
Vgr E. Barry 2015-09-09 10:37:45 -04:00
parent ae5f78decc
commit 0219941d08
2 changed files with 11 additions and 8 deletions

View File

@ -7,10 +7,10 @@ import src.settings as var
from src import events from src import events
def game_mode(name, minp, maxp, likelihood = 0, conceal_roles = False): def game_mode(name, minp, maxp, likelihood = 0):
def decor(c): def decor(c):
c.name = name c.name = name
var.GAME_MODES[name] = (c, minp, maxp, likelihood, conceal_roles) var.GAME_MODES[name] = (c, minp, maxp, likelihood)
return c return c
return decor return decor
@ -104,9 +104,11 @@ class ChangedRolesMode(GameMode):
@game_mode("default", minp = 4, maxp = 24, likelihood = 20) @game_mode("default", minp = 4, maxp = 24, likelihood = 20)
class DefaultMode(GameMode): class DefaultMode(GameMode):
"""Default game mode.""" """Default game mode."""
def __init__(self, arg=""): def __init__(self, arg="", role_index=var.ROLE_INDEX, role_guide=var.ROLE_GUIDE.copy()):
# No extra settings, just an explicit way to revert to default settings # No extra settings, just an explicit way to revert to default settings
super().__init__(arg) super().__init__(arg)
self.ROLE_INDEX = role_index
self.ROLE_GUIDE = role_guide
@game_mode("foolish", minp = 8, maxp = 24, likelihood = 8) @game_mode("foolish", minp = 8, maxp = 24, likelihood = 8)
class FoolishMode(GameMode): class FoolishMode(GameMode):
@ -396,7 +398,7 @@ class MatchmakerMode(GameMode):
"mad scientist" : [i >= 18 for i in self.ROLE_INDEX], "mad scientist" : [i >= 18 for i in self.ROLE_INDEX],
}) })
@game_mode("random", minp = 8, maxp = 24, likelihood = 0, conceal_roles = True) @game_mode("random", minp = 8, maxp = 24, likelihood = 0)
class RandomMode(GameMode): class RandomMode(GameMode):
"""Completely random and hidden roles.""" """Completely random and hidden roles."""
def __init__(self, arg=""): def __init__(self, arg=""):

View File

@ -7849,8 +7849,9 @@ def listroles(cli, nick, chan, rest):
rest = re.split(" +", rest.strip(), 1) rest = re.split(" +", rest.strip(), 1)
#message if this game mode has been disabled #message if this game mode has been disabled
if (not rest[0] or rest[0].isdigit()) and var.GAME_MODES[var.CURRENT_GAMEMODE.name][4]: if (not rest[0] or rest[0].isdigit()) and not hasattr(var.CURRENT_GAMEMODE, "ROLE_GUIDE"):
msg.append("{0}: {1}roles is disabled for the {2} game mode.".format(nick, botconfig.CMD_CHAR, var.CURRENT_GAMEMODE.name)) msg.append("{0}: There {1} \u0002{2}\u0002 playing. {3}roles is disabled for the {4} game mode.".format(nick,
"is" if lpl == 1 else "are", lpl, botconfig.CMD_CHAR, var.CURRENT_GAMEMODE.name))
rest = [] rest = []
roleindex = {} roleindex = {}
#prepend player count if called without any arguments #prepend player count if called without any arguments
@ -7865,7 +7866,7 @@ def listroles(cli, nick, chan, rest):
gamemode = rest[0] gamemode = rest[0]
if gamemode not in var.GAME_MODES.keys(): if gamemode not in var.GAME_MODES.keys():
gamemode, _ = complete_match(rest[0], var.GAME_MODES.keys() - ["roles"]) gamemode, _ = complete_match(rest[0], var.GAME_MODES.keys() - ["roles"])
if gamemode in var.GAME_MODES.keys() and gamemode != "roles" and not var.GAME_MODES[gamemode][4]: if gamemode in var.GAME_MODES.keys() and gamemode != "roles" and hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
mode = var.GAME_MODES[gamemode][0]() mode = var.GAME_MODES[gamemode][0]()
if hasattr(mode, "ROLE_INDEX") and hasattr(mode, "ROLE_GUIDE"): if hasattr(mode, "ROLE_INDEX") and hasattr(mode, "ROLE_GUIDE"):
roleindex = mode.ROLE_INDEX roleindex = mode.ROLE_INDEX
@ -7875,7 +7876,7 @@ def listroles(cli, nick, chan, rest):
roleguide = var.ORIGINAL_SETTINGS["ROLE_GUIDE"] roleguide = var.ORIGINAL_SETTINGS["ROLE_GUIDE"]
rest.pop(0) rest.pop(0)
else: else:
if gamemode in var.GAME_MODES and var.GAME_MODES[gamemode][4]: if gamemode in var.GAME_MODES and not hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
msg.append("{0}: {1}roles is disabled for the {2} game mode.".format(nick, botconfig.CMD_CHAR, gamemode)) msg.append("{0}: {1}roles is disabled for the {2} game mode.".format(nick, botconfig.CMD_CHAR, gamemode))
else: else:
msg.append("{0}: {1} is not a valid game mode.".format(nick, rest[0])) msg.append("{0}: {1} is not a valid game mode.".format(nick, rest[0]))