X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomrogue%2Fgame.py;h=483dd346e2a837a1c61f65fa265f1f3b592faabb;hb=2ce340a97606c970eb1d6dd8cccee7a2d12c6c05;hp=1ffbf1acfa186f900d96a8252bd5db58dd5fa0a8;hpb=6cc83951670f2022bd22cbf0728ebb4c25479c4d;p=plomrogue2 diff --git a/plomrogue/game.py b/plomrogue/game.py index 1ffbf1a..483dd34 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': @@ -107,9 +109,11 @@ class Game(GameBase): for t in [t for t in self.things if player.fov_stencil[t.position] == '.']: self.io.send('THING %s %s %s' % (t.position, t.type_, t.id_), c_id) - if hasattr(t, 'nickname'): - self.io.send('THING_NAME %s %s' % (t.id_, - quote(t.nickname)), c_id) + if hasattr(t, 'name'): + self.io.send('THING_NAME %s %s' % (t.id_, quote(t.name)), 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) @@ -125,8 +129,8 @@ class Game(GameBase): break if not connection_id_found: t = self.get_thing(self.sessions[connection_id]) - if hasattr(t, 'nickname'): - self.io.send('CHAT ' + quote(t.nickname + ' left the map.')) + if hasattr(t, 'name'): + self.io.send('CHAT ' + quote(t.name + ' left the map.')) self.things.remove(t) to_delete += [connection_id] for connection_id in to_delete: @@ -187,6 +191,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):