X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=rogue_chat.html;h=212a1d637680f0d5753f81d863b55e6535e04871;hb=04fb13f0269b7d77ec178a797599c3d9a54061a6;hp=35dc5d4aa812e88907dcdc80348f12e04b0476f2;hpb=feb0ffb7c7523ddee0cbd685cbc9c2e768a56cbd;p=plomrogue2 diff --git a/rogue_chat.html b/rogue_chat.html index 35dc5d4..212a1d6 100644 --- a/rogue_chat.html +++ b/rogue_chat.html @@ -16,7 +16,7 @@ terminal rows:

-
+
 

button controls for hard-to-remember keybindings

@@ -861,29 +861,45 @@ let tui = { this.log_msg("Portable things in reach for pick-up:"); const y = game.player.position[0] const x = game.player.position[1] - let select_range = [y.toString() + ':' + x.toString(), - (y + 0).toString() + ':' + (x - 1).toString(), - (y + 0).toString() + ':' + (x + 1).toString(), - (y - 1).toString() + ':' + (x).toString(), - (y + 1).toString() + ':' + (x).toString()]; - if (game.map_geometry == 'Hex') { + let directed_moves = { + 'HERE': [0, 0], 'LEFT': [0, -1], 'RIGHT': [0, 1] + } + if (game.map_geometry == 'Square') { + directed_moves['UP'] = [-1, 0]; + directed_moves['DOWN'] = [1, 0]; + } else if (game.map_geometry == 'Hex') { if (y % 2) { - select_range.push((y - 1).toString() + ':' + (x + 1).toString()); - select_range.push((y + 1).toString() + ':' + (x + 1).toString()); + directed_moves['UPLEFT'] = [-1, 0]; + directed_moves['UPRIGHT'] = [-1, 1]; + directed_moves['DOWNLEFT'] = [1, 0]; + directed_moves['DOWNRIGHT'] = [1, 1]; } else { - select_range.push((y - 1).toString() + ':' + (x - 1).toString()); - select_range.push((y + 1).toString() + ':' + (x - 1).toString()); + directed_moves['UPLEFT'] = [-1, -1]; + directed_moves['UPRIGHT'] = [-1, 0]; + directed_moves['DOWNLEFT'] = [1, -1]; + directed_moves['DOWNRIGHT'] = [1, 0]; } - }; + } + console.log(directed_moves); + let select_range = {}; + for (const direction in directed_moves) { + const move = directed_moves[direction]; + select_range[direction] = [y + move[0], x + move[1]]; + } this.selectables = []; - for (const t_id in game.things) { - const t = game.things[t_id]; - if (select_range.includes(t.position[0].toString() - + ':' + t.position[1].toString()) - && t.portable) { - this.selectables.push(t_id); + let directions = []; + for (const direction in select_range) { + for (const t_id in game.things) { + const t = game.things[t_id]; + const position = select_range[direction]; + if (t.portable + && t.position[0] == position[0] + && t.position[1] == position[1]) { + this.selectables.push(t_id); + directions.push(direction); + } } - }; + } if (this.selectables.length == 0) { this.log_msg('none'); terminal.blink_screen(); @@ -892,7 +908,8 @@ let tui = { } else { for (let [i, t_id] of this.selectables.entries()) { const t = game.things[t_id]; - this.log_msg(i + ': ' + explorer.get_thing_info(t)); + const direction = directions[i]; + this.log_msg(i + ' ' + direction + ': ' + explorer.get_thing_info(t)); } } } else if (this.mode.name == 'drop_thing') { @@ -969,10 +986,11 @@ let tui = { }; inner_links[y].push([url_start_x, end_x, url]); }; - const matches = msg.matchAll(/https?:\/\/[^\s]+/g) let link_data = {}; let url_ends = []; - for (const match of matches) { + const regexp = RegExp('https?://[^\\s]+', 'g'); + let match; + while ((match = regexp.exec(msg)) !== null) { const url = match[0]; const url_start = match.index; const url_end = match.index + match[0].length;