diff options
Diffstat (limited to 'core/src/ch')
| -rw-r--r-- | core/src/ch/asynk/tankontank/engine/Player.java | 90 | ||||
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Player.java | 105 | 
2 files changed, 91 insertions, 104 deletions
| diff --git a/core/src/ch/asynk/tankontank/engine/Player.java b/core/src/ch/asynk/tankontank/engine/Player.java deleted file mode 100644 index 8bda179..0000000 --- a/core/src/ch/asynk/tankontank/engine/Player.java +++ /dev/null @@ -1,90 +0,0 @@ -package ch.asynk.tankontank.engine; - -import java.util.List; -import java.util.ArrayList; -import java.util.Random; -import java.util.Iterator; - -import ch.asynk.tankontank.engine.Pawn; - -public abstract class Player -{ -    public Faction faction; -    public ArrayList<Pawn> units; -    public ArrayList<Pawn> casualties; -    public ArrayList<Pawn> reinforcement; - -    public abstract void turnEnd(); -    public abstract void turnStart(); - -    public Player(Faction faction, int n) -    { -        this.faction = faction; -        this.units = new ArrayList<Pawn>(n); -        this.casualties = new ArrayList<Pawn>(n); -        this.reinforcement = new ArrayList<Pawn>(n); -    } - -    public String getName() -    { -        return faction.toString(); -    } - -    public boolean is(Faction faction) -    { -        return (this.faction == faction); -    } - -    public boolean isEnemy(Pawn pawn) -    { -        return pawn.isEnemy(faction); -    } - -    public boolean isEnemy(Faction other) -    { -        return faction.isEnemy(other); -    } - -    public int unitsLeft() -    { -        return (units.size() + reinforcement.size()); -    } - -    public int reinforcement() -    { -        return reinforcement.size(); -    } - -    public int casualties() -    { -        return casualties.size(); -    } - -    public void addUnit(Pawn pawn) -    { -        units.add(pawn); -    } - -    public void addReinforcement(Pawn pawn) -    { -        reinforcement.add(pawn); -    } - -    public void unitEntry(Pawn pawn) -    { -        reinforcement.remove(pawn); -        units.add(pawn); -    } - -    public void revertUnitEntry(Pawn pawn) -    { -        units.remove(pawn); -        reinforcement.add(pawn); -    } - -    public void casualty(Pawn pawn) -    { -        units.remove(pawn); -        casualties.add(pawn); -    } -} diff --git a/core/src/ch/asynk/tankontank/game/Player.java b/core/src/ch/asynk/tankontank/game/Player.java index ca0977b..636fdd5 100644 --- a/core/src/ch/asynk/tankontank/game/Player.java +++ b/core/src/ch/asynk/tankontank/game/Player.java @@ -1,11 +1,13 @@  package ch.asynk.tankontank.game;  import java.util.Random; +import java.util.List; +import java.util.ArrayList;  import ch.asynk.tankontank.TankOnTank;  import ch.asynk.tankontank.engine.Pawn; -public class Player extends ch.asynk.tankontank.engine.Player +public class Player  {      private static final float MOVE_TIME = 0.4f; @@ -15,14 +17,22 @@ public class Player extends ch.asynk.tankontank.engine.Player      private int apSpent;      private int actionPoints;      private boolean deploymentDone; -    // stats + +    public Army army; +    public ArrayList<Unit> units; +    public ArrayList<Unit> casualties; +    public ArrayList<Unit> reinforcement; +      public int actionCount;      public int lostEngagementCount;      public int wonEngagementCount;      public Player(final TankOnTank game, Army army, int n)      { -        super(army, n); +        this.army = army; +        this.units = new ArrayList<Unit>(n); +        this.casualties = new ArrayList<Unit>(n); +        this.reinforcement = new ArrayList<Unit>(n);          this.turn = 0;          this.apSpent = 0;          this.actionPoints = 0; @@ -32,9 +42,14 @@ public class Player extends ch.asynk.tankontank.engine.Player          this.wonEngagementCount = 0;      } +    public String getName() +    { +        return army.toString(); +    } +      public String toString()      { -        return faction + " AP: " + actionPoints + +        return army + " AP: " + actionPoints +              " units:" + units.size() + " casualties:" + casualties.size();      } @@ -43,6 +58,70 @@ public class Player extends ch.asynk.tankontank.engine.Player          return String.format("%s\n%4d\n%4d\n%4d\n%4d\n%4d", getName(), actionCount, unitsLeft(), casualties.size(), wonEngagementCount, lostEngagementCount);      } +    public boolean is(Army army) +    { +        return (this.army == army); +    } + +    public boolean isEnemy(Unit unit) +    { +        return unit.isEnemy(army); +    } + +    public boolean isEnemy(Army other) +    { +        return army.isEnemy(other); +    } + +   @SuppressWarnings("unchecked") +    public List<Pawn> unitsAsPawns() +    { +        return (List) units; +    } + +    public int unitsLeft() +    { +        return (units.size() + reinforcement.size()); +    } + +    public int reinforcement() +    { +        return reinforcement.size(); +    } + +    public int casualties() +    { +        return casualties.size(); +    } + +    public void addUnit(Unit unit) +    { +        units.add(unit); +    } + +    public void addReinforcement(Unit unit) +    { +        reinforcement.add(unit); +    } + +    public void unitEntry(Unit unit) +    { +        reinforcement.remove(unit); +        units.add(unit); +    } + +    public void revertUnitEntry(Unit unit) +    { +        units.remove(unit); +        reinforcement.add(unit); +    } + +    public void casualty(Unit unit) +    { +        units.remove(unit); +        casualties.add(unit); +    } +      public int getAp()      {          return ((apSpent < actionPoints) ? (apSpent + 1) : apSpent); @@ -75,19 +154,17 @@ public class Player extends ch.asynk.tankontank.engine.Player          if (apSpent > actionPoints) TankOnTank.debug("ERROR: spent too much AP, please report");      } -    @Override      public void turnEnd()      {      } -    @Override      public void turnStart()      {          if (!deploymentDone)              return;          turn += 1; -        for (Pawn pawn : units) -            pawn.reset(); +        for (Unit unit : units) +            unit.reset();          computeActionPoints();      } @@ -107,23 +184,23 @@ public class Player extends ch.asynk.tankontank.engine.Player          apSpent = 0;      } -    public boolean canPromote(Pawn pawn) +    public boolean canPromote(Unit unit)      { -        if (pawn.isHq()) return false; -        for (Pawn p: casualties) -            if (p.isHqOf(pawn)) return true; +        if (unit.isHq()) return false; +        for (Unit p: casualties) +            if (p.isHqOf(unit)) return true;          return false;      }      public Unit promote(Unit unit)      { -        for (Pawn p: casualties) { +        for (Unit p: casualties) {              if (p.isHqOf(unit)) {                  units.remove(unit);                  casualties.add(unit);                  units.add(p);                  casualties.remove(p); -                return (Unit) p; +                return p;              }          }          return null; | 
