diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Pawn.java | 5 | ||||
-rw-r--r-- | core/src/ch/asynk/tankontank/game/Unit.java | 14 |
2 files changed, 15 insertions, 4 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java index 991e97e..16a74e6 100644 --- a/core/src/ch/asynk/tankontank/engine/Pawn.java +++ b/core/src/ch/asynk/tankontank/engine/Pawn.java @@ -25,6 +25,10 @@ public abstract class Pawn implements Moveable, Disposable { } + public interface PawnId + { + } + public class Engagement { Pawn target; @@ -108,6 +112,7 @@ public abstract class Pawn implements Moveable, Disposable public abstract int getEngagementRangeFrom(Tile tile); public abstract boolean isUnit(); + public abstract boolean isA(PawnId id); public abstract boolean isA(PawnType type); public abstract boolean isHq(); public abstract boolean isHqOf(Pawn other); diff --git a/core/src/ch/asynk/tankontank/game/Unit.java b/core/src/ch/asynk/tankontank/game/Unit.java index bcb9e3c..468589e 100644 --- a/core/src/ch/asynk/tankontank/game/Unit.java +++ b/core/src/ch/asynk/tankontank/game/Unit.java @@ -27,7 +27,7 @@ public class Unit extends HeadedPawn ARTILLERY } - public enum UnitId + public enum UnitId implements Pawn.PawnId { GE_AT_GUN("German Anti-Tank Gun"), GE_INFANTRY("German Infantry"), @@ -154,6 +154,12 @@ public class Unit extends HeadedPawn } @Override + public boolean isA(PawnId i) + { + return (id == i); + } + + @Override public boolean isA(PawnType t) { return (type == t); @@ -168,9 +174,9 @@ public class Unit extends HeadedPawn @Override public boolean isHqOf(Pawn other) { - if ((id == UnitId.GE_PANZER_IV_HQ) && (((Unit)other).id == UnitId.GE_PANZER_IV)) return true; - if ((id == UnitId.US_PERSHING_HQ) && (((Unit)other).id == UnitId.US_PERSHING)) return true; - if ((id == UnitId.US_SHERMAN_HQ) && (((Unit)other).id == UnitId.US_SHERMAN)) return true; + if (isA(UnitId.GE_PANZER_IV_HQ) && other.isA(UnitId.GE_PANZER_IV)) return true; + if (isA(UnitId.US_PERSHING_HQ) && other.isA(UnitId.US_PERSHING)) return true; + if (isA(UnitId.US_SHERMAN_HQ) && other.isA(UnitId.US_SHERMAN)) return true; return false; } |