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
+ self.terrains = {
+ '.': 'floor',
+ 'X': 'wall',
+ '=': 'window',
+ '#': 'bed',
+ 'T': 'desk',
+ '8': 'cupboard',
+ '[': 'glass door',
+ 'o': 'sink',
+ 'O': 'toilet'
+ }
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':
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)
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:
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):
self.map_control_passwords[tile_class]))
for t in [t for t in self.things if not t.type_ == 'Player']:
write(f, 'THING %s %s %s' % (t.position, t.type_, t.id_))
+ if hasattr(t, 'name'):
+ write(f, 'THING_NAME %s %s' % (t.id_, quote(t.name)))
def new_world(self, map_geometry):
self.map_geometry = map_geometry