summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/gdx/boardgame/boards
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2020-07-07 22:31:13 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2020-07-07 22:31:13 +0200
commit29704804a9e262aea91a0e1c2881628bab1fbb3e (patch)
tree404df44b8c177aff4125f8722f299728cd36d3d5 /core/src/ch/asynk/gdx/boardgame/boards
parent5d2e2ba668c29315129b2dfee9c4778bc1165717 (diff)
downloadgdx-boardgame-29704804a9e262aea91a0e1c2881628bab1fbb3e.zip
gdx-boardgame-29704804a9e262aea91a0e1c2881628bab1fbb3e.tar.gz
HexBoard : third Tile in diagonal move is always on the Board
Diffstat (limited to 'core/src/ch/asynk/gdx/boardgame/boards')
-rw-r--r--core/src/ch/asynk/gdx/boardgame/boards/HexBoard.java24
1 files changed, 10 insertions, 14 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/boards/HexBoard.java b/core/src/ch/asynk/gdx/boardgame/boards/HexBoard.java
index 4cb07f4..7ea7bad 100644
--- a/core/src/ch/asynk/gdx/boardgame/boards/HexBoard.java
+++ b/core/src/ch/asynk/gdx/boardgame/boards/HexBoard.java
@@ -410,21 +410,17 @@ public class HexBoard implements Board
else
x += dx; // diagonal
t = getTile(x, y);
- if (t.isOnBoard()) {
- tiles.add(t);
- t.blocked = (losBlocked || blocked == 0x03);
- if (t.blocked && !contact) {
- Orientation o = computeOrientation(dx, dy, flat);
- if (!losBlocked && blocked == 0x03)
- computeContact(from, to, o, t, v, false);
- else
- computeContact(from, to, o.opposite(), tiles.get(tiles.size() - 4), v, false);
- contact = true;
- }
- losBlocked = (t.blocked || t.blockLos(from, to, d, distance(x0, y0, x, y, Board.Geometry.EUCLIDEAN)));
- } else {
- losBlocked = true;
+ tiles.add(t);
+ t.blocked = (losBlocked || blocked == 0x03);
+ if (t.blocked && !contact) {
+ Orientation o = computeOrientation(dx, dy, flat);
+ if (!losBlocked && blocked == 0x03)
+ computeContact(from, to, o, t, v, false);
+ else
+ computeContact(from, to, o.opposite(), tiles.get(tiles.size() - 4), v, false);
+ contact = true;
}
+ losBlocked = (t.blocked || t.blockLos(from, to, d, distance(x0, y0, x, y, Board.Geometry.EUCLIDEAN)));
}
return tiles.get(tiles.size() - 1).blocked;