X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;ds=sidebyside;f=rogue_chat_curses.py;h=c3d216591665a8d1c0de644c9693660c052f6739;hb=358f28223eb46401333aad09357da80dfcc81552;hp=698360915a513fa0329e220680081f731ee13866;hpb=46ecf6d1bb5a470c9e1a7ec4837462102d7a6487;p=plomrogue2 diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py index 6983609..c3d2165 100755 --- a/rogue_chat_curses.py +++ b/rogue_chat_curses.py @@ -29,7 +29,7 @@ mode_helps = { }, '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', @@ -353,9 +353,9 @@ class TUI: 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) @@ -387,7 +387,7 @@ class TUI: 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 = { @@ -504,7 +504,7 @@ class TUI: (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' @@ -525,8 +525,15 @@ class TUI: 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): @@ -604,17 +611,19 @@ class TUI: 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_, @@ -675,10 +684,10 @@ class TUI: 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' @@ -849,18 +858,29 @@ class TUI: 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 @@ -889,25 +909,23 @@ class TUI: 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': @@ -930,12 +948,6 @@ class TUI: 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