WIP goal
This commit is contained in:
parent
13de38bac8
commit
ba24a0e430
4 changed files with 122 additions and 14 deletions
|
|
@ -22,10 +22,13 @@ public abstract class Player {
|
|||
this.remainingTroops = 0;
|
||||
}
|
||||
|
||||
public int getRemainingTroops() {
|
||||
return this.remainingTroops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a player
|
||||
* @param playerType The type of player (human, AI, etc.)
|
||||
* @param name The name of the player
|
||||
* @param color The color of the player
|
||||
* @return The new player
|
||||
*/
|
||||
public static Player createPlayer(Class<?> playerType, String name, Color color) {
|
||||
if(!Player.class.isAssignableFrom(playerType))
|
||||
throw new IllegalArgumentException("Not a player class");
|
||||
|
|
@ -39,26 +42,54 @@ public abstract class Player {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the color of this player
|
||||
* @param c
|
||||
*/
|
||||
public void setColor(Color c) {
|
||||
this.color = c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the color of the player
|
||||
* @return
|
||||
*/
|
||||
public Color getColor() {
|
||||
return this.color;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of this player
|
||||
* @return The name
|
||||
*/
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int getRemainingTroops() {
|
||||
return this.remainingTroops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current points of this player
|
||||
* @return The current points
|
||||
*/
|
||||
public int getPoints() {
|
||||
return points;
|
||||
}
|
||||
|
||||
/**
|
||||
* Increases the score of this player
|
||||
* @param points The number of points to add
|
||||
*/
|
||||
public void addPoints(int points) {
|
||||
this.points += points;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds troops to the player
|
||||
* @param troops The number of troops to add
|
||||
*/
|
||||
public void addTroops(int troops) {
|
||||
if(troops < 0)
|
||||
return;
|
||||
|
|
@ -66,6 +97,10 @@ public abstract class Player {
|
|||
this.remainingTroops += troops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes troops from this player
|
||||
* @param troops The number of troops to remove
|
||||
*/
|
||||
public void removeTroops(int troops) {
|
||||
if(this.remainingTroops - troops < 0 || troops < 0)
|
||||
return;
|
||||
|
|
@ -73,14 +108,27 @@ public abstract class Player {
|
|||
this.remainingTroops -= troops;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of castles this player has
|
||||
* @param game The game object
|
||||
* @return The number of castles
|
||||
*/
|
||||
public int getNumRegions(Game game) {
|
||||
return this.getCastles(game).size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the castles that belong to the player
|
||||
* @param game The game object
|
||||
* @return A list of castles
|
||||
*/
|
||||
public List<Castle> getCastles(Game game) {
|
||||
return game.getMap().getCastles().stream().filter(c -> c.getOwner() == this).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the player by resetting the troops and points
|
||||
*/
|
||||
public void reset() {
|
||||
this.remainingTroops = 0;
|
||||
this.points = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue