Implemented initial player death

This commit is contained in:
Bokros Bálint 2016-05-13 22:10:29 +02:00
parent 7f98954211
commit 1974396f61
4 changed files with 30 additions and 17 deletions

View File

@ -7,6 +7,12 @@ public class Player extends PlayerBase {
private List<ZPM> zpmContainer; private List<ZPM> zpmContainer;
private Box boxLifted; private Box boxLifted;
@Override
public void destroy() {
destroyed = true;
if(hasBox())
boxLifted.destroy();
}
public Player(String name, Tile startTile, Direction startDirection) { public Player(String name, Tile startTile, Direction startDirection) {
super(name, startTile, startDirection); super(name, startTile, startDirection);
@ -18,16 +24,19 @@ public class Player extends PlayerBase {
} }
public void boxLift() { public void boxLift() {
if(!isDestroyed())
boxLifted = (Box) currentTile.getAdjacentTile(facingDirection).getABox(); boxLifted = (Box) currentTile.getAdjacentTile(facingDirection).getABox();
} }
public void boxDrop() { public void boxDrop() {
if(!isDestroyed()) {
Tile target = currentTile.getAdjacentTile(facingDirection); Tile target = currentTile.getAdjacentTile(facingDirection);
if (target.isSteppable()) { if (target.isSteppable()) {
target.putABox(boxLifted); target.putABox(boxLifted);
boxLifted = null; boxLifted = null;
} }
} }
}
@Override @Override
public void pickZPM(Tile tile) { public void pickZPM(Tile tile) {
@ -35,6 +44,7 @@ public class Player extends PlayerBase {
} }
public void shootStargate(Stargate stargate) { public void shootStargate(Stargate stargate) {
if(!isDestroyed())
this.currentTile.getAdjacentTile(facingDirection).spawnStargate(stargate, facingDirection); this.currentTile.getAdjacentTile(facingDirection).spawnStargate(stargate, facingDirection);
} }

View File

@ -31,19 +31,19 @@ public class PlayerBase implements Destroyable {
} }
public void move(Direction direction) { public void move(Direction direction) {
if(!isDestroyed()) {
this.setFacingDirection(direction); this.setFacingDirection(direction);
Tile adjtile = this.getCurrentTile().getAdjacentTile(direction); Tile adjtile = this.getCurrentTile().getAdjacentTile(direction);
if (adjtile != null) if (adjtile != null) {
{ if (adjtile.isSteppable()) {
if (adjtile.isSteppable())
{
currentTile.onExit(this); currentTile.onExit(this);
setCurrentTile(adjtile); setCurrentTile(adjtile);
adjtile.onEntry(this); adjtile.onEntry(this);
} }
} }
} }
}
public void pickZPM(Tile tile) { /* PlayerBase does not collect ZPM modules */ } public void pickZPM(Tile tile) { /* PlayerBase does not collect ZPM modules */ }

View File

@ -12,7 +12,6 @@ public class PlayerBaseDrawer extends AbstractDrawer implements Drawer {
@Override @Override
public void draw() throws IOException { public void draw() throws IOException {
switch(playerbase.name){ switch(playerbase.name){
case "Replicator": case "Replicator":
switch(playerbase.facingDirection){ switch(playerbase.facingDirection){
@ -30,6 +29,8 @@ public class PlayerBaseDrawer extends AbstractDrawer implements Drawer {
break; break;
} }
} }
if(playerbase.isDestroyed())
changeImage("Empty.png");
} }
@Override @Override

View File

@ -87,6 +87,8 @@ public class PlayerDrawer extends AbstractDrawer implements Drawer {
break; break;
} }
} }
if(player.isDestroyed())
changeImage("Empty.png");
} }
@Override @Override