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):