} 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]);
}