X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=rogue_chat.html;h=0a70962a0d72e30218980101b90ecea16736789d;hb=c0aba691859793c07e9d17c7494af36013f046c0;hp=3825581359fa615777a3a6709479eb8ccbe593bf;hpb=33adc215597b0fd7553661891a3c84ce16f1955e;p=plomrogue2 diff --git a/rogue_chat.html b/rogue_chat.html index 3825581..0a70962 100644 --- a/rogue_chat.html +++ b/rogue_chat.html @@ -22,58 +22,60 @@ keyboard input/control:

button controls for mouse players

- - - + + + - + - + - - - + + +
move
- + - + - - + - + - + - + @@ -95,6 +97,8 @@ keyboard input/control:
  • teleport:
  • pick up thing:
  • drop thing: +
  • open/close: +
  • consume:
  • @@ -200,6 +204,8 @@ let key_descriptions = { 'teleport': 'teleport', 'take_thing': 'pick up thing', 'drop_thing': 'drop thing', + 'door': 'open/close', + 'consume': 'consume', 'toggle_map_mode': 'toggle map view', 'toggle_tile_draw': 'toggle protection character drawing', 'hex_move_upleft': 'up-left', @@ -248,14 +254,12 @@ function escapeHTML(str) { }; let terminal = { - foreground: 'white', - background: 'black', initialize: function() { this.rows = rows_selector.value; this.cols = cols_selector.value; this.pre_el = document.getElementById("terminal"); - this.pre_el.style.color = this.foreground; - this.pre_el.style.backgroundColor = this.background; + this.set_default_colors(); + this.apply_colors(); this.content = []; let line = [] for (let y = 0, x = 0; y <= this.rows; x++) { @@ -271,6 +275,23 @@ let terminal = { line.push(' '); } }, + apply_colors: function() { + this.pre_el.style.color = this.foreground; + this.pre_el.style.backgroundColor = this.background; + }, + set_default_colors: function() { + this.foreground = 'white'; + this.background = 'black'; + this.apply_colors(); + }, + set_random_colors: function() { + function rand(offset) { + return Math.floor(offset + Math.random() * 96).toString(16).padStart(2, '0'); + } + this.foreground = '#' + rand(159) + rand(159) + rand(159); + this.background = '#' + rand(0) + rand(0) + rand(0); + this.apply_colors(); + }, blink_screen: function() { this.pre_el.style.color = this.background; this.pre_el.style.backgroundColor = this.foreground; @@ -427,7 +448,7 @@ let server = { } else if (tokens[0] === 'THING_CHAR') { let t = game.get_thing(tokens[1], false); if (t) { - t.player_char = tokens[2]; + t.thing_char = tokens[2]; }; } else if (tokens[0] === 'TASKS') { game.tasks = tokens[1].split(','); @@ -460,6 +481,10 @@ let server = { } else if (tokens[0] === 'LOGIN_OK') { this.send(['GET_GAMESTATE']); tui.switch_mode('post_login_wait'); + } else if (tokens[0] === 'DEFAULT_COLORS') { + terminal.set_default_colors(); + } else if (tokens[0] === 'RANDOM_COLORS') { + terminal.set_random_colors(); } else if (tokens[0] === 'ADMIN_OK') { tui.is_admin = true; tui.log_msg('@ you now have admin rights'); @@ -599,11 +624,14 @@ let tui = { 'take_thing': 'PICK_UP', 'drop_thing': 'DROP', 'move': 'MOVE', + 'door': 'DOOR', + 'consume': 'INTOXICATE', }, init: function() { this.mode_chat.available_modes = ["play", "study", "edit", "admin_enter"] this.mode_play.available_modes = ["chat", "study", "edit", "admin_enter"] - this.mode_play.available_actions = ["move", "take_thing", "drop_thing", "teleport"]; + this.mode_play.available_actions = ["move", "take_thing", "drop_thing", + "teleport", "door", "consume"]; 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", @@ -643,6 +671,9 @@ let tui = { } }; for (const move_button of document.querySelectorAll('[id*="_move_"]')) { + if (move_button.id.startsWith('key_')) { + continue; + } move_button.hidden = true; }; for (const move_button of document.querySelectorAll('[id^="' + geometry_prefix + 'move_"]')) { @@ -888,8 +919,8 @@ let tui = { let t = game.things[thing_id]; let symbol = game.thing_types[t.type_]; let meta_char = ' '; - if (t.player_char) { - meta_char = t.player_char; + if (t.thing_char) { + meta_char = t.thing_char; } if (used_positions.includes(t.position.toString())) { meta_char = '+'; @@ -1219,16 +1250,16 @@ let explorer = { let symbol = game.thing_types[t.type_]; let protection = t.protection; if (protection == '.') { - protection = 'unprotected'; + protection = 'none'; } - info += "THING: " + t.type_ + " / protection: " + protection + " / " + symbol; - if (t.player_char) { - info += t.player_char; + info += "THING: " + t.type_ + " / " + symbol; + if (t.thing_char) { + info += t.thing_char; }; if (t.name_) { info += " (" + t.name_ + ")"; } - info += "\n"; + info += " / protection: " + protection + "\n"; } } if (this.position in game.portals) { @@ -1379,6 +1410,10 @@ tui.inputEl.addEventListener('keydown', (event) => { server.send(["TASK:PICK_UP"]); } else if (event.key === tui.keys.drop_thing && tui.task_action_on('drop_thing')) { server.send(["TASK:DROP"]); + } else if (event.key === tui.keys.consume && tui.task_action_on('consume')) { + server.send(["TASK:INTOXICATE"]); + } else if (event.key === tui.keys.door && tui.task_action_on('door')) { + server.send(["TASK:DOOR"]); } 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) { @@ -1495,6 +1530,12 @@ document.getElementById("drop_thing").onclick = function() { document.getElementById("flatten").onclick = function() { server.send(['TASK:FLATTEN_SURROUNDINGS', tui.password]); }; +document.getElementById("door").onclick = function() { + server.send(['TASK:DOOR']); +}; +document.getElementById("consume").onclick = function() { + server.send(['TASK:INTOXICATE']); +}; document.getElementById("teleport").onclick = function() { game.teleport(); };


  • +
    - - - + + + + +
    - - - - - - + + + + + +
    - - - - + + + +