<button id="switch_to_drop_thing"></button>
<button id="door"></button>
<button id="consume"></button>
+ <button id="dance"></button>
<button id="switch_to_command_thing"></button>
<button id="teleport"></button>
<button id="wear"></button>
<li>flatten surroundings: <input id="key_flatten" type="text" value="F" />
<li>teleport: <input id="key_teleport" type="text" value="p" />
<li>spin: <input id="key_spin" type="text" value="S" />
+<li>dance: <input id="key_dance" type="text" value="T" />
<li>open/close: <input id="key_door" type="text" value="D" />
<li>consume: <input id="key_consume" type="text" value="C" />
<li>install: <input id="key_install" type="text" value="I" />
'install': '(un-)install',
'wear': '(un-)wear',
'spin': 'spin',
+ 'dance': 'dance',
'toggle_map_mode': 'toggle map view',
'toggle_tile_draw': 'toggle protection character drawing',
'hex_move_upleft': 'up-left',
'command': 'COMMAND',
'consume': 'INTOXICATE',
'spin': 'SPIN',
+ 'dance': 'DANCE',
},
offset: [0,0],
map_lines: [],
this.mode_play.available_modes = ["chat", "study", "edit", "admin_enter",
"command_thing", "take_thing", "drop_thing"]
this.mode_play.available_actions = ["move", "teleport", "door", "consume",
- "wear", "spin"];
+ "wear", "spin", "dance"];
this.mode_study.available_modes = ["chat", "play", "admin_enter", "edit"]
this.mode_study.available_actions = ["toggle_map_mode", "move_explorer"];
this.mode_admin.available_modes = ["admin_thing_protect", "control_pw_type",
"control_tile_type", "chat",
"study", "play", "edit"]
- this.mode_admin.available_actions = ["move"];
+ this.mode_admin.available_actions = ["move", "toggle_map_mode"];
this.mode_control_tile_draw.available_modes = ["admin_enter"]
this.mode_control_tile_draw.available_actions = ["toggle_tile_draw"];
this.mode_edit.available_modes = ["write", "annotate", "portal", "name_thing",
|| !game.player.carrying.commandable)) {
return fail('not carrying anything commandable');
} else if (mode_name == 'name_thing' && !game.player.carrying) {
- return fail('not carrying anything to re-name');
+ return fail('not carrying anything to re-name', 'edit');
} else if (mode_name == 'admin_thing_protect' && !game.player.carrying) {
return fail('not carrying anything to protect')
} else if (mode_name == 'take_thing' && game.player.carrying) {
this.switch_mode('play');
},
enter_ascii_art: function(command) {
- if (this.inputEl.value.length != 6) {
- this.log_msg('? wrong input length, must be 6; try again');
+ if (this.inputEl.value.length > 6) {
+ this.log_msg('? wrong input length, must be max 6; try again');
return;
+ } else if (this.inputEl.value.length < 6) {
+ while (this.inputEl.value.length < 6) {
+ this.inputEl.value += ' ';
+ }
}
this.log_msg(' ' + this.inputEl.value);
this.full_ascii_draw += this.inputEl.value;
server.send(["TASK:WEAR"]);
} else if (event.key === tui.keys.spin && tui.task_action_on('spin')) {
server.send(["TASK:SPIN"]);
+ } else if (event.key === tui.keys.dance && tui.task_action_on('dance')) {
+ server.send(["TASK:DANCE"]);
} else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
} else if (event.key === tui.keys.teleport) {
} else if (tui.mode.name == 'admin') {
if (tui.mode.mode_switch_on_key(event)) {
null;
+ } else if (event.key == tui.keys.toggle_map_mode) {
+ tui.toggle_map_mode();
} else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
};
}, 1000);
window.setInterval(function() {
if (document.activeElement.tagName.toLowerCase() != 'input') {
+ const scroll_x = window.scrollX;
+ const scroll_y = window.scrollY;
tui.inputEl.focus();
+ window.scrollTo(scroll_x, scroll_y);
};
}, 100);
document.getElementById("help").onclick = function() {
document.getElementById("spin").onclick = function() {
server.send(['TASK:SPIN']);
};
+document.getElementById("dance").onclick = function() {
+ server.send(['TASK:DANCE']);
+};
document.getElementById("teleport").onclick = function() {
game.teleport();
};