X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/calendar?a=blobdiff_plain;ds=inline;f=rogue_chat.html;h=a09892dbc86576e8db2d437a29e22212e09508c2;hb=618cd58b293857779e6810ee9ca831a383822c66;hp=b9673a1320b1ad3eac182cefae95004690989413;hpb=96348254efb8e2ee17d597994ded663b5b036ade;p=plomrogue2
diff --git a/rogue_chat.html b/rogue_chat.html
index b9673a1..a09892d 100644
--- a/rogue_chat.html
+++ b/rogue_chat.html
@@ -16,7 +16,7 @@ terminal rows:
button controls for hard-to-remember keybindings
@@ -54,6 +54,7 @@ terminal rows:
+
@@ -101,6 +102,7 @@ terminal rows:
flatten surroundings:
teleport:
spin:
+dance:
open/close:
consume:
install:
@@ -262,6 +264,7 @@ let key_descriptions = {
'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',
@@ -485,11 +488,13 @@ let server = {
let tokens = parser.tokenize(event.data);
if (tokens[0] === 'TURN') {
game.turn_complete = false;
- game.turn = parseInt(tokens[1]);
} else if (tokens[0] === 'OTHER_WIPE') {
game.portals_new = {};
explorer.annotations_new = {};
game.things_new = [];
+ } else if (tokens[0] === 'STATS') {
+ game.bladder_pressure_new = parseInt(tokens[1])
+ game.energy_new = parseInt(tokens[2])
} else if (tokens[0] === 'THING') {
let t = game.get_thing_temp(tokens[4], true);
t.position = parser.parse_yx(tokens[1]);
@@ -546,6 +551,8 @@ let server = {
game.things = game.things_new;
game.player = game.things[game.player_id];
game.players_hat_chars = game.players_hat_chars_new;
+ game.bladder_pressure = game.bladder_pressure_new
+ game.energy = game.energy_new
game.turn_complete = true;
if (tui.mode.name == 'post_login_wait') {
tui.switch_mode('play');
@@ -566,6 +573,9 @@ let server = {
} else if (tokens[0] === 'LOGIN_OK') {
this.send(['GET_GAMESTATE']);
tui.switch_mode('post_login_wait');
+ tui.log_msg('@ welcome!')
+ tui.log_msg('@ hint: see top of terminal for how to get help.')
+ tui.log_msg('@ hint: enter study mode to understand your environment.')
} else if (tokens[0] === 'DEFAULT_COLORS') {
terminal.set_default_colors();
} else if (tokens[0] === 'RANDOM_COLORS') {
@@ -717,6 +727,7 @@ let tui = {
'command': 'COMMAND',
'consume': 'INTOXICATE',
'spin': 'SPIN',
+ 'dance': 'DANCE',
},
offset: [0,0],
map_lines: [],
@@ -728,7 +739,7 @@ let tui = {
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",
@@ -802,7 +813,7 @@ let tui = {
|| !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) {
@@ -1210,10 +1221,10 @@ let tui = {
}
terminal.write(0, this.window_width, 'MODE: ' + this.mode.short_desc + ' â ' + help);
},
- draw_turn_line: function(n) {
- if (game.turn_complete) {
- terminal.write(1, this.window_width, 'TURN: ' + game.turn);
- }
+ draw_stats_line: function(n) {
+ terminal.write(1, this.window_width,
+ 'ENERGY: ' + game.energy +
+ ' BLADDER: ' + game.bladder_pressure);
},
draw_history: function() {
let log_display_lines = [];
@@ -1328,7 +1339,7 @@ let tui = {
this.draw_input();
} else {
this.draw_map();
- this.draw_turn_line();
+ this.draw_stats_line();
this.draw_mode_line();
if (this.mode.shows_info) {
this.draw_info();
@@ -1368,6 +1379,8 @@ let game = {
this.portals = {};
this.portals_new = {};
this.players_hat_chars = "";
+ this.bladder_pressure = 0;
+ this.bladder_pressure_new = 0;
},
get_thing_temp: function(id_, create_if_not_found=false) {
if (id_ in game.things_new) {
@@ -1677,6 +1690,8 @@ tui.inputEl.addEventListener('keydown', (event) => {
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) {
@@ -1753,7 +1768,10 @@ window.setInterval(function() {
}, 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() {
@@ -1792,6 +1810,9 @@ document.getElementById("wear").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();
};