X-Git-Url: https://plomlompom.com/repos/unset_cookie?a=blobdiff_plain;f=new2%2Frogue_chat_nocanvas_monochrome.html;h=b81dcb12e303b36d0974142f31e6cc247aab03a3;hb=95ea4ca4ac0d5bd1c18d60087619f4df898ed6a7;hp=bb4c771c7cd8eae9dd54605d268fc913679a2fed;hpb=1fcb132eabcaa1a95bf2b527dc18c92c15016d2a;p=plomrogue2-experiments
diff --git a/new2/rogue_chat_nocanvas_monochrome.html b/new2/rogue_chat_nocanvas_monochrome.html
index bb4c771..b81dcb1 100644
--- a/new2/rogue_chat_nocanvas_monochrome.html
+++ b/new2/rogue_chat_nocanvas_monochrome.html
@@ -5,12 +5,11 @@
movement:
-rows:
+rows:
cols:
-command character:
@@ -24,7 +23,6 @@ let websocket_location = "ws://localhost:8000";
let movement_keys_selector = document.getElementById("movement_keys");
let rows_selector = document.getElementById("n_rows");
let cols_selector = document.getElementById("n_cols");
-let command_char_selector = document.getElementById("command_char");
let terminal = {
foreground: 'white',
@@ -151,11 +149,11 @@ let server = {
this.websocket.onopen = function(event) {
window.setInterval(function() { server.send(['PING']) }, 30000);
tui.log_msg("@ server connected! :)");
- tui.init_login();
+ tui.switch_mode(mode_login);
};
this.websocket.onclose = function(event) {
tui.log_msg("@ server disconnected :(");
- tui.log_msg("@ hint: try the '" + command_char_selector.value + "reconnect' command");
+ tui.log_msg("@ hint: try the '/reconnect' command");
};
this.websocket.onmessage = this.handle_event;
},
@@ -271,7 +269,7 @@ let mode_annotate = new Mode('add message to map tile', true, true);
let mode_play = new Mode('play / move around', false, false);
let mode_study = new Mode('check map tiles for messages', false, true);
let mode_edit = new Mode('write ASCII char to map tile', false, false);
-let mode_teleport = new Mode('teleport away?');
+let mode_teleport = new Mode('teleport away?', true);
let mode_portal = new Mode('add portal to map tile', true, true);
let tui = {
@@ -335,10 +333,6 @@ let tui = {
};
};
},
- init_login: function() {
- this.log_msg("@ please enter your username:");
- this.switch_mode(mode_login);
- },
switch_mode: function(mode, keep_pos=false) {
if (mode == mode_study && !keep_pos && game.player_id in game.things) {
explorer.position = game.things[game.player_id].position;
@@ -352,13 +346,19 @@ let tui = {
this.recalc_input_lines();
}
}
- if (mode == mode_portal && explorer.position in game.portals) {
+ if (mode == mode_login) {
+ if (this.login_name) {
+ server.send(['LOGIN', this.login_name]);
+ } else {
+ this.log_msg("? need login name");
+ }
+ } else if (mode == mode_portal && explorer.position in game.portals) {
let portal = game.portals[explorer.position]
- this.inputEl.value = portal;
- this.recalc_input_lines();
+ this.inputEl.value = portal;
+ this.recalc_input_lines();
} else if (mode == mode_teleport) {
tui.log_msg("@ May teleport to: " + tui.teleport_target);
- tui.log_msg("@ Type Y or y to affirm, other keys to abort.");
+ tui.log_msg("@ Enter 'YES!' to entusiastically affirm.");
}
this.full_refresh();
},
@@ -400,11 +400,11 @@ let tui = {
log_help: function() {
this.log_msg("HELP:");
this.log_msg("chat mode commands:");
- this.log_msg(" " + command_char_selector.value + "nick NAME - re-name yourself to NAME");
- this.log_msg(" " + command_char_selector.value + "msg USER TEXT - send TEXT to USER");
- this.log_msg(" " + command_char_selector.value + "help - show this help");
- this.log_msg(" " + command_char_selector.value + "p or " + command_char_selector.value + "play - switch to play mode");
- this.log_msg(" " + command_char_selector.value + "? or " + command_char_selector.value + "study - switch to study mode");
+ 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("commands common to study and play mode:");
this.log_msg(" " + this.movement_keys_desc + " - move");
this.log_msg(" C - switch to chat mode");
@@ -438,7 +438,7 @@ let tui = {
let map_lines = []
if (game.map_geometry == 'Square') {
for (let line_split of map_lines_split) {
- map_lines.push(line_split.join(''));
+ map_lines.push(line_split.join(' '));
};
} else if (game.map_geometry == 'Hex') {
let indent = 0
@@ -457,9 +457,7 @@ let tui = {
if (tui.mode.shows_info) {
center_position = [explorer.position[0], explorer.position[1]];
}
- if (game.map_geometry == 'Hex') {
- center_position[1] = center_position[1] * 2;
- };
+ center_position[1] = center_position[1] * 2;
let offset = [center_position[0] - window_center[0],
center_position[1] - window_center[1]]
if (game.map_geometry == 'Hex' && offset[0] % 2) {
@@ -685,19 +683,27 @@ tui.inputEl.addEventListener('keydown', (event) => {
event.preventDefault();
}
if (tui.mode == mode_login && event.key == 'Enter') {
+ tui.login_name = tui.inputEl.value;
server.send(['LOGIN', tui.inputEl.value]);
- tui.switch_mode(mode_login);
+ tui.empty_input();
} else if (tui.mode == mode_portal && event.key == 'Enter') {
explorer.set_portal(tui.inputEl.value);
tui.switch_mode(mode_study, true);
} else if (tui.mode == mode_annotate && event.key == 'Enter') {
explorer.annotate(tui.inputEl.value);
tui.switch_mode(mode_study, true);
+ } else if (tui.mode == mode_teleport && event.key == 'Enter') {
+ if (tui.inputEl.value == 'YES!') {
+ server.reconnect_to(tui.teleport_target);
+ } else {
+ tui.log_msg('@ teleport aborted');
+ tui.switch_mode(mode_play);
+ };
} else if (tui.mode == mode_chat && event.key == 'Enter') {
let [tokens, token_starts] = parser.tokenize(tui.inputEl.value);
if (tokens.length > 0 && tokens[0].length > 0) {
- if (tui.inputEl.value[0][0] == command_char_selector.value) {
- if (tokens[0].slice(1) == 'play' || tokens[0].slice(1) == 'p') {
+ if (tui.inputEl.value[0][0] == '/') {
+ if (tokens[0].slice(1) == 'play' || tokens[0].slice(1) == 'P') {
tui.switch_mode(mode_play);
} else if (tokens[0].slice(1) == 'study' || tokens[0].slice(1) == '?') {
tui.switch_mode(mode_study);
@@ -771,7 +777,7 @@ movement_keys_selector.addEventListener('input', function() {
tui.init_wasd();
}, false);
rows_selector.addEventListener('input', function() {
- if (rows_selector.value % 2 != 0) {
+ if (rows_selector.value % 4 != 0) {
return;
}
terminal.initialize();
@@ -786,7 +792,7 @@ cols_selector.addEventListener('input', function() {
tui.full_refresh();
}, false);
window.setInterval(function() {
- if (!(['input', 'n_cols', 'n_rows', 'movement_keys', 'command_char'].includes(document.activeElement.id))) {
+ if (!(['input', 'n_cols', 'n_rows', 'movement_keys'].includes(document.activeElement.id))) {
tui.inputEl.focus();
}
}, 100);