package inf112.fiasko.roborally.objects; import inf112.fiasko.roborally.element_properties.RobotID; import java.util.ArrayList; import java.util.List; /** * This Class represents a player */ public class Player { private final RobotID robotID; private final String name; private boolean powerDownNextRound = false; private ProgrammingCardDeck playerDeck; private List program; /** * Instantiates a new player * @param robotID the global identifier of the robot * @param name the unique name of the player */ public Player(RobotID robotID, String name) { this.robotID = robotID; this.name = name; } /** * Gives you the RobotID of a player * @return An RobotID */ public RobotID getRobotID(){return robotID;} /** * Set the players deck to the given deck * @param playerDeck a deck of cards given to the player */ public void setPlayerDeck(ProgrammingCardDeck playerDeck){ this.playerDeck=playerDeck; } /** * Gives you the Name of the player * @return a player Name */ public String getName() {return name;} /** * Gives you the players program * @return a list */ public List getProgram() {return program;} /** * Gives you the player hand/deck * @return a deck */ public ProgrammingCardDeck getPlayerDeck() {return playerDeck;} /** * Gives you the players powerdown status * @return a boolean */ public boolean getPowerDownNextRound() { return powerDownNextRound;} /** * Sets the prowerdown status * @param powerDownStatus the boolean that determines if it goes to a powerdown or not */ public void setPowerDownNextRound(boolean powerDownStatus) { this.powerDownNextRound = powerDownStatus;} /** * Gets the program from the player * @return List of programing cards */ public List getProgramFromPlayer(){ return program; } /** * Sets the Players program to the given list of programing cards * @param cardList list the size of 5 with programing cards */ public void setInProgram(List cardList){ if(cardList.size() != 5){ throw new IllegalArgumentException("list must contain 5 programing cards"); } else { program = new ArrayList<>(cardList); } } }