X-Git-Url: https://plomlompom.com/repos/unset_cookie?a=blobdiff_plain;f=rogue_chat.html;h=51e8078611bf510f5c4656f7724f3dfecaf643a0;hb=87b8e08add4c032f4f0aa7f07f4964719bbc4236;hp=1ba0ff1f6fcf02debf88eaefcc07b2c9e71c3d07;hpb=80814ef774cbdf10820001490aa45681af44056f;p=plomrogue2 diff --git a/rogue_chat.html b/rogue_chat.html index 1ba0ff1..51e8078 100644 --- a/rogue_chat.html +++ b/rogue_chat.html @@ -763,22 +763,26 @@ let tui = { return game.tasks.includes(this.action_tasks[action]); }, switch_mode: function(mode_name) { + + function fail(msg, return_mode) { + tui.log_msg('? ' + msg); + terminal.blink_screen(); + this.switch_mode(return_mode); + } + if (this.mode && this.mode.name == 'control_tile_draw') { tui.log_msg('@ finished tile protection drawing.') } this.tile_draw = false; if (mode_name == 'command_thing' && (!game.player.carrying || !game.player.carrying.commandable)) { - this.log_msg('? not carrying anything commandable'); - terminal.blink_screen(); - this.switch_mode('play'); - return; + return fail('not carrying anything commandable', 'play'); }; - if (mode_name == 'drop_thing' && (!game.player.carrying)) { - this.log_msg('? not carrying anything droppable'); - terminal.blink_screen(); - this.switch_mode('play'); - return; + if (mode_name == 'take_thing' && game.player.carrying) { + return fail('already carrying something', 'play'); + }; + if (mode_name == 'drop_thing' && !game.player.carrying) { + return fail('not carrying anything droppable', 'play'); } if (mode_name == 'admin_enter' && this.is_admin) { mode_name = 'admin'; @@ -796,9 +800,7 @@ let tui = { } } if (!thing_id) { - terminal.blink_screen(); - this.log_msg('? not standing over thing'); - return; + return fail('not standing over thing', 'fail'); } else { this.selected_thing_id = thing_id; }