X-Git-Url: https://plomlompom.com/repos/day_todos?a=blobdiff_plain;f=rogue_chat.html;h=dfeeecdba69e2570d88c4ea1f08fafa512b2c14e;hb=c7a3af00680ba0449310bbb7336a187dd4ed6bcf;hp=f7a97ec11325cebb6faf66a769209fceea5aae0e;hpb=d13e2f639316c1dba7a62d84f3c850bc937c2b1e;p=plomrogue2 diff --git a/rogue_chat.html b/rogue_chat.html index f7a97ec..dfeeecd 100644 --- a/rogue_chat.html +++ b/rogue_chat.html @@ -69,6 +69,7 @@ keyboard input/control: + @@ -101,6 +102,7 @@ keyboard input/control:
  • open/close:
  • consume:
  • install: +
  • @@ -160,6 +162,11 @@ let mode_helps = { 'intro': '@ enter thing protection character:', 'long': 'Change protection character for thing here.' }, + 'enter_face': { + 'short': 'enter your face', + 'intro': '@ enter face line (enter nothing to abort):', + 'long': 'Draw your face as ASCII art. The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..' + }, 'write': { 'short': 'change terrain', 'intro': '', @@ -477,14 +484,13 @@ let server = { t.portable = parseInt(tokens[5]); } else if (tokens[0] === 'THING_NAME') { let t = game.get_thing(tokens[1], false); - if (t) { - t.name_ = tokens[2]; - }; + t.name_ = tokens[2]; + } else if (tokens[0] === 'THING_FACE') { + let t = game.get_thing(tokens[1], false); + t.face = tokens[2]; } else if (tokens[0] === 'THING_CHAR') { let t = game.get_thing(tokens[1], false); - if (t) { - t.thing_char = tokens[2]; - }; + t.thing_char = tokens[2]; } else if (tokens[0] === 'TASKS') { game.tasks = tokens[1].split(','); tui.mode_write.legal = game.tasks.includes('WRITE'); @@ -494,14 +500,10 @@ let server = { game.thing_types[tokens[1]] = tokens[2] } else if (tokens[0] === 'THING_CARRYING') { let t = game.get_thing(tokens[1], false); - if (t) { - t.carrying = true; - }; + t.carrying = true; } else if (tokens[0] === 'THING_INSTALLED') { let t = game.get_thing(tokens[1], false); - if (t) { - t.installed = true; - }; + t.installed = true; } else if (tokens[0] === 'TERRAIN') { game.terrains[tokens[1]] = tokens[2] } else if (tokens[0] === 'MAP') { @@ -662,6 +664,7 @@ let tui = { mode_name_thing: new Mode('name_thing', true, true), mode_command_thing: new Mode('command_thing', true), mode_take_thing: new Mode('take_thing', true), + mode_enter_face: new Mode('enter_face', true), mode_admin_enter: new Mode('admin_enter', true), mode_admin: new Mode('admin'), mode_control_pw_pw: new Mode('control_pw_pw', true), @@ -695,7 +698,7 @@ let tui = { this.mode_control_tile_draw.available_actions = ["toggle_tile_draw"]; this.mode_edit.available_modes = ["write", "annotate", "portal", "name_thing", "password", "chat", "study", "play", - "admin_enter"] + "admin_enter", "enter_face"] this.mode_edit.available_actions = ["move", "flatten", "toggle_map_mode"] this.inputEl = document.getElementById("input"); this.inputEl.focus(); @@ -1325,17 +1328,6 @@ let explorer = { if (game.fov[position_i] != '.') { info_to_cache += 'outside field of view'; } else { - let terrain_char = game.map[position_i] - let terrain_desc = '?' - if (game.terrains[terrain_char]) { - terrain_desc = game.terrains[terrain_char]; - }; - info_to_cache += 'TERRAIN: "' + terrain_char + '" / ' + terrain_desc + "\n"; - let protection = game.map_control[position_i]; - if (protection == '.') { - protection = 'unprotected'; - }; - info_to_cache += 'PROTECTION: ' + protection + '\n'; for (let t_id in game.things) { let t = game.things[t_id]; if (t.position[0] == this.position[0] && t.position[1] == this.position[1]) { @@ -1345,8 +1337,24 @@ let explorer = { protection = 'none'; } info_to_cache += " / protection: " + protection + "\n"; + if (t.face) { + info_to_cache += t.face.slice(0, 3) + '\n'; + info_to_cache += t.face.slice(3, 6) + '\n'; + info_to_cache += t.face.slice(6, 9) + '\n'; + } } } + let terrain_char = game.map[position_i] + let terrain_desc = '?' + if (game.terrains[terrain_char]) { + terrain_desc = game.terrains[terrain_char]; + }; + info_to_cache += 'TERRAIN: "' + terrain_char + '" / ' + terrain_desc + "\n"; + let protection = game.map_control[position_i]; + if (protection == '.') { + protection = 'unprotected'; + }; + info_to_cache += 'PROTECTION: ' + protection + '\n'; if (this.position in game.portals) { info_to_cache += "PORTAL: " + game.portals[this.position] + "\n"; } @@ -1427,6 +1435,14 @@ tui.inputEl.addEventListener('keydown', (event) => { tui.login_name = tui.inputEl.value; server.send(['LOGIN', tui.inputEl.value]); tui.inputEl.value = ""; + } else if (tui.mode.name == 'enter_face' && event.key == 'Enter') { + if (tui.inputEl.value.length != 9) { + tui.log_msg('? wrong input length, aborting'); + } else { + server.send(['PLAYER_FACE', tui.inputEl.value]); + } + tui.inputEl.value = ""; + tui.switch_mode('edit'); } else if (tui.mode.name == 'command_thing' && event.key == 'Enter') { if (tui.task_action_on('command')) { server.send(['TASK:COMMAND', tui.inputEl.value]);