from plomrogue.io import GameIO
from plomrogue.misc import quote
from plomrogue.mapping import YX, MapGeometrySquare, Map
+import string
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')
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':
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)
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):