},
'control_pw_type': {
'short': 'change tiles control password',
- 'long': 'This mode is the first of two steps to change the password for a tile control character. First enter the tile control character for which you want to change the password!'
+ 'long': 'This mode is the first of two steps to change the password for a tile control character. First enter the tile control character for which you want to change the password.'
},
'control_pw_pw': {
'short': 'change tiles control password',
mode_study = Mode('study', shows_info=True)
mode_write = Mode('write', is_single_char_entry=True)
mode_edit = Mode('edit')
- mode_control_pw_type = Mode('control_pw_type', is_single_char_entry=True)
+ mode_control_pw_type = Mode('control_pw_type', has_input_prompt=True)
mode_control_pw_pw = Mode('control_pw_pw', has_input_prompt=True)
- mode_control_tile_type = Mode('control_tile_type', is_single_char_entry=True)
+ mode_control_tile_type = Mode('control_tile_type', has_input_prompt=True)
mode_control_tile_draw = Mode('control_tile_draw')
mode_annotate = Mode('annotate', has_input_prompt=True, shows_info=True)
mode_portal = Mode('portal', has_input_prompt=True, shows_info=True)
self.do_refresh = True
self.queue = queue.Queue()
self.login_name = None
- self.map_mode = 'all'
+ self.map_mode = 'terrain + things'
self.password = 'foo'
self.switch_mode('waiting_for_server')
self.keys = {
(self.explorer, quote(self.tile_control_char)))
def switch_mode(self, mode_name):
- self.map_mode = 'all'
+ self.map_mode = 'terrain + things'
self.tile_draw = False
if mode_name == 'admin_enter' and self.is_admin:
mode_name = 'admin'
self.log_msg('@ enter username')
elif self.mode.name == 'admin_enter':
self.log_msg('@ enter admin password:')
+ elif self.mode.name == 'control_pw_type':
+ self.log_msg('@ enter tile control character for which you want to change the password:')
+ elif self.mode.name == 'control_tile_type':
+ self.log_msg('@ enter tile control character which you want to draw:')
elif self.mode.name == 'control_pw_pw':
self.log_msg('@ enter tile control password for "%s":' % self.tile_control_char)
+ elif self.mode.name == 'control_tile_draw':
+ self.log_msg('@ can draw tile control character "%s", turn drawing on/off with [%s], finish with [%s].' % (self.tile_control_char, self.keys['toggle_tile_draw'], self.keys['switch_to_admin_enter']))
+ self.input_ = ""
self.restore_input_values()
def loop(self, stdscr):
if not self.game.turn_complete:
return
pos_i = self.explorer.y * self.game.map_geometry.size.x + self.explorer.x
- info = 'outside field of view'
- if self.game.fov[pos_i] == '.':
+ info = 'MAP VIEW: %s\n' % self.map_mode
+ if self.game.fov[pos_i] != '.':
+ info += 'outside field of view'
+ else:
terrain_char = self.game.map_content[pos_i]
terrain_desc = '?'
if terrain_char in self.game.terrains:
terrain_desc = self.game.terrains[terrain_char]
- info = 'TERRAIN: "%s" / %s\n' % (terrain_char, terrain_desc)
+ info += 'TERRAIN: "%s" / %s\n' % (terrain_char, terrain_desc)
protection = self.game.map_control_content[pos_i]
if protection == '.':
protection = 'unprotected'
- info = 'PROTECTION: %s\n' % protection
+ info += 'PROTECTION: %s\n' % protection
for t in self.game.things:
if t.position == self.explorer:
info += 'THING: %s / %s' % (t.type_,
else:
map_lines_split += [[c + ' ' for c
in self.game.map_content[start:end]]]
- if self.map_mode == 'annotations':
+ if self.map_mode == 'terrain + annotations':
for p in self.game.info_hints:
map_lines_split[p.y][p.x] = 'A '
- elif self.map_mode == 'all':
+ elif self.map_mode == 'terrain + things':
for p in self.game.portals.keys():
original = map_lines_split[p.y][p.x]
map_lines_split[p.y][p.x] = original[0] + 'P'
if 'PICK_UP' in self.game.tasks:
content += "[%s] – pick up thing\n" % self.keys['take_thing']
if 'DROP' in self.game.tasks:
- content += "[%s] – drop picked up thing\n" % self.keys['drop_thing']
+ content += "[%s] – drop picked-up thing\n" % self.keys['drop_thing']
content += '[%s] – teleport to other space\n' % self.keys['teleport']
content += '\n'
elif self.mode.name == 'study':
self.log_msg('@ aborted')
else:
self.send('SET_MAP_CONTROL_PASSWORD ' + quote(self.tile_control_char) + ' ' + quote(self.input_))
- self.input_ = ""
self.switch_mode('admin')
elif self.mode.name == 'password' and key == '\n':
if self.input_ == '':
self.input_ = ' '
self.password = self.input_
- self.input_ = ""
self.switch_mode('edit')
elif self.mode.name == 'admin_enter' and key == '\n':
self.send('BECOME_ADMIN ' + quote(self.input_))
- self.input_ = ""
self.switch_mode('play')
+ elif self.mode.name == 'control_pw_type' and key == '\n':
+ if len(self.input_) != 1:
+ self.log_msg('@ entered non-single-char, therefore aborted')
+ self.switch_mode('admin')
+ else:
+ self.tile_control_char = self.input_
+ self.switch_mode('control_pw_pw')
+ elif self.mode.name == 'control_tile_type' and key == '\n':
+ if len(self.input_) != 1:
+ self.log_msg('@ entered non-single-char, therefore aborted')
+ self.switch_mode('admin')
+ else:
+ self.tile_control_char = self.input_
+ self.switch_mode('control_tile_draw')
elif self.mode.name == 'chat' and key == '\n':
if self.input_ == '':
continue
self.input_ = ' '
self.send('ANNOTATE %s %s %s' % (self.explorer, quote(self.input_),
quote(self.password)))
- self.input_ = ""
self.switch_mode('edit')
elif self.mode.name == 'portal' and key == '\n':
if self.input_ == '':
self.input_ = ' '
self.send('PORTAL %s %s %s' % (self.explorer, quote(self.input_),
quote(self.password)))
- self.input_ = ""
self.switch_mode('edit')
elif self.mode.name == 'study':
if self.mode.mode_switch_on_key(self, key):
continue
elif key == self.keys['toggle_map_mode']:
- if self.map_mode == 'terrain':
- self.map_mode = 'annotations'
- elif self.map_mode == 'annotations':
- self.map_mode = 'all'
+ if self.map_mode == 'terrain only':
+ self.map_mode = 'terrain + annotations'
+ elif self.map_mode == 'terrain + annotations':
+ self.map_mode = 'terrain + things'
else:
- self.map_mode = 'terrain'
+ self.map_mode = 'terrain only'
elif key in self.movement_keys:
move_explorer(self.movement_keys[key])
elif self.mode.name == 'play':
elif self.mode.name == 'write':
self.send('TASK:WRITE %s %s' % (key, quote(self.password)))
self.switch_mode('edit')
- elif self.mode.name == 'control_pw_type':
- self.tile_control_char = key
- self.switch_mode('control_pw_pw')
- elif self.mode.name == 'control_tile_type':
- self.tile_control_char = key
- self.switch_mode('control_tile_draw')
elif self.mode.name == 'control_tile_draw':
if self.mode.mode_switch_on_key(self, key):
continue