diff options
Diffstat (limited to 'core/src/ch/asynk/tankontank/game')
-rw-r--r-- | core/src/ch/asynk/tankontank/game/Map.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index 0406b6d..5a5f5b0 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -2,7 +2,9 @@ package ch.asynk.tankontank.game; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.GridPoint2; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import ch.asynk.tankontank.engine.Board; import ch.asynk.tankontank.engine.Pawn; @@ -15,6 +17,9 @@ public abstract class Map extends Board private Pawn currentPawn; private GridPoint2 currentHex = new GridPoint2(-1, -1); + private GridPoint2 lineHex = new GridPoint2(-1, -1); + private Vector2 line0 = new Vector2(0, 0); + private Vector2 line1 = new Vector2(0, 0); protected abstract void setup(); @@ -42,6 +47,7 @@ public abstract class Map extends Board if (currentHex.x != -1) { currentPawn = removeTopPawnFrom(currentHex); if (currentPawn != null) pawnsToDraw.add(currentPawn); + line0 = getTileCenter(currentHex.x, currentHex.y); } } @@ -71,6 +77,25 @@ public abstract class Map extends Board enableOverlayOn(hex.x, hex.y, Hex.RED, true); } + public void lineOfSight(float x, float y) + { + getHexAt(lineHex, x, y); + line1 = getTileCenter(lineHex.x, lineHex.y); + + for(GridPoint2 hex : areaPoints) + enableOverlayOn(hex.x, hex.y, Hex.RED, false); + + for(GridPoint2 hex : lineOfSight(currentHex.x, currentHex.y, lineHex.x, lineHex.y)) + enableOverlayOn(hex.x, hex.y, Hex.RED, true); + } + + @Override + public void drawDebug(ShapeRenderer debugShapes) + { + super.drawDebug(debugShapes); + debugShapes.line(line0.x, line0.y, line1.x, line1.y); + } + private void debugMap() { int o = Hex.FOG; |