110 lines
2.9 KiB
Java
Raw Normal View History

package inf112.fiasko.roborally.objects;
import inf112.fiasko.roborally.element_properties.Position;
2020-02-20 11:56:20 +01:00
/**
* this class represents a robot
2020-02-20 11:56:20 +01:00
*/
public class Robot {
private int robotDamageTaken = 0;
2020-02-22 13:42:43 +01:00
private final int playerId;
2020-02-20 11:56:20 +01:00
private boolean inPowerDown = false;
private int lastFlagVisited = 0;
private Position backupPosition;
private Position currentPosition;
2020-02-22 13:18:30 +01:00
/**
2020-02-22 13:42:43 +01:00
* Instantiates a new robot
2020-02-22 13:18:30 +01:00
* @param playerId gives the robot a identifier that links it too the correct player
2020-02-22 13:42:43 +01:00
* @param spawnPosition gives the robot its starting position on the map
2020-02-22 13:18:30 +01:00
*/
2020-02-20 11:56:20 +01:00
public Robot (int playerId, Position spawnPosition){
this.playerId=playerId;
this.backupPosition = spawnPosition;
this.currentPosition = spawnPosition;
}
2020-02-22 13:42:43 +01:00
/**
* Gets the damage the robot has taken
* @return the amount of damage the robot has received
*/
2020-02-20 11:56:20 +01:00
public int getDamage(){
return robotDamageTaken;
}
2020-02-22 13:42:43 +01:00
/**
* Set the robot's damage too a given amount
* @param damage the amount of damage the robot has received
*/
2020-02-20 11:56:20 +01:00
public void setDamage (int damage){
this.robotDamageTaken = damage;
}
2020-02-22 13:42:43 +01:00
/**
* Gets the robot's current position on the map
* @return the robot's current position
*/
2020-02-20 11:56:20 +01:00
public Position getPosition(){
return currentPosition;
}
2020-02-22 13:42:43 +01:00
/**
* places the robot on a new position
* @param newPosition the new position for the robot
*/
2020-02-20 11:56:20 +01:00
public void setPosition( Position newPosition ){
this.currentPosition = newPosition;
}
2020-02-22 13:42:43 +01:00
/**
* Places the status of the powerdown field
* @param powerDownStatus True if robot is going to go to powerdown. False otherwise
*/
2020-02-20 11:56:20 +01:00
public void setPowerDown(Boolean powerDownStatus){
this.inPowerDown = powerDownStatus;
}
2020-02-22 13:42:43 +01:00
/**
* Gets the status of the robot's powerdown field
* @return robot's powerdown status
*/
2020-02-20 11:56:20 +01:00
public Boolean isInPowerDown(){
return inPowerDown;
}
2020-02-22 13:42:43 +01:00
/**
* Set the robot's last visited flag too the new flag and places its backup on the flags position
* @param currentFlag the flag the robot is standing on
* @param newBackupPosition the position of the flag
*/
public void setLastFlagVisitedAndBackupPosition(int currentFlag, Position newBackupPosition){
this.lastFlagVisited=currentFlag;
this.backupPosition=newBackupPosition;
}
2020-02-22 14:10:50 +01:00
/**
* Gets the correct flag the robot visited
* @return last visited flag
*/
public int getLastFlagVisited(){
return lastFlagVisited;
}
/**
* Gets the robots backup position
* @return robots backup position
*/
public Position getBackupPosition(){
return backupPosition;
}
/**
* Gets the identifier of the players controlling the robot
* @return player identifier
*/
public int getPlayerId(){
return playerId;
}
2020-02-20 11:56:20 +01:00
}