'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': '',
+ 'short': 'change tile control password',
'long': 'This mode is the second of two steps to change the password for a tile control character. Enter the new password for the tile control character you chose.'
},
+ 'control_tile_type': {
+ 'short': 'change tiles control',
+ 'long': 'This mode is the first of two steps to change tile control areas on the map. First enter the tile control character you want to write.'
+ },
+ 'control_tile_draw': {
+ 'short': 'change tiles control',
+ 'long': 'This mode is the second of two steps to change tile control areas on the map. Move cursor around the map to draw selected tile control character'
+ },
'annotate': {
'short': 'annotation',
'long': 'This mode allows you to add/edit a comment on the tile you are currently standing on (provided your map editing password authorizes you so). Hit Return to leave.'
'long': 'This mode allows you to engage in chit-chat with other users. Any line you enter into the input prompt that does not start with a "/" will be sent out to nearby players – but barriers and distance will reduce what they can read, so stand close to them to ensure they get your message. Lines that start with a "/" are used for commands like:'
},
'login': {
- 'short': '',
+ 'short': 'login',
'long': 'Pick your player name.'
},
'waiting_for_server': {
- 'short': '',
+ 'short': 'waiting for server response',
'long': 'Waiting for a server response.'
},
'post_login_wait': {
- 'short': '',
+ 'short': 'waiting for server response',
'long': 'Waiting for a server response.'
},
'password': {
mode_edit = Mode('edit', is_single_char_entry=True)
mode_control_pw_type = Mode('control_pw_type', is_single_char_entry=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_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)
mode_chat = Mode('chat', has_input_prompt=True)
self.mode_play.available_modes = ["chat", "study", "edit",
"annotate", "portal",
"password", "admin",
- "control_pw_type"]
+ "control_pw_type",
+ "control_tile_type"]
self.mode_study.available_modes = ["chat", "play"]
+ self.mode_control_tile_draw.available_modes = ["play"]
self.host = host
self.game = Game()
self.game.tui = self
'switch_to_edit': 'm',
'switch_to_admin': 'A',
'switch_to_control_pw_type': 'C',
+ 'switch_to_control_tile_type': 'Q',
'flatten': 'F',
'take_thing': 'z',
'drop_thing': 'u',
elif self.mode.name == 'password':
self.input_ = self.password
+ def send_tile_control_command(self):
+ self.send('SET_TILE_CONTROL %s %s' %
+ (self.explorer, quote(self.tile_control_char)))
+
def switch_mode(self, mode_name):
self.map_mode = 'terrain'
self.mode = getattr(self, 'mode_' + mode_name)
- if self.mode.shows_info:
+ if self.mode.shows_info or self.mode.name == 'control_tile_draw':
player = self.game.get_thing(self.game.player_id)
self.explorer = YX(player.position.y, player.position.x)
- self.query_info()
+ if self.mode.shows_info:
+ self.query_info()
+ elif self.mode.name == 'control_tile_draw':
+ self.send_tile_control_command()
+ self.map_mode = 'control'
if self.mode.is_single_char_entry:
self.show_help = True
if self.mode.name == 'waiting_for_server':
target = self.game.map_geometry.move_yx(self.explorer, direction)
if target:
self.explorer = target
- self.query_info()
+ if self.mode.shows_info:
+ self.query_info()
+ elif self.mode.name == 'control_tile_draw':
+ self.send_tile_control_command()
else:
self.flash = True
help = "hit [%s] for help" % self.keys['help']
if self.mode.has_input_prompt:
help = "enter /help for help"
- safe_addstr(1, self.window_width, 'MODE: %s – %s' % (self.mode.name, help))
+ safe_addstr(1, self.window_width,
+ 'MODE: %s – %s' % (self.mode.short_desc, help))
def draw_map():
if not self.game.turn_complete:
meta_char = '+'
map_lines_split[t.position.y][t.position.x] = symbol + meta_char
used_positions += [t.position]
- if self.mode.shows_info:
+ if self.mode.shows_info or self.mode.name == 'control_tile_draw':
map_lines_split[self.explorer.y][self.explorer.x] = '??'
map_lines = []
if type(self.game.map_geometry) == MapGeometryHex:
map_y += 1
def draw_help():
- content = "%s mode help\n\n%s\n\n" % (self.mode.name,
- self.mode.help_intro)
+ content = "%s help\n\n%s\n\n" % (self.mode.short_desc,
+ self.mode.help_intro)
if self.mode.name == 'play':
content += "Available actions:\n"
if 'MOVE' in self.game.tasks:
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
+ elif key in self.movement_keys:
+ move_explorer(self.movement_keys[key])
#TUI('localhost:5000')
TUI('wss://plomlompom.com/rogue_chat/')