fixed bug where Tiles would be replaced with Fields on PlayerBase.destroy()

This commit is contained in:
Kjistóf 2016-05-14 16:16:59 +02:00
parent 55cae38f5f
commit 23271cc086
3 changed files with 26 additions and 14 deletions

View File

@ -22,27 +22,29 @@ public class Game {
private Game() {} private Game() {}
public void playerBaseDestroyed(PlayerBase caller) { public void playerBaseDestroyed(PlayerBase caller) {
Field field = new Field(); if (caller.getCurrentTile().isGap()) {
Tile callertile = caller.getCurrentTile(); Field field = new Field();
Tile callertile = caller.getCurrentTile();
field.setX(callertile.getX()); field.setX(callertile.getX());
field.setY(callertile.getY()); field.setY(callertile.getY());
field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.NORTH), Direction.NORTH); field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.NORTH), Direction.NORTH);
callertile.getAdjacentTile(Direction.NORTH).setAdajacentTile(field, Direction.SOUTH); callertile.getAdjacentTile(Direction.NORTH).setAdajacentTile(field, Direction.SOUTH);
field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.SOUTH), Direction.SOUTH); field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.SOUTH), Direction.SOUTH);
callertile.getAdjacentTile(Direction.SOUTH).setAdajacentTile(field, Direction.NORTH); callertile.getAdjacentTile(Direction.SOUTH).setAdajacentTile(field, Direction.NORTH);
field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.WEST), Direction.WEST); field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.WEST), Direction.WEST);
callertile.getAdjacentTile(Direction.WEST).setAdajacentTile(field, Direction.EAST); callertile.getAdjacentTile(Direction.WEST).setAdajacentTile(field, Direction.EAST);
field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.EAST), Direction.EAST); field.setAdajacentTile(caller.getCurrentTile().getAdjacentTile(Direction.EAST), Direction.EAST);
callertile.getAdjacentTile(Direction.EAST).setAdajacentTile(field, Direction.WEST); callertile.getAdjacentTile(Direction.EAST).setAdajacentTile(field, Direction.WEST);
display.gapMagic((Gap)callertile, field, dungeon.getMapWidth()); display.gapMagic((Gap) callertile, field, dungeon.getMapWidth());
Game.instance.updateDisplay(); Game.instance.updateDisplay();
}
} }
public void playerDestroyed(Player caller) { public void playerDestroyed(Player caller) {

View File

@ -11,6 +11,12 @@ public class Gap extends cicaprojekt.Tile {
return true; return true;
} }
@Override
public boolean isGap()
{
return true;
}
@Override @Override
public void onEntry(PlayerBase playerBase) { public void onEntry(PlayerBase playerBase) {
super.onEntry(playerBase); super.onEntry(playerBase);

View File

@ -65,6 +65,10 @@ public abstract class Tile {
return zpm; return zpm;
} }
public boolean isGap() {
return false;
}
public void putABox(Box box) { public void putABox(Box box) {
if (box == null) if (box == null)
return; return;