home · contact · privacy
Enable picking up from neighbbor tiles.
[plomrogue2] / rogue_chat.html
index 0e20ebca41b1bc563a7bc3481247b557fd4ad8ed..0df4e6ceba8aff655a58dda546ecf4b5be3b0713 100644 (file)
@@ -803,11 +803,27 @@ let tui = {
     } else if (this.mode.name == 'take_thing') {
         this.log_msg("selectable things:");
         const player = game.things[game.player_id];
+        const y = player.position[0]
+        const x = 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') {
+            if (y % 2) {
+                select_range.push((y - 1).toString() + ':' + (x + 1).toString());
+                select_range.push((y + 1).toString() + ':' + (x + 1).toString());
+            } else {
+                select_range.push((y - 1).toString() + ':' + (x - 1).toString());
+                select_range.push((y + 1).toString() + ':' + (x - 1).toString());
+            }
+        };
         this.selectables = [];
         for (const t_id in game.things) {
             const t = game.things[t_id];
-            if (t.position[0] == player.position[0]
-                && t.position[1] == player.position[1]
+            if (select_range.includes(t.position[0].toString()
+                                      + ':' + t.position[1].toString())
                 && t != player && t.type_ != 'Player') {
                 this.selectables.push([t_id, t]);
             }