summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/ch/asynk/tankontank/engine/Army.java (renamed from core/src/ch/asynk/tankontank/game/Army.java)8
-rw-r--r--core/src/ch/asynk/tankontank/engine/HeadedPawn.java4
-rw-r--r--core/src/ch/asynk/tankontank/engine/Pawn.java15
-rw-r--r--core/src/ch/asynk/tankontank/game/Ctrl.java1
-rw-r--r--core/src/ch/asynk/tankontank/game/Factory.java1
-rw-r--r--core/src/ch/asynk/tankontank/game/Player.java3
-rw-r--r--core/src/ch/asynk/tankontank/game/Unit.java23
7 files changed, 30 insertions, 25 deletions
diff --git a/core/src/ch/asynk/tankontank/game/Army.java b/core/src/ch/asynk/tankontank/engine/Army.java
index 852dbe9..878fe89 100644
--- a/core/src/ch/asynk/tankontank/game/Army.java
+++ b/core/src/ch/asynk/tankontank/engine/Army.java
@@ -1,8 +1,12 @@
-package ch.asynk.tankontank.game;
+package ch.asynk.tankontank.engine;
public enum Army
{
- GE("German"), US("US");
+ GE("German"),
+ US("US"),
+ USSR("Soviet"),
+ EN("English");
+
private String s;
Army(String s) { this.s = s; }
diff --git a/core/src/ch/asynk/tankontank/engine/HeadedPawn.java b/core/src/ch/asynk/tankontank/engine/HeadedPawn.java
index a42f699..8965a6e 100644
--- a/core/src/ch/asynk/tankontank/engine/HeadedPawn.java
+++ b/core/src/ch/asynk/tankontank/engine/HeadedPawn.java
@@ -14,9 +14,9 @@ public abstract class HeadedPawn extends Pawn
private Image head;
protected Orientation orientation;
- public HeadedPawn(TextureAtlas atlas, String pawn, String head)
+ public HeadedPawn(Army army, TextureAtlas atlas, String pawn, String head)
{
- super(atlas, pawn);
+ super(army, atlas, pawn);
this.head = new Image(atlas.findRegion(head));
this.orientation = Orientation.KEEP;
this.descr += " " + orientation;
diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java
index 197fde4..f7bb830 100644
--- a/core/src/ch/asynk/tankontank/engine/Pawn.java
+++ b/core/src/ch/asynk/tankontank/engine/Pawn.java
@@ -34,6 +34,7 @@ public abstract class Pawn implements Moveable, Disposable
private Vector3 position = new Vector3(0f, 0f, 0f);
private Vector3 prevPosition = new Vector3(0f, 0f, 0f);
+ protected Army army;
protected String descr;
private Image image;
private StackedImages overlays;
@@ -48,7 +49,6 @@ public abstract class Pawn implements Moveable, Disposable
public abstract boolean isHq();
public abstract boolean isHqOf(Pawn other);
public abstract boolean isUnit();
- public abstract boolean isEnemy(Pawn other);
public abstract boolean canMove();
public abstract boolean canRotate();
@@ -67,8 +67,9 @@ public abstract class Pawn implements Moveable, Disposable
{
}
- public Pawn(TextureAtlas atlas, String name)
+ public Pawn(Army army, TextureAtlas atlas, String name)
{
+ this.army = army;
this.descr = descr;
this.image = new Image(atlas.findRegion(name));
this.overlays = new StackedImages(atlas);
@@ -86,6 +87,16 @@ public abstract class Pawn implements Moveable, Disposable
image.dispose();
}
+ public boolean isEnemy(Army other)
+ {
+ return army.isEnemy(other);
+ }
+
+ public boolean isEnemy(Pawn other)
+ {
+ return army.isEnemy(other.army);
+ }
+
public boolean isFlankAttack()
{
return (attack.isClear && attack.isFlank);
diff --git a/core/src/ch/asynk/tankontank/game/Ctrl.java b/core/src/ch/asynk/tankontank/game/Ctrl.java
index ca2ca64..2a8c99a 100644
--- a/core/src/ch/asynk/tankontank/game/Ctrl.java
+++ b/core/src/ch/asynk/tankontank/game/Ctrl.java
@@ -3,6 +3,7 @@ package ch.asynk.tankontank.game;
import com.badlogic.gdx.utils.Disposable;
import ch.asynk.tankontank.TankOnTank;
+import ch.asynk.tankontank.engine.Army;
import ch.asynk.tankontank.game.states.StateCommon;
import ch.asynk.tankontank.game.states.StateSelect;
import ch.asynk.tankontank.game.states.StateMove;
diff --git a/core/src/ch/asynk/tankontank/game/Factory.java b/core/src/ch/asynk/tankontank/game/Factory.java
index 86db346..fe0ffaa 100644
--- a/core/src/ch/asynk/tankontank/game/Factory.java
+++ b/core/src/ch/asynk/tankontank/game/Factory.java
@@ -9,6 +9,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.GridPoint2;
import ch.asynk.tankontank.TankOnTank;
+import ch.asynk.tankontank.engine.Army;
import ch.asynk.tankontank.engine.Board;
import ch.asynk.tankontank.engine.Orientation;
import ch.asynk.tankontank.game.Unit.UnitId;
diff --git a/core/src/ch/asynk/tankontank/game/Player.java b/core/src/ch/asynk/tankontank/game/Player.java
index 2dbc1b6..b9bba70 100644
--- a/core/src/ch/asynk/tankontank/game/Player.java
+++ b/core/src/ch/asynk/tankontank/game/Player.java
@@ -12,6 +12,7 @@ import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import ch.asynk.tankontank.TankOnTank;
+import ch.asynk.tankontank.engine.Army;
import ch.asynk.tankontank.engine.Pawn;
import ch.asynk.tankontank.engine.gfx.Image;
import ch.asynk.tankontank.engine.gfx.Drawable;
@@ -122,7 +123,7 @@ public class Player implements Drawable, Disposable
public boolean isEnemy(Pawn pawn)
{
- return ((Unit) pawn).isEnemy(army);
+ return pawn.isEnemy(army);
}
public boolean canPromote(Pawn pawn)
diff --git a/core/src/ch/asynk/tankontank/game/Unit.java b/core/src/ch/asynk/tankontank/game/Unit.java
index c33e721..ce652b2 100644
--- a/core/src/ch/asynk/tankontank/game/Unit.java
+++ b/core/src/ch/asynk/tankontank/game/Unit.java
@@ -3,6 +3,7 @@ package ch.asynk.tankontank.game;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
+import ch.asynk.tankontank.engine.Army;
import ch.asynk.tankontank.engine.Pawn;
import ch.asynk.tankontank.engine.Tile;
import ch.asynk.tankontank.engine.HeadedPawn;
@@ -51,20 +52,18 @@ public class Unit extends HeadedPawn
public int mp;
public UnitType type;
public UnitId id;
- public Army army;
private boolean hasMoved;
private boolean hasFired;
- protected Unit(TextureAtlas atlas, String pawn, String head)
+ protected Unit(Army army, TextureAtlas atlas, String pawn, String head)
{
- super(atlas, pawn, head);
+ super(army, atlas, pawn, head);
}
// hard tager
public Unit(Army army, UnitId id, UnitType type, int range, int defense, int movementPoints, TextureAtlas atlas, String unit, String head)
{
- super(atlas, unit, head);
- this.army = army;
+ super(army, atlas, unit, head);
this.rng = range;
this.def = defense;
this.mp = movementPoints;
@@ -78,8 +77,7 @@ public class Unit extends HeadedPawn
// soft tager
public Unit(Army army, UnitId id, UnitType type, int range, int defense, int concealedDefense, int movementPoints, TextureAtlas atlas, String unit, String head)
{
- super(atlas, unit, head);
- this.army = army;
+ super(army, atlas, unit, head);
this.rng = range;
this.def = defense;
this.cdef = concealedDefense;
@@ -91,11 +89,6 @@ public class Unit extends HeadedPawn
this.descr = id.toString() + " (" + rng + "-" + def + "/" + cdef + "-" + mp + ")";
}
- public boolean isEnemy(Army other)
- {
- return army.isEnemy(other);
- }
-
@Override
public int getMovementPoints()
{
@@ -150,12 +143,6 @@ public class Unit extends HeadedPawn
}
@Override
- public boolean isEnemy(Pawn other)
- {
- return army.isEnemy(((Unit) other).army);
- }
-
- @Override
public boolean canRotate()
{
if (type == UnitType.HARD_TARGET) return !hasMoved;