X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=plomrogue%2Fgame.py;h=29e2de15fe605f92f11cebc967815927ea9b7fd8;hb=884b4b8d9c18896569c5e741f90a6ee67f8db8b2;hp=1ffbf1acfa186f900d96a8252bd5db58dd5fa0a8;hpb=ea961663328b40a2423cb2bb0d73a8e91b1797ee;p=plomrogue2 diff --git a/plomrogue/game.py b/plomrogue/game.py index 1ffbf1a..29e2de1 100755 --- a/plomrogue/game.py +++ b/plomrogue/game.py @@ -4,6 +4,7 @@ from plomrogue.errors import GameError, PlayError from plomrogue.io import GameIO from plomrogue.misc import quote from plomrogue.mapping import YX, MapGeometrySquare, Map +import string @@ -48,6 +49,8 @@ class Game(GameBase): self.map_control_passwords = {} self.annotations = {} self.portals = {} + self.player_chars = string.digits + string.ascii_letters + self.player_char_i = -1 if os.path.exists(self.io.save_file): if not os.path.isfile(self.io.save_file): raise GameError('save file path refers to non-file') @@ -76,7 +79,6 @@ class Game(GameBase): return True def get_string_options(self, string_option_type): - import string if string_option_type == 'direction': return self.map_geometry.get_directions() elif string_option_type == 'char': @@ -110,6 +112,9 @@ class Game(GameBase): if hasattr(t, 'nickname'): self.io.send('THING_NAME %s %s' % (t.id_, quote(t.nickname)), c_id) + if hasattr(t, 'player_char'): + self.io.send('THING_CHAR %s %s' % (t.id_, + quote(t.player_char)), c_id) for yx in [yx for yx in self.portals if player.fov_stencil[yx] == '.']: self.io.send('PORTAL %s %s' % (yx, quote(self.portals[yx])), c_id) @@ -187,6 +192,12 @@ class Game(GameBase): return 1 return max([t.id_ for t in self.things]) + 1 + def get_next_player_char(self): + self.player_char_i += 1 + if self.player_char_i >= len(self.player_chars): + self.player_char_i = 0 + return self.player_chars[self.player_char_i] + def save(self): def write(f, msg):