X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=rogue_chat_curses.py;h=420c858190b6ab51dbb1329274bee2bd89fd432d;hb=d56384f9b6c88bab666162a0f97d7e64f2b3951c;hp=2783e24087afdc38666504daa59124f0d74c682d;hpb=ad0f7c6c7b5c204fd0ebbddc57e05079e93a9530;p=plomrogue2 diff --git a/rogue_chat_curses.py b/rogue_chat_curses.py index 2783e24..420c858 100755 --- a/rogue_chat_curses.py +++ b/rogue_chat_curses.py @@ -27,6 +27,10 @@ mode_helps = { 'short': 'name thing', 'long': 'Give name to/change name of thing here.' }, + 'command_thing': { + 'short': 'command thing', + 'long': 'Enter a command to the thing you carry. Enter nothing to return to play mode.' + }, 'admin_thing_protect': { 'short': 'change thing protection', 'long': 'Change protection character for thing here.' @@ -151,6 +155,11 @@ def cmd_ADMIN_OK(game): game.tui.do_refresh = True cmd_ADMIN_OK.argtypes = '' +def cmd_REPLY(game, msg): + game.tui.log_msg('#MUSICPLAYER: ' + msg) + game.tui.do_refresh = True +cmd_REPLY.argtypes = 'string' + def cmd_CHAT(game, msg): game.tui.log_msg('# ' + msg) game.tui.do_refresh = True @@ -254,6 +263,7 @@ cmd_ANNOTATION.argtypes = 'yx_tuple:nonneg string' def cmd_TASKS(game, tasks_comma_separated): game.tasks = tasks_comma_separated.split(',') game.tui.mode_write.legal = 'WRITE' in game.tasks + game.tui.mode_command_thing.legal = 'COMMAND' in game.tasks cmd_TASKS.argtypes = 'string' def cmd_THING_TYPE(game, thing_type, symbol_hint): @@ -287,6 +297,7 @@ class Game(GameBase): self.register_command(cmd_ADMIN_OK) self.register_command(cmd_PONG) self.register_command(cmd_CHAT) + self.register_command(cmd_REPLY) self.register_command(cmd_PLAYER_ID) self.register_command(cmd_TURN) self.register_command(cmd_THING) @@ -385,13 +396,15 @@ class TUI: mode_post_login_wait = Mode('post_login_wait', is_intro=True) mode_password = Mode('password', has_input_prompt=True) mode_name_thing = Mode('name_thing', has_input_prompt=True, shows_info=True) + mode_command_thing = Mode('command_thing', has_input_prompt=True) is_admin = False tile_draw = False def __init__(self, host): import os import json - self.mode_play.available_modes = ["chat", "study", "edit", "admin_enter"] + self.mode_play.available_modes = ["chat", "study", "edit", "admin_enter", + "command_thing"] self.mode_play.available_actions = ["move", "take_thing", "drop_thing", "teleport", "door", "consume"] self.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"] @@ -429,6 +442,7 @@ class TUI: 'switch_to_edit': 'E', 'switch_to_write': 'm', 'switch_to_name_thing': 'N', + 'switch_to_command_thing': 'O', 'switch_to_admin_enter': 'A', 'switch_to_control_pw_type': 'C', 'switch_to_control_tile_type': 'Q', @@ -594,6 +608,8 @@ class TUI: self.send('LOGIN ' + quote(self.login_name)) else: self.log_msg('@ enter username') + elif self.mode.name == 'command_thing': + self.send('TASK:COMMAND ' + quote('HELP')) elif self.mode.name == 'admin_enter': self.log_msg('@ enter admin password:') elif self.mode.name == 'control_pw_type': @@ -898,6 +914,7 @@ class TUI: 'drop_thing': 'DROP', 'door': 'DOOR', 'move': 'MOVE', + 'command': 'COMMAND', 'consume': 'INTOXICATE', } @@ -960,6 +977,13 @@ class TUI: self.login_name = self.input_ self.send('LOGIN ' + quote(self.input_)) self.input_ = "" + elif self.mode.name == 'command_thing' and key == '\n': + if self.input_ == '': + self.log_msg('@ aborted') + self.switch_mode('play') + elif task_action_on('command'): + self.send('TASK:COMMAND ' + quote(self.input_)) + self.input_ = "" elif self.mode.name == 'control_pw_pw' and key == '\n': if self.input_ == '': self.log_msg('@ aborted')