Merge branch 'master' of https://github.com/bokrosbalint/cicaprojekt
This commit is contained in:
		@@ -1,21 +1,20 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Box implements Pickable, Destroyable
 | 
					public class Box implements Pickable, Destroyable {
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    private int weight = 5;
 | 
					    private int weight = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Box(){
 | 
					    public Box() {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void destroy() {
 | 
					    public void destroy() {
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void pick() {
 | 
					    public void pick() {
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public int weight() {
 | 
					    public int weight() {
 | 
				
			||||||
        return this.weight;
 | 
					        return this.weight;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface Destroyable {
 | 
					public interface Destroyable {
 | 
				
			||||||
	public void destroy();
 | 
					    public void destroy();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public enum Direction {
 | 
					public enum Direction {
 | 
				
			||||||
	NORTH, SOUTH, EAST, WEST;
 | 
					    NORTH, SOUTH, EAST, WEST;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,35 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.*;
 | 
					import java.io.*;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Dungeon {
 | 
					public class Dungeon {
 | 
				
			||||||
	cicaprojekt.Tile buildDungeon(File input) throws IOException
 | 
					    /* NOTE: this function assumes that the parameter input is a well-formatted dungeon file.
 | 
				
			||||||
 | 
					     * Such file looks like as follows:
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * <map width>x<map height>
 | 
				
			||||||
 | 
					     * <empty line>
 | 
				
			||||||
 | 
					     * <map matrix line 1>
 | 
				
			||||||
 | 
					     * ...
 | 
				
			||||||
 | 
					     * ...
 | 
				
			||||||
 | 
					     * <map matrix line <map height>>
 | 
				
			||||||
 | 
					     * <empty line>
 | 
				
			||||||
 | 
					     * <scale y>-<scale x>-<gate y>-<gate x>-<scale trigger weight>
 | 
				
			||||||
 | 
					     * ...
 | 
				
			||||||
 | 
					     * ...
 | 
				
			||||||
 | 
					     * <scale y>-<scale x>-<gate y>-<gate x>-<scale trigger weight>
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * where the map matrix is a matrix of the following chars:
 | 
				
			||||||
 | 
					     * W: Wall
 | 
				
			||||||
 | 
					     * F: Field
 | 
				
			||||||
 | 
					     * Z: Field with a ZMP
 | 
				
			||||||
 | 
					     * B: Field with a Box
 | 
				
			||||||
 | 
					     * O: Field with ONeill
 | 
				
			||||||
 | 
					     * J: Field with Jaffa
 | 
				
			||||||
 | 
					     * G: Gate
 | 
				
			||||||
 | 
					     * S: Scale                                                                                 */
 | 
				
			||||||
 | 
					    Map<String, Tile> buildDungeon(File input) throws IOException
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Tile oneilllocation = null;
 | 
					        Tile oneilllocation = null;
 | 
				
			||||||
        Tile jaffalocation = null;
 | 
					        Tile jaffalocation = null;
 | 
				
			||||||
@@ -17,8 +43,9 @@ public class Dungeon {
 | 
				
			|||||||
            Tile[][] dungeon = new Tile[width][height];
 | 
					            Tile[][] dungeon = new Tile[width][height];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            String line = null;
 | 
					            String line = null;
 | 
				
			||||||
            Gate gate = new Gate();
 | 
					            Gate tempgate = new Gate();
 | 
				
			||||||
            Gate lastgate = gate;
 | 
					            Scale tempscale = new Scale(tempgate, Integer.MAX_VALUE);
 | 
				
			||||||
 | 
					            int scalecount = 0;
 | 
				
			||||||
            for (int y = 0; y < height; ++y)
 | 
					            for (int y = 0; y < height; ++y)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                line = reader.readLine().replaceAll("\\s","");  // read line and remove whitespaces
 | 
					                line = reader.readLine().replaceAll("\\s","");  // read line and remove whitespaces
 | 
				
			||||||
@@ -59,19 +86,27 @@ public class Dungeon {
 | 
				
			|||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        case 'G':
 | 
					                        case 'G':
 | 
				
			||||||
                            dungeon[y][x] = gate;
 | 
					                            dungeon[y][x] = tempgate;
 | 
				
			||||||
                            lastgate = gate;
 | 
					 | 
				
			||||||
                            gate = new Gate();
 | 
					 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        case 'S':
 | 
					                        case 'S':
 | 
				
			||||||
                            dungeon[y][x] = new Scale(lastgate, 5);
 | 
					                            dungeon[y][x] = tempscale;
 | 
				
			||||||
 | 
					                            scalecount++;
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // NOTE: code seems to be correct till this point based on a debugger run-through
 | 
					            reader.readLine();                                  // throw empty line away
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            for (int i = 0; i < scalecount; ++i)    // set up scale-gate connections
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                String[] scaledata = reader.readLine().split("-");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                dungeon[Integer.parseInt(scaledata[0])][Integer.parseInt(scaledata[1])] =
 | 
				
			||||||
 | 
					                        new Scale((Gate)dungeon[Integer.parseInt(scaledata[2])][Integer.parseInt(scaledata[3])],
 | 
				
			||||||
 | 
					                                Integer.parseInt(scaledata[4]));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            /* setting up Tile cross references */
 | 
					            /* setting up Tile cross references */
 | 
				
			||||||
            for (int y = 0; y < height; ++y)
 | 
					            for (int y = 0; y < height; ++y)
 | 
				
			||||||
@@ -100,6 +135,11 @@ public class Dungeon {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return oneilllocation;
 | 
					
 | 
				
			||||||
 | 
					        Map<String, Tile> playermap = new HashMap<>();
 | 
				
			||||||
 | 
					        playermap.put("oneill", oneilllocation);
 | 
				
			||||||
 | 
					        playermap.put("jaffa", jaffalocation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return playermap;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -3,32 +3,31 @@ package cicaprojekt;
 | 
				
			|||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Field extends cicaprojekt.Tile
 | 
					public class Field extends cicaprojekt.Tile {
 | 
				
			||||||
{
 | 
					    private static int recursionLimit = 0;
 | 
				
			||||||
	private static int recursionLimit = 0;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Field() {
 | 
					    public Field() {
 | 
				
			||||||
		super();
 | 
					        super();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public void spawnStargate(cicaprojekt.Stargate stargate, Direction direction) {
 | 
					    public void spawnStargate(cicaprojekt.Stargate stargate, Direction direction) {
 | 
				
			||||||
		if (recursionLimit++ >= 10)
 | 
					        if (recursionLimit++ >= 10)
 | 
				
			||||||
			this.adjacentTile.put(direction, new Wall());
 | 
					            this.adjacentTile.put(direction, new Wall());
 | 
				
			||||||
		adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
					        adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onEntry(PlayerBase playerBase) {
 | 
					    public void onEntry(PlayerBase playerBase) {
 | 
				
			||||||
		if(boxStack.size() > 0)
 | 
					        if (boxStack.size() > 0)
 | 
				
			||||||
			return;
 | 
					            return;
 | 
				
			||||||
		playerBase.setCurrentTile(this);
 | 
					        playerBase.setCurrentTile(this);
 | 
				
			||||||
		if(zpmOnTile != null)
 | 
					        if (zpmOnTile != null)
 | 
				
			||||||
			playerBase.pickZPM(this);
 | 
					            playerBase.pickZPM(this);
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onExit(PlayerBase playerBase) {
 | 
					    public void onExit(PlayerBase playerBase) {
 | 
				
			||||||
		return;
 | 
					        return;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,12 +3,11 @@ package cicaprojekt;
 | 
				
			|||||||
import java.util.Timer;
 | 
					import java.util.Timer;
 | 
				
			||||||
import java.util.TimerTask;
 | 
					import java.util.TimerTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class FlowOfTime extends Timer{
 | 
					public class FlowOfTime extends Timer {
 | 
				
			||||||
	private TimerTask timeup;
 | 
					    private TimerTask timeup;
 | 
				
			||||||
	private long gametime;
 | 
					    private long gametime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void start() 
 | 
					    public void start() {
 | 
				
			||||||
	{
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,21 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Game {
 | 
					public class Game {
 | 
				
			||||||
	private Player oneill;
 | 
					    private Player oneill;
 | 
				
			||||||
	private Dungeon dungeon;
 | 
					 | 
				
			||||||
	private FlowOfTime flowoftime;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private Dungeon dungeon;
 | 
				
			||||||
 | 
					    private FlowOfTime flowoftime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void allZPMsCollected() {
 | 
					    public static void main(String[] args) {
 | 
				
			||||||
		this.stopGame();
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public void startGame() {
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public void stopGame() {
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static void main(String[] args) {}
 | 
					    public void allZPMsCollected() {
 | 
				
			||||||
 | 
					        this.stopGame();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void startGame() {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void stopGame() {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,26 +1,25 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Gap extends cicaprojekt.Tile
 | 
					public class Gap extends cicaprojekt.Tile {
 | 
				
			||||||
{
 | 
					    public Gap() {
 | 
				
			||||||
	public Gap(){
 | 
					        super();
 | 
				
			||||||
		super();
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void spawnStargate(cicaprojekt.Stargate stargate, Direction direction) {
 | 
					 | 
				
			||||||
		adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onEntry(PlayerBase playerBase) {
 | 
					    @Override
 | 
				
			||||||
		playerBase.destroy();
 | 
					    public void spawnStargate(cicaprojekt.Stargate stargate, Direction direction) {
 | 
				
			||||||
	}
 | 
					        adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
					    public void onEntry(PlayerBase playerBase) {
 | 
				
			||||||
		throw new IllegalStateException("Hiba! A szakadékból nem jut ki semmi!");
 | 
					        playerBase.destroy();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	@Override
 | 
					    public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
				
			||||||
	public void putABox(Box box) {
 | 
					        throw new IllegalStateException("Hiba! A szakadékból nem jut ki semmi!");
 | 
				
			||||||
		box.destroy();
 | 
					    }
 | 
				
			||||||
	}
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void putABox(Box box) {
 | 
				
			||||||
 | 
					        box.destroy();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +1,34 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Gate extends Tile
 | 
					public class Gate extends Tile {
 | 
				
			||||||
{
 | 
					    private boolean open = false;
 | 
				
			||||||
	private boolean open = false;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Gate(){
 | 
					    public Gate() {
 | 
				
			||||||
		super();
 | 
					        super();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public void spawnStargate(Stargate stargate, Direction direction) {
 | 
					 | 
				
			||||||
        if(this.open) adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onEntry(PlayerBase playerBase) {
 | 
					    public void spawnStargate(Stargate stargate, Direction direction) {
 | 
				
			||||||
		if(open){
 | 
					        if (this.open) adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
				
			||||||
			playerBase.setCurrentTile(this);
 | 
					    }
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
					    public void onEntry(PlayerBase playerBase) {
 | 
				
			||||||
		if(!open){
 | 
					        if (open) {
 | 
				
			||||||
			throw new IllegalStateException("Hiba! Te hogy kerültél a csukott ajtóba?");
 | 
					            playerBase.setCurrentTile(this);
 | 
				
			||||||
		}
 | 
					        } else
 | 
				
			||||||
	}
 | 
					            return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean isOpen() {
 | 
					    public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
				
			||||||
 | 
					        if (!open) {
 | 
				
			||||||
 | 
					            throw new IllegalStateException("Hiba! Te hogy kerültél a csukott ajtóba?");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public boolean isOpen() {
 | 
				
			||||||
        return open;
 | 
					        return open;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setOpen(boolean gateState) {
 | 
					    public void setOpen(boolean gateState) {
 | 
				
			||||||
        this.open = gateState;
 | 
					        this.open = gateState;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface Measurable {
 | 
					public interface Measurable {
 | 
				
			||||||
	public int weight();
 | 
					    public int weight();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,22 +7,20 @@ public class Menu {
 | 
				
			|||||||
    public static String tabulator = "\t";
 | 
					    public static String tabulator = "\t";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void addTab()
 | 
					    public static void addTab() {
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        tabulator += '\t';
 | 
					        tabulator += '\t';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void removeTab()
 | 
					    public static void removeTab() {
 | 
				
			||||||
    {
 | 
					        tabulator = tabulator.substring(0, tabulator.length() - 1);
 | 
				
			||||||
        tabulator = tabulator.substring(0, tabulator.length()-1);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void main (String[] args) throws IOException{
 | 
					    public static void main(String[] args) throws IOException {
 | 
				
			||||||
        System.out.println("Continuously Integrated Cica Projekt - Skeleton");
 | 
					        System.out.println("Continuously Integrated Cica Projekt - Skeleton");
 | 
				
			||||||
        System.out.println("Üdvözöllek a Babylon Simulator 2000 játékban! Kérlek válassz egy menüpontot!");
 | 
					        System.out.println("Üdvözöllek a Babylon Simulator 2000 játékban! Kérlek válassz egy menüpontot!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        boolean isExiting = false;
 | 
					        boolean isExiting = false;
 | 
				
			||||||
        while(!isExiting) {
 | 
					        while (!isExiting) {
 | 
				
			||||||
            System.out.println("1. Lépés");
 | 
					            System.out.println("1. Lépés");
 | 
				
			||||||
            System.out.println("2. Doboz felvétele");
 | 
					            System.out.println("2. Doboz felvétele");
 | 
				
			||||||
            System.out.println("3. Doboz lerakása");
 | 
					            System.out.println("3. Doboz lerakása");
 | 
				
			||||||
@@ -36,90 +34,90 @@ public class Menu {
 | 
				
			|||||||
            Scanner sc = new Scanner(System.in);
 | 
					            Scanner sc = new Scanner(System.in);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            switch (sc.nextLine().charAt(0)) {
 | 
					            switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                case '1' :
 | 
					                case '1':
 | 
				
			||||||
                    System.out.println("O’Neill [északi|nyugati|déli|keleti] irányba lép egyet,");
 | 
					                    System.out.println("O’Neill [északi|nyugati|déli|keleti] irányba lép egyet,");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: W, A, S, D");
 | 
					                    System.out.println("Elfogadott bemenet: W, A, S, D");
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'W' :
 | 
					                        case 'W':
 | 
				
			||||||
                            oNeill.move(Direction.NORTH);
 | 
					                            oNeill.move(Direction.NORTH);
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'A' :
 | 
					                        case 'A':
 | 
				
			||||||
                            oNeill.move(Direction.WEST);
 | 
					                            oNeill.move(Direction.WEST);
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'S' :
 | 
					                        case 'S':
 | 
				
			||||||
                            oNeill.move(Direction.SOUTH);
 | 
					                            oNeill.move(Direction.SOUTH);
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'D' :
 | 
					                        case 'D':
 | 
				
			||||||
                            oNeill.move(Direction.EAST);
 | 
					                            oNeill.move(Direction.EAST);
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case '2' :
 | 
					                case '2':
 | 
				
			||||||
                    System.out.println("Doboz felvétele");
 | 
					                    System.out.println("Doboz felvétele");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: L");
 | 
					                    System.out.println("Elfogadott bemenet: L");
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'L' :
 | 
					                        case 'L':
 | 
				
			||||||
                            oNeill.boxLift();
 | 
					                            oNeill.boxLift();
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case '3' :
 | 
					                case '3':
 | 
				
			||||||
                    System.out.println("Doboz lerakása");
 | 
					                    System.out.println("Doboz lerakása");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: D");
 | 
					                    System.out.println("Elfogadott bemenet: D");
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'D':
 | 
					                        case 'D':
 | 
				
			||||||
                            oNeill.boxDrop();
 | 
					                            oNeill.boxDrop();
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case '4' :
 | 
					                case '4':
 | 
				
			||||||
                    System.out.println("Elforgás");
 | 
					                    System.out.println("Elforgás");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: L, R");
 | 
					                    System.out.println("Elfogadott bemenet: L, R");
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'L' :
 | 
					                        case 'L':
 | 
				
			||||||
                            oNeill.rotateLeft();
 | 
					                            oNeill.rotateLeft();
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'D' :
 | 
					                        case 'D':
 | 
				
			||||||
                            oNeill.rotateRight();
 | 
					                            oNeill.rotateRight();
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case '5' :
 | 
					                case '5':
 | 
				
			||||||
                    System.out.println("Nézés");
 | 
					                    System.out.println("Nézés");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: W");
 | 
					                    System.out.println("Elfogadott bemenet: W");
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'W' :
 | 
					                        case 'W':
 | 
				
			||||||
                            Tile t = oNeill.getCurrentTile().getAdjacentTile(oNeill.getFacingDirection());
 | 
					                            Tile t = oNeill.getCurrentTile().getAdjacentTile(oNeill.getFacingDirection());
 | 
				
			||||||
                            System.out.println("O'Neill előtt egy " + t.toString() + "mező található");
 | 
					                            System.out.println("O'Neill előtt egy " + t.toString() + "mező található");
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case '6' :
 | 
					                case '6':
 | 
				
			||||||
                    System.out.println("Csillagkapu lövés");
 | 
					                    System.out.println("Csillagkapu lövés");
 | 
				
			||||||
                    System.out.println("Elfogadott bemenet: Y, B");
 | 
					                    System.out.println("Elfogadott bemenet: Y, B");
 | 
				
			||||||
                    Tile t = oNeill.getCurrentTile();
 | 
					                    Tile t = oNeill.getCurrentTile();
 | 
				
			||||||
                    switch (sc.nextLine().charAt(0)) {
 | 
					                    switch (sc.nextLine().charAt(0)) {
 | 
				
			||||||
                        case 'Y' :
 | 
					                        case 'Y':
 | 
				
			||||||
                            t.spawnStargate(Stargate.yellowStargate, oNeill.getFacingDirection());
 | 
					                            t.spawnStargate(Stargate.yellowStargate, oNeill.getFacingDirection());
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'B' :
 | 
					                        case 'B':
 | 
				
			||||||
                            t.spawnStargate(Stargate.blueStargate, oNeill.getFacingDirection());
 | 
					                            t.spawnStargate(Stargate.blueStargate, oNeill.getFacingDirection());
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        case 'X' :
 | 
					                        case 'X':
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                case 'X' :
 | 
					                case 'X':
 | 
				
			||||||
                    System.out.println("Kilépés");
 | 
					                    System.out.println("Kilépés");
 | 
				
			||||||
                    isExiting = true;
 | 
					                    isExiting = true;
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface Pickable extends Destroyable, Measurable {
 | 
					public interface Pickable extends Destroyable, Measurable {
 | 
				
			||||||
	public void pick();
 | 
					    public void pick();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,33 +3,32 @@ package cicaprojekt;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Player extends PlayerBase{
 | 
					public class Player extends PlayerBase {
 | 
				
			||||||
	private List<ZPM> zpmContainer;
 | 
					    private List<ZPM> zpmContainer;
 | 
				
			||||||
	private Box boxLifted;
 | 
					    private Box boxLifted;
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public Player(Tile startTile, Direction startDirection){
 | 
					    public Player(Tile startTile, Direction startDirection) {
 | 
				
			||||||
        zpmContainer = new ArrayList<>();
 | 
					        zpmContainer = new ArrayList<>();
 | 
				
			||||||
		currentTile = startTile;
 | 
					        currentTile = startTile;
 | 
				
			||||||
		facingDirection = startDirection; /* Be lehetne állítani egy defaultot is, nem tudom, mennyire kéne */
 | 
					        facingDirection = startDirection; /* Be lehetne állítani egy defaultot is, nem tudom, mennyire kéne */
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void boxLift() {
 | 
					    public void boxLift() {
 | 
				
			||||||
        boxLifted = (Box) currentTile.getAdjacentTile(facingDirection).getABox();
 | 
					        boxLifted = (Box) currentTile.getAdjacentTile(facingDirection).getABox();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void boxDrop() {
 | 
					    public void boxDrop() {
 | 
				
			||||||
		currentTile.getAdjacentTile(facingDirection).putABox(boxLifted);
 | 
					        currentTile.getAdjacentTile(facingDirection).putABox(boxLifted);
 | 
				
			||||||
		boxLifted = null;
 | 
					        boxLifted = null;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void pickZPM(Tile tile)
 | 
					    public void pickZPM(Tile tile) {
 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        zpmContainer.add(tile.getZPMFromTile());
 | 
					        zpmContainer.add(tile.getZPMFromTile());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void shootStargate(Stargate stargate) {
 | 
					    public void shootStargate(Stargate stargate) {
 | 
				
			||||||
		this.currentTile.getAdjacentTile(facingDirection).spawnStargate(stargate, facingDirection);
 | 
					        this.currentTile.getAdjacentTile(facingDirection).spawnStargate(stargate, facingDirection);
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,69 +1,70 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class PlayerBase implements Destroyable{
 | 
					public class PlayerBase implements Destroyable {
 | 
				
			||||||
	protected Game game;
 | 
					    protected Game game;
 | 
				
			||||||
	protected Tile currentTile;
 | 
					    protected Tile currentTile;
 | 
				
			||||||
	protected Direction facingDirection;
 | 
					    protected Direction facingDirection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void destroy() {}
 | 
					    public void destroy() {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Tile getCurrentTile() {
 | 
					    public Tile getCurrentTile() {
 | 
				
			||||||
		return currentTile;
 | 
					        return currentTile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setCurrentTile(Tile newCurrentTile) {
 | 
					    public void setCurrentTile(Tile newCurrentTile) {
 | 
				
			||||||
		currentTile = newCurrentTile;
 | 
					        currentTile = newCurrentTile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void move(Direction direction) {
 | 
					    public void move(Direction direction) {
 | 
				
			||||||
		this.setFacingDirection(direction);
 | 
					        this.setFacingDirection(direction);
 | 
				
			||||||
		Tile tile = this.getCurrentTile().getAdjacentTile(direction);
 | 
					        Tile tile = this.getCurrentTile().getAdjacentTile(direction);
 | 
				
			||||||
		tile.onEntry(this);
 | 
					        tile.onEntry(this);
 | 
				
			||||||
		setCurrentTile(tile);
 | 
					        setCurrentTile(tile);
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void pickZPM(Tile tile) { /* PlayerBase does not collect ZPM modules */ }
 | 
					    public void pickZPM(Tile tile) { /* PlayerBase does not collect ZPM modules */ }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void rotateLeft() {
 | 
					    public void rotateLeft() {
 | 
				
			||||||
		switch (facingDirection) {
 | 
					        switch (facingDirection) {
 | 
				
			||||||
			case NORTH:
 | 
					            case NORTH:
 | 
				
			||||||
				facingDirection = Direction.WEST;
 | 
					                facingDirection = Direction.WEST;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case WEST:
 | 
					            case WEST:
 | 
				
			||||||
				facingDirection = Direction.SOUTH;
 | 
					                facingDirection = Direction.SOUTH;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case SOUTH:
 | 
					            case SOUTH:
 | 
				
			||||||
				facingDirection = Direction.EAST;
 | 
					                facingDirection = Direction.EAST;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case EAST:
 | 
					            case EAST:
 | 
				
			||||||
				facingDirection = Direction.NORTH;
 | 
					                facingDirection = Direction.NORTH;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void rotateRight() {
 | 
					    public void rotateRight() {
 | 
				
			||||||
		switch (facingDirection)  {
 | 
					        switch (facingDirection) {
 | 
				
			||||||
			case NORTH:
 | 
					            case NORTH:
 | 
				
			||||||
				facingDirection = Direction.EAST;
 | 
					                facingDirection = Direction.EAST;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case EAST:
 | 
					            case EAST:
 | 
				
			||||||
				facingDirection = Direction.SOUTH;
 | 
					                facingDirection = Direction.SOUTH;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case SOUTH:
 | 
					            case SOUTH:
 | 
				
			||||||
				facingDirection = Direction.WEST;
 | 
					                facingDirection = Direction.WEST;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
			case WEST:
 | 
					            case WEST:
 | 
				
			||||||
				facingDirection = Direction.NORTH;
 | 
					                facingDirection = Direction.NORTH;
 | 
				
			||||||
				break;
 | 
					                break;
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Direction getFacingDirection() {
 | 
					    public Direction getFacingDirection() {
 | 
				
			||||||
		return facingDirection;
 | 
					        return facingDirection;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setFacingDirection(Direction direction) {
 | 
					    public void setFacingDirection(Direction direction) {
 | 
				
			||||||
		facingDirection = direction;
 | 
					        facingDirection = direction;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,53 +3,53 @@ package cicaprojekt;
 | 
				
			|||||||
import java.util.Stack;
 | 
					import java.util.Stack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Scale extends Field {
 | 
					public class Scale extends Field {
 | 
				
			||||||
	private Gate gateConnected;
 | 
					    private Gate gateConnected;
 | 
				
			||||||
	private int threshold;
 | 
					    private int threshold;
 | 
				
			||||||
	private int weight;
 | 
					    private int weight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Scale(Gate gate, int threshold){
 | 
					    public Scale(Gate gate, int threshold) {
 | 
				
			||||||
		gateConnected = gate;
 | 
					        gateConnected = gate;
 | 
				
			||||||
		this.threshold = threshold;
 | 
					        this.threshold = threshold;
 | 
				
			||||||
		boxStack = new Stack<Box>();
 | 
					        boxStack = new Stack<Box>();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void onEntry(PlayerBase playerBase) {
 | 
					 | 
				
			||||||
		gateConnected.setOpen(true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void onExit(PlayerBase playerBase) {
 | 
					 | 
				
			||||||
		gateConnected.setOpen(false);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public Box getABox() {
 | 
					    public void onEntry(PlayerBase playerBase) {
 | 
				
			||||||
		if(boxStack.isEmpty())
 | 
					        gateConnected.setOpen(true);
 | 
				
			||||||
			return null;
 | 
					    }
 | 
				
			||||||
		weight -= boxStack.peek().weight();
 | 
					 | 
				
			||||||
		stackChanged();
 | 
					 | 
				
			||||||
		return boxStack.pop();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public void putABox(Box box) {
 | 
					    public void onExit(PlayerBase playerBase) {
 | 
				
			||||||
		if(box == null)
 | 
					        gateConnected.setOpen(false);
 | 
				
			||||||
			return;
 | 
					    }
 | 
				
			||||||
		boxStack.push(box);
 | 
					 | 
				
			||||||
		weight += box.weight();
 | 
					 | 
				
			||||||
		stackChanged();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void spawnStargate(Stargate stargate, Direction direction) {
 | 
					    @Override
 | 
				
			||||||
		adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
					    public Box getABox() {
 | 
				
			||||||
	}
 | 
					        if (boxStack.isEmpty())
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        weight -= boxStack.peek().weight();
 | 
				
			||||||
 | 
					        stackChanged();
 | 
				
			||||||
 | 
					        return boxStack.pop();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private void stackChanged() {
 | 
					    @Override
 | 
				
			||||||
		if(weight > threshold)
 | 
					    public void putABox(Box box) {
 | 
				
			||||||
			gateConnected.setOpen(true);
 | 
					        if (box == null)
 | 
				
			||||||
		else
 | 
					            return;
 | 
				
			||||||
			gateConnected.setOpen(false);
 | 
					        boxStack.push(box);
 | 
				
			||||||
	}
 | 
					        weight += box.weight();
 | 
				
			||||||
 | 
					        stackChanged();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void spawnStargate(Stargate stargate, Direction direction) {
 | 
				
			||||||
 | 
					        adjacentTile.get(direction).spawnStargate(stargate, direction);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void stackChanged() {
 | 
				
			||||||
 | 
					        if (weight > threshold)
 | 
				
			||||||
 | 
					            gateConnected.setOpen(true);
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            gateConnected.setOpen(false);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,40 +1,38 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Stargate {
 | 
					public class Stargate {
 | 
				
			||||||
	private boolean isSpawned;
 | 
					    public static final Stargate yellowStargate = new Stargate();
 | 
				
			||||||
 | 
					    public static final Stargate blueStargate = new Stargate();
 | 
				
			||||||
	public static final Stargate yellowStargate = new Stargate();
 | 
					    public static final Stargate redStargate = new Stargate();
 | 
				
			||||||
	public static final Stargate blueStargate = new Stargate();
 | 
					    public static final Stargate greenStargate = new Stargate();
 | 
				
			||||||
	public static final Stargate redStargate = new Stargate();
 | 
					    public /*final*/ Stargate other; //TODO find better ways to do this
 | 
				
			||||||
	public static final Stargate greenStargate = new Stargate();
 | 
					    private boolean isSpawned;
 | 
				
			||||||
	public /*final*/ Stargate other; //TODO find better ways to do this
 | 
					    private Wall currentWall;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	private Wall currentWall;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private Stargate() {
 | 
					    private Stargate() {
 | 
				
			||||||
		isSpawned = false;
 | 
					        isSpawned = false;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static void init() {
 | 
					    public static void init() {
 | 
				
			||||||
		yellowStargate.other = blueStargate;
 | 
					        yellowStargate.other = blueStargate;
 | 
				
			||||||
		blueStargate.other = yellowStargate;
 | 
					        blueStargate.other = yellowStargate;
 | 
				
			||||||
		redStargate.other = greenStargate;
 | 
					        redStargate.other = greenStargate;
 | 
				
			||||||
		greenStargate.other = redStargate;
 | 
					        greenStargate.other = redStargate;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public Wall getCurrentWall() {
 | 
					    public Wall getCurrentWall() {
 | 
				
			||||||
		return currentWall;
 | 
					        return currentWall;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public void setCurrentWall(Wall wall) {
 | 
					    public void setCurrentWall(Wall wall) {
 | 
				
			||||||
		currentWall =  wall;
 | 
					        currentWall = wall;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public boolean isOpen() {
 | 
					    public boolean isOpen() {
 | 
				
			||||||
		return isSpawned;
 | 
					        return isSpawned;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public void teleport(Direction incomingDirection) {
 | 
					    public void teleport(Direction incomingDirection) {
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,48 +5,48 @@ import java.util.Map;
 | 
				
			|||||||
import java.util.Stack;
 | 
					import java.util.Stack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class Tile {
 | 
					public abstract class Tile {
 | 
				
			||||||
	protected Map<Direction, Tile> adjacentTile;
 | 
					    protected Map<Direction, Tile> adjacentTile;
 | 
				
			||||||
	protected ZPM zpmOnTile;
 | 
					    protected ZPM zpmOnTile;
 | 
				
			||||||
	protected Stack<Box> boxStack;
 | 
					    protected Stack<Box> boxStack;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public Tile(){
 | 
					 | 
				
			||||||
		adjacentTile = new HashMap<Direction, Tile>();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public Tile getAdjacentTile(Direction direction) {
 | 
					 | 
				
			||||||
		return adjacentTile.get(direction);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setAdajacentTile(Tile newTile, Direction direction) {
 | 
					 | 
				
			||||||
		adjacentTile.put(direction, newTile);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public abstract void spawnStargate(Stargate stargate, Direction direction);
 | 
					    public Tile() {
 | 
				
			||||||
	
 | 
					        adjacentTile = new HashMap<Direction, Tile>();
 | 
				
			||||||
	public abstract void onEntry(PlayerBase playerBase);
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public abstract void onExit(PlayerBase playerBase);
 | 
					    public Tile getAdjacentTile(Direction direction) {
 | 
				
			||||||
	
 | 
					        return adjacentTile.get(direction);
 | 
				
			||||||
	public void setZPMOnTile(ZPM zpm) {
 | 
					    }
 | 
				
			||||||
		zpmOnTile = zpm;
 | 
					
 | 
				
			||||||
	}
 | 
					    public void setAdajacentTile(Tile newTile, Direction direction) {
 | 
				
			||||||
	
 | 
					        adjacentTile.put(direction, newTile);
 | 
				
			||||||
	public ZPM getZPMFromTile() {
 | 
					    }
 | 
				
			||||||
		ZPM zpm = zpmOnTile;
 | 
					
 | 
				
			||||||
		zpmOnTile = null;
 | 
					    public abstract void spawnStargate(Stargate stargate, Direction direction);
 | 
				
			||||||
		return zpm;
 | 
					
 | 
				
			||||||
	}
 | 
					    public abstract void onEntry(PlayerBase playerBase);
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public void putABox(Box box) {
 | 
					    public abstract void onExit(PlayerBase playerBase);
 | 
				
			||||||
		if(box == null)
 | 
					
 | 
				
			||||||
			return;
 | 
					    public void setZPMOnTile(ZPM zpm) {
 | 
				
			||||||
		boxStack.push(box);
 | 
					        zpmOnTile = zpm;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public Box getABox(){
 | 
					    public ZPM getZPMFromTile() {
 | 
				
			||||||
		if(boxStack.isEmpty())
 | 
					        ZPM zpm = zpmOnTile;
 | 
				
			||||||
			return null;
 | 
					        zpmOnTile = null;
 | 
				
			||||||
		return boxStack.pop();
 | 
					        return zpm;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void putABox(Box box) {
 | 
				
			||||||
 | 
					        if (box == null)
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        boxStack.push(box);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Box getABox() {
 | 
				
			||||||
 | 
					        if (boxStack.isEmpty())
 | 
				
			||||||
 | 
					            return null;
 | 
				
			||||||
 | 
					        return boxStack.pop();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,32 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Wall extends Tile {
 | 
					public class Wall extends Tile {
 | 
				
			||||||
	private Stargate sg;
 | 
					    private Stargate sg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Wall(){
 | 
					    public Wall() {
 | 
				
			||||||
		super();
 | 
					        super();
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public void spawnStargate(Stargate stargate, Direction direction) {
 | 
					 | 
				
			||||||
		if(sg == null)
 | 
					 | 
				
			||||||
			sg = stargate;
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			return;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void clearStargate() {
 | 
					    public void spawnStargate(Stargate stargate, Direction direction) {
 | 
				
			||||||
		sg = null;		
 | 
					        if (sg == null)
 | 
				
			||||||
	}
 | 
					            sg = stargate;
 | 
				
			||||||
	
 | 
					        else
 | 
				
			||||||
	public void onEntry(PlayerBase playerBase) {
 | 
					            return;
 | 
				
			||||||
		if(sg == null) {
 | 
					    }
 | 
				
			||||||
			return;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else {
 | 
					 | 
				
			||||||
			sg.teleport(playerBase.facingDirection);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
					    public void clearStargate() {
 | 
				
			||||||
		throw new IllegalStateException("Hiba! Te hogy kerültél a falba?");
 | 
					        sg = null;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void onEntry(PlayerBase playerBase) {
 | 
				
			||||||
 | 
					        if (sg == null) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            sg.teleport(playerBase.facingDirection);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void onExit(PlayerBase playerBase) throws IllegalStateException {
 | 
				
			||||||
 | 
					        throw new IllegalStateException("Hiba! Te hogy kerültél a falba?");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,16 +1,15 @@
 | 
				
			|||||||
package cicaprojekt;
 | 
					package cicaprojekt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ZPM implements Pickable
 | 
					public class ZPM implements Pickable {
 | 
				
			||||||
{
 | 
					    public void pick() {
 | 
				
			||||||
	public void pick(){
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public void destroy(){
 | 
					    public void destroy() {
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    @Override
 | 
				
			||||||
	public int weight() {
 | 
					    public int weight() {
 | 
				
			||||||
      return 0;
 | 
					        return 0;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user