diff --git a/src/gamemodes.py b/src/gamemodes.py index 7951d56..2af9d5c 100644 --- a/src/gamemodes.py +++ b/src/gamemodes.py @@ -743,12 +743,13 @@ class SleepyMode(GameMode): # templates "cursed villager" : ( 1 , 1 , 1 , 1 , 1 , 1 ), "blessed villager" : ( 0 , 1 , 1 , 1 , 1 , 1 ), - "devout" : ( 0 , 1 , 1 , 1 , 1 , 1 ), + "prophet" : ( 0 , 1 , 1 , 1 , 1 , 1 ), "gunner" : ( 0 , 0 , 0 , 0 , 0 , 1 ), }) - # this ensures that priest will always receive the blessed villager and devout templates + # this ensures that priest will always receive the blessed villager and prophet templates + # prophet is normally a role by itself, but we're turning it into a template for this mode self.TEMPLATE_RESTRICTIONS["cursed villager"] |= "priest" - self.TEMPLATE_RESTRICTIONS["blessed villager"] = frozenset(self.ROLE_GUIDE.keys()) - {"priest", "blessed villager", "devout"} - self.TEMPLATE_RESTRICTIONS["devout"] = frozenset(self.ROLE_GUIDE.keys()) - {"priest", "blessed villager", "devout"} + self.TEMPLATE_RESTRICTIONS["blessed villager"] = frozenset(self.ROLE_GUIDE.keys()) - {"priest", "blessed villager", "prophet"} + self.TEMPLATE_RESTRICTIONS["prophet"] = frozenset(self.ROLE_GUIDE.keys()) - {"priest", "blessed villager", "prophet"} # this ensures that village drunk will always receive the gunner template self.TEMPLATE_RESTRICTIONS["gunner"] = frozenset(self.ROLE_GUIDE.keys()) - {"village drunk", "cursed villager", "gunner"} diff --git a/src/settings.py b/src/settings.py index 56e2b78..0752d9c 100644 --- a/src/settings.py +++ b/src/settings.py @@ -204,6 +204,7 @@ ROLE_GUIDE = OrderedDict([ # This is order-sensitive - many parts of the code re ("vigilante" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )), ("augur" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 )), ("detective" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 )), + ("prophet" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )), ("guardian angel" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )), ("bodyguard" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 )), ("priest" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )), @@ -237,7 +238,6 @@ ROLE_GUIDE = OrderedDict([ # This is order-sensitive - many parts of the code re ("mayor" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 )), ("assassin" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 )), ("bureaucrat" , ( 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 )), - ("devout" , ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 )), ]) # Harlot dies when visiting, seer sees as wolf, gunner kills when shooting, GA and bodyguard have a chance at dying when guarding @@ -266,7 +266,6 @@ TEMPLATE_RESTRICTIONS = OrderedDict([ ("mayor" , frozenset({"fool", "jester", "monster"})), ("assassin" , WOLF_ROLES | {"traitor", "seer", "augur", "oracle", "harlot", "detective", "bodyguard", "guardian angel", "lycan", "priest"}), ("bureaucrat" , frozenset()), - ("devout" , WOLFTEAM_ROLES | TRUE_NEUTRAL_ROLES | {"harlot", "lycan", "amnesiac", "mad scientist"}), ("blessed villager" , frozenset(ROLE_GUIDE.keys()) - {"villager", "blessed villager", "mayor", "bureaucrat"}), ]) diff --git a/src/wolfgame.py b/src/wolfgame.py index f2e311e..f595366 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -5548,9 +5548,12 @@ def investigate(cli, nick, chan, rest): "that \u0002{0}\u0002 is the detective!").format(nick)) debuglog("{0} ({1}) PAPER DROP".format(nick, var.get_role(nick))) -@cmd("pray", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("devout",)) +@cmd("pray", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("prophet",)) def pray(cli, nick, chan, rest): """Receive divine visions of something or someone.""" + # this command may be used multiple times in the course of the night, however it only needs + # to be used once to count towards ending night (additional uses don't count) + pass @cmd("visit", chan=False, pm=True, playing=True, silenced=True, phases=("night",), roles=("harlot",))