Comments added to Player.java

This commit is contained in:
Siket Melinda Tekla 2016-05-16 19:14:21 +02:00
parent a1568774ca
commit ba147e956b
1 changed files with 55 additions and 0 deletions

View File

@ -3,10 +3,24 @@ package cicaprojekt;
import java.util.ArrayList;
import java.util.List;
/**
* A játékban megjelenő játékosokat reprezentáló osztály. A két játékos
* Jaffa és O'Neill ezredes lehet.
*/
public class Player extends PlayerBase {
/**
* A már begyűjtött ZPM-eket tároló lista.
*/
private List<ZPM> zpmContainer;
/**
* Az éppen aktuálisan felemelt dobozt tárolja.
*/
private Box boxLifted;
/**
* A játékos elpusztításáért felelős függvény. Amennyiben a játékosnál van
* egy doboz, az is elpusztuls. Ilyenkor a játékos ZPM-tárolója is kiürül.
*/
@Override
public void destroy() {
destroyed = true;
@ -16,20 +30,43 @@ public class Player extends PlayerBase {
zpmContainer.clear();
}
/**
* Az osztály konstruktora. A játékos kezdőcsempéjét tulajdonságait állítja be.
*
* @param name a játékos neve
* @param startTile a kezdőcsempe
* @param startDirection a játékos kezdőiránya
*/
public Player(String name, Tile startTile, Direction startDirection) {
super(name, startTile, startDirection);
zpmContainer = new ArrayList<>();
}
/**
* Megmondja, hogy a játékosnál van-e éppen doboz.
*
* @return true, ha van nála doboz
* false, egyébként
*/
public boolean hasBox() {
return (boxLifted != null);
}
/**
* Egy doboz felemelését implementáló függvény. A játékos előtt lévő doboz
* emeli fel.
*/
public void boxLift() {
if(!isDestroyed())
boxLifted = currentTile.getAdjacentTile(facingDirection).getABox();
}
/**
* Egy doboz lerakását implementáló függvény. A játékos előtt lévő csempére
* teszi le a dobozt, ha a csempére lehet dobozokat rakni.
*
* @see Tile#boxPermission()
*/
public void boxDrop() {
if(!isDestroyed()) {
Tile target = currentTile.getAdjacentTile(facingDirection);
@ -40,17 +77,35 @@ public class Player extends PlayerBase {
}
}
/**
* Egy ZPM felvevését implementáló függvény adott csempéről.
* A felvett ZPM bekerül a tárolóba, majd új ZPM generálódik.
*
* @param tile a kapott csempe
* @see Game#generateZPM()
*/
@Override
public void pickZPM(Tile tile) {
zpmContainer.add(tile.getZPMFromTile());
Game.instance.generateZPM();
}
/**
* Egy csillagkapu kilövését megvalósító függvény. A játékos aktuális
* irányába lövi ki a kapott csillagkaput.
*
* @param stargate kapott csillagkapu
*/
public void shootStargate(Stargate stargate) {
if(!isDestroyed())
this.currentTile.getAdjacentTile(facingDirection).spawnStargate(stargate, facingDirection);
}
/**
* Visszatér a játékos tárolójában lévő ZPM-ek számával.
*
* @return ZPM-ek száma
*/
public int getZPMCount(){
return zpmContainer.size();
}