hex_move_upleft: <input id="key_hex_move_upleft" type="text" value="w" /><br />
hex_move_upright: <input id="key_hex_move_upright" type="text" value="e" /><br />
hex_move_right: <input id="key_hex_move_right" type="text" value="d" /><br />
-hex_move_downright: <input id="key_hex_move_downright" type="text" value="c" /><br />
-hex_move_downleft: <input id="key_hex_move_downleft" type="text" value="x" /><br />
-hex_move_left: <input id="key_hex_move_left" type="text" value="s" /><br />
-flatten_: <input id="key_flatten" type="text" value="f" /><br />
-switch_to_chat: <input id="key_switch_to_chat" type="text" value="C" /><br />
-switch_to_play: <input id="key_switch_to_play" type="text" value="P" /><br />
-switch_to_annotate: <input id="key_switch_to_annotate" type="text" value="E" /><br />
-switch_to_portal: <input id="key_switch_to_portal" type="text" value="p" /><br />
+hex_move_downright: <input id="key_hex_move_downright" type="text" value="x" /><br />
+hex_move_downleft: <input id="key_hex_move_downleft" type="text" value="y" /><br />
+hex_move_left: <input id="key_hex_move_left" type="text" value="a" /><br />
+flatten_: <input id="key_flatten" type="text" value="F" /><br />
+switch_to_chat: <input id="key_switch_to_chat" type="text" value="t" /><br />
+switch_to_play: <input id="key_switch_to_play" type="text" value="p" /><br />
+switch_to_annotate: <input id="key_switch_to_annotate" type="text" value="m" /><br />
+switch_to_portal: <input id="key_switch_to_portal" type="text" value="P" /><br />
switch_to_study: <input id="key_switch_to_study" type="text" value="?" /><br />
-switch_to_edit: <input id="key_switch_to_edit" type="text" value="E" /><br />
+switch_to_edit: <input id="key_switch_to_edit" type="text" value="m" /><br />
</div>
<script>
"use strict";
let rows_selector = document.getElementById("n_rows");
let cols_selector = document.getElementById("n_cols");
-let key_switch_to_chat_selector = document.getElementById("key_switch_to_chat");
-let key_switch_to_play_selector = document.getElementById("key_switch_to_play");
-let key_switch_to_annotate_selector = document.getElementById("key_switch_to_annotate");
-let key_switch_to_portal_selector = document.getElementById("key_switch_to_portal");
-let key_switch_to_study_selector = document.getElementById("key_switch_to_study");
-let key_switch_to_edit_selector = document.getElementById("key_switch_to_edit");
-let key_flatten_selector = document.getElementById("key_flatten");
-let key_hex_move_upleft_selector = document.getElementById("key_hex_move_upleft");
-let key_hex_move_upright_selector = document.getElementById("key_hex_move_upright");
-let key_hex_move_right_selector = document.getElementById("key_hex_move_right");
-let key_hex_move_downright_selector = document.getElementById("key_hex_move_downright");
-let key_hex_move_downleft_selector = document.getElementById("key_hex_move_downleft");
-let key_hex_move_left_selector = document.getElementById("key_hex_move_left");
-let key_square_move_up_selector = document.getElementById("key_square_move_up");
-let key_square_move_left_selector = document.getElementById("key_square_move_left");
-let key_square_move_down_selector = document.getElementById("key_square_move_down");
-let key_square_move_right_selector = document.getElementById("key_square_move_right");
+let key_selectors = document.querySelectorAll('[id^="key_"]');
+
+function restore_selector_value(selector) {
+ let stored_selection = window.localStorage.getItem(selector.id);
+ if (stored_selection) {
+ selector.value = stored_selection;
+ }
+}
+restore_selector_value(rows_selector);
+restore_selector_value(cols_selector);
+for (let key_selector of key_selectors) {
+ restore_selector_value(key_selector);
+}
let terminal = {
foreground: 'white',
tui.log_msg("@ server disconnected :(");
tui.log_msg("@ hint: try the '/reconnect' command");
};
- this.websocket.onmessage = this.handle_event;
- },
+ this.websocket.onmessage = this.handle_event;
+ },
reconnect: function() {
- this.reconnect_to(this.url);
+ this.reconnect_to(this.url);
},
reconnect_to: function(url) {
this.websocket.close();
this.init_keys();
},
init_keys: function() {
- this.keys = {
- switch_to_chat: key_switch_to_chat_selector.value,
- switch_to_play: key_switch_to_play_selector.value,
- switch_to_annotate: key_switch_to_annotate_selector.value,
- switch_to_portal: key_switch_to_portal_selector.value,
- switch_to_study: key_switch_to_study_selector.value,
- switch_to_edit: key_switch_to_edit_selector.value,
- flatten: key_flatten_selector.value,
- hex_move_upleft: key_hex_move_upleft_selector.value,
- hex_move_upright: key_hex_move_upright_selector.value,
- hex_move_right: key_hex_move_right_selector.value,
- hex_move_downright: key_hex_move_downright_selector.value,
- hex_move_downleft: key_hex_move_downleft_selector.value,
- hex_move_left: key_hex_move_left_selector.value,
- square_move_up: key_square_move_up_selector.value,
- square_move_left: key_square_move_left_selector.value,
- square_move_down: key_square_move_down_selector.value,
- square_move_right: key_square_move_right_selector.value,
+ this.keys = {};
+ for (let key_selector of key_selectors) {
+ this.keys[key_selector.id.slice(4)] = key_selector.value;
}
if (game.map_geometry == 'Square') {
this.movement_keys = {
this.log_msg(" /nick NAME - re-name yourself to NAME");
this.log_msg(" /msg USER TEXT - send TEXT to USER");
this.log_msg(" /help - show this help");
- this.log_msg(" /P or /play - switch to play mode");
- this.log_msg(" /? or /study - switch to study mode");
+ this.log_msg(" /" + this.keys.switch_to_play + " or /play - switch to play mode");
+ this.log_msg(" /" + this.keys.switch_to_study + " or /study - switch to study mode");
this.log_msg("commands common to study and play mode:");
this.log_msg(" " + movement_keys_desc + " - move");
this.log_msg(" " + this.keys.switch_to_chat + " - switch to chat mode");
if (rows_selector.value % 4 != 0) {
return;
}
+ window.localStorage.setItem(rows_selector.id, rows_selector.value);
terminal.initialize();
tui.full_refresh();
}, false);
if (cols_selector.value % 4 != 0) {
return;
}
+ window.localStorage.setItem(cols_selector.id, cols_selector.value);
terminal.initialize();
tui.window_width = terminal.cols / 2,
tui.full_refresh();
}, false);
-key_switch_to_chat_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_switch_to_play_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_switch_to_annotate_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_switch_to_portal_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_switch_to_study_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_switch_to_edit_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_flatten_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_upleft_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_upright_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_right_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_downright_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_downleft_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_hex_move_left_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_square_move_up_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_square_move_left_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_square_move_down_selector.addEventListener('input', function() { tui.init_keys(); }, false);
-key_square_move_right_selector.addEventListener('input', function() { tui.init_keys(); }, false);
+for (let key_selector of key_selectors) {
+ key_selector.addEventListener('input', function() {
+ window.localStorage.setItem(key_selector.id, key_selector.value);
+ tui.init_keys();
+ }, false);
+}
window.setInterval(function() {
- if (!(['input', 'n_cols', 'n_rows',
- 'key_switch_to_chat',
- 'key_switch_to_play',
- 'key_switch_to_annotate',
- 'key_switch_to_portal',
- 'key_switch_to_study',
- 'key_switch_to_edit',
- 'key_flatten',
- 'key_hex_move_upleft',
- 'key_hex_move_upright',
- 'key_hex_move_right',
- 'key_hex_move_downright',
- 'key_hex_move_downleft',
- 'key_hex_move_left',
- 'key_square_move_up',
- 'key_square_move_left',
- 'key_square_move_down',
- 'key_square_move_right',].includes(document.activeElement.id))) {
+ if (!(['input', 'n_cols', 'n_rows'].includes(document.activeElement.id)
+ || document.activeElement.id.startsWith('key_'))) {
tui.inputEl.focus();
}
}, 100);