'intro': '@ enter thing protection character:',
'long': 'Change protection character for thing here.'
},
+ 'enter_face': {
+ 'short': 'enter your face',
+ 'intro': '@ enter face line (enter nothing to abort):',
+ 'long': 'Draw your face as ASCII art. The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..'
+ },
'write': {
'short': 'change terrain',
'intro': '',
def cmd_THING_NAME(game, thing_id, name):
t = game.get_thing(thing_id)
- if t:
- t.name = name
-cmd_THING_NAME.argtypes = 'int:nonneg string'
+ t.name = name
+cmd_THING_NAME.argtypes = 'int:pos string'
+
+def cmd_THING_FACE(game, thing_id, face):
+ t = game.get_thing(thing_id)
+ t.face = face
+cmd_THING_FACE.argtypes = 'int:pos string'
def cmd_THING_CHAR(game, thing_id, c):
t = game.get_thing(thing_id)
- if t:
- t.thing_char = c
-cmd_THING_CHAR.argtypes = 'int:nonneg char'
+ t.thing_char = c
+cmd_THING_CHAR.argtypes = 'int:pos char'
def cmd_MAP(game, geometry, size, content):
map_geometry_class = globals()['MapGeometry' + geometry]
self.register_command(cmd_THING_TYPE)
self.register_command(cmd_THING_NAME)
self.register_command(cmd_THING_CHAR)
+ self.register_command(cmd_THING_FACE)
self.register_command(cmd_THING_CARRYING)
self.register_command(cmd_THING_INSTALLED)
self.register_command(cmd_TERRAIN)
mode_name_thing = Mode('name_thing', has_input_prompt=True, shows_info=True)
mode_command_thing = Mode('command_thing', has_input_prompt=True)
mode_take_thing = Mode('take_thing', has_input_prompt=True)
+ mode_enter_face = Mode('enter_face', has_input_prompt=True)
is_admin = False
tile_draw = False
"toggle_tile_draw"]
self.mode_edit.available_modes = ["write", "annotate", "portal", "name_thing",
"password", "chat", "study", "play",
- "admin_enter"]
+ "admin_enter", "enter_face"]
self.mode_edit.available_actions = ["move", "flatten", "toggle_map_mode"]
self.mode = None
self.host = host
'switch_to_control_tile_type': 'Q',
'switch_to_admin_thing_protect': 'T',
'flatten': 'F',
+ 'switch_to_enter_face': 'f',
'switch_to_take_thing': 'z',
'drop_thing': 'u',
'teleport': 'p',
if len(self.game.fov) > pos_i and self.game.fov[pos_i] != '.':
info_to_cache += 'outside field of view'
else:
+ for t in self.game.things:
+ if t.position == self.explorer:
+ info_to_cache += 'THING: %s' % self.get_thing_info(t)
+ protection = t.protection
+ if protection == '.':
+ protection = 'none'
+ info_to_cache += ' / protection: %s\n' % protection
+ if hasattr(t, 'face'):
+ info_to_cache += t.face[0:3] + '\n'
+ info_to_cache += t.face[3:6] + '\n'
+ info_to_cache += t.face[6:9] + '\n'
terrain_char = self.game.map_content[pos_i]
terrain_desc = '?'
if terrain_char in self.game.terrains:
if protection == '.':
protection = 'unprotected'
info_to_cache += 'PROTECTION: %s\n' % protection
- for t in self.game.things:
- if t.position == self.explorer:
- info_to_cache += 'THING: %s' % self.get_thing_info(t)
- protection = t.protection
- if protection == '.':
- protection = 'none'
- info_to_cache += ' / protection: %s\n' % protection
if self.explorer in self.game.portals:
info_to_cache += 'PORTAL: ' +\
self.game.portals[self.explorer] + '\n'
self.login_name = self.input_
self.send('LOGIN ' + quote(self.input_))
self.input_ = ""
+ elif self.mode.name == 'enter_face' and key == '\n':
+ if len(self.input_) != 9:
+ self.log_msg('? wrong input length, aborting')
+ else:
+ self.send('PLAYER_FACE %s' % quote(self.input_))
+ self.input_ = ""
+ self.switch_mode('edit')
elif self.mode.name == 'take_thing' and key == '\n':
try:
i = int(self.input_)