2016-03-27 22:27:24 +00:00
|
|
|
package cicaprojekt;
|
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A játékban megjelenő falakat reprezentáló osztály.
|
|
|
|
*/
|
2016-03-27 22:27:24 +00:00
|
|
|
public class Wall extends Tile {
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A fajlon lévő csillagkapu.
|
|
|
|
*/
|
2016-05-13 16:14:14 +00:00
|
|
|
private Stargate sg = null;
|
2016-04-23 11:35:53 +00:00
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* Az osztály konstruktora.
|
|
|
|
*/
|
2016-04-24 21:01:34 +00:00
|
|
|
public Wall() {
|
|
|
|
super();
|
|
|
|
}
|
2016-03-27 22:27:24 +00:00
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény akkor hívódik meg, ha egy csillagkapu érkezik a falra.
|
|
|
|
* Ha nincs a falon korábbi csillagkapu, akkor az érkező kapu a falon marad,
|
|
|
|
* beállítódik a hozzátartozó irány, majd frissítődik a megjelenítés.
|
|
|
|
*
|
|
|
|
* @param stargate az érkező csillagkapu
|
|
|
|
* @param direction az irány, ahonnan jön
|
|
|
|
*/
|
2016-05-13 16:14:14 +00:00
|
|
|
@Override
|
2016-04-24 21:01:34 +00:00
|
|
|
public void spawnStargate(Stargate stargate, Direction direction) {
|
2016-05-13 17:15:53 +00:00
|
|
|
if(stargate.isSpawned())
|
|
|
|
stargate.getCurrentWall().clearStargate();
|
2016-04-25 23:08:37 +00:00
|
|
|
if (sg == null) {
|
2016-04-24 21:01:34 +00:00
|
|
|
sg = stargate;
|
2016-05-13 18:27:05 +00:00
|
|
|
sg.setCurrentWall(this, direction);
|
2016-05-13 16:14:14 +00:00
|
|
|
Game.instance.updateDisplay();
|
2016-04-25 23:08:37 +00:00
|
|
|
}
|
2016-04-24 21:01:34 +00:00
|
|
|
}
|
2016-03-27 22:27:24 +00:00
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény azzal tér vissza, hogy rá lehet-e lépni a falra.
|
|
|
|
* Ha van rajta csillagkapu, akkor a csillagkapu nyitvalévőségétől függ,
|
|
|
|
* ha nincs rajta, akkor nem lehet rálépni.
|
|
|
|
*
|
|
|
|
* @return true, ha van rajta nyitott csillagkapu
|
|
|
|
* false, egyébként
|
|
|
|
*/
|
2016-05-13 15:59:14 +00:00
|
|
|
@Override
|
|
|
|
public boolean isSteppable() {
|
2016-05-14 21:22:40 +00:00
|
|
|
if(sg != null)
|
|
|
|
return sg.isOpen();
|
|
|
|
return false;
|
2016-05-13 15:59:14 +00:00
|
|
|
}
|
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A falon lévő csillagkapu eltüntetésére szolgáló függvény.
|
|
|
|
* Ha volt ott csillagkapu, akkor a rámutató referencia értékét
|
|
|
|
* null-ra állítja
|
|
|
|
*/
|
2016-04-24 21:01:34 +00:00
|
|
|
public void clearStargate() {
|
2016-04-25 23:08:37 +00:00
|
|
|
if(sg != null) {
|
2016-05-13 18:27:05 +00:00
|
|
|
sg.setCurrentWall(null, null);
|
2016-04-25 23:08:37 +00:00
|
|
|
sg = null;
|
|
|
|
}
|
2016-04-24 21:01:34 +00:00
|
|
|
}
|
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény azzal tér vissza, hogy lehet-e az adott <code>Tile</code> típuson
|
|
|
|
* doboz.
|
|
|
|
*
|
|
|
|
* @return false
|
|
|
|
*/
|
2016-05-14 17:47:29 +00:00
|
|
|
@Override
|
|
|
|
public boolean boxPermission()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény akkor hívódik meg, ha egy személy rá akar lépni a falra.
|
|
|
|
* Ha a falon van csillagkapu, akkor az átteleportálja a személyt.
|
|
|
|
*
|
|
|
|
* @param playerBase az a <code>PlayerBase</code> példány, amely
|
|
|
|
* rálépett a falra
|
|
|
|
*/
|
2016-05-14 11:47:14 +00:00
|
|
|
@Override
|
2016-04-24 21:01:34 +00:00
|
|
|
public void onEntry(PlayerBase playerBase) {
|
2016-05-13 21:52:10 +00:00
|
|
|
super.onEntry(playerBase);
|
2016-05-14 11:25:04 +00:00
|
|
|
if (sg != null)
|
2016-04-25 21:38:22 +00:00
|
|
|
sg.teleport(playerBase);
|
2016-04-24 21:01:34 +00:00
|
|
|
}
|
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény akkor hívódik meg, ha egy személy le akar lépni a falról.
|
|
|
|
*
|
|
|
|
* @param playerBase az a <code>PlayerBase</code> példány, amely
|
|
|
|
* lelépett a falról
|
|
|
|
*/
|
2016-05-14 11:47:14 +00:00
|
|
|
@Override
|
2016-05-14 17:00:47 +00:00
|
|
|
public void onExit(PlayerBase playerBase) {
|
2016-04-24 21:01:34 +00:00
|
|
|
}
|
2016-05-07 12:51:20 +00:00
|
|
|
|
2016-05-16 15:57:54 +00:00
|
|
|
/**
|
|
|
|
* A függvény a falon lévő csillagkapuval tér vissza.
|
|
|
|
*
|
|
|
|
* @return a csillagkapu
|
|
|
|
*/
|
2016-05-07 12:51:20 +00:00
|
|
|
public Stargate getStargate() {
|
|
|
|
return sg;
|
|
|
|
}
|
2016-03-27 22:27:24 +00:00
|
|
|
}
|