|
|
|
@ -45,7 +45,7 @@ public class DungeonGenerator {
|
|
|
|
int xPos = roomAmount / 2;
|
|
|
|
int xPos = roomAmount / 2;
|
|
|
|
int yPos = roomAmount / 2;
|
|
|
|
int yPos = roomAmount / 2;
|
|
|
|
|
|
|
|
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl), xPos, yPos);
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl, false), xPos, yPos);
|
|
|
|
|
|
|
|
|
|
|
|
// Schleife läuft so lange, bis die entsprechende Anzahl an Räumen generiert wurde
|
|
|
|
// Schleife läuft so lange, bis die entsprechende Anzahl an Räumen generiert wurde
|
|
|
|
for(int i = 1; i < roomAmount;){
|
|
|
|
for(int i = 1; i < roomAmount;){
|
|
|
|
@ -82,7 +82,7 @@ public class DungeonGenerator {
|
|
|
|
|
|
|
|
|
|
|
|
// An der neuen Stelle vom Cursor gibt es noch keinen Raum
|
|
|
|
// An der neuen Stelle vom Cursor gibt es noch keinen Raum
|
|
|
|
if(tempLevel.getRooms()[xPos][yPos] == null){
|
|
|
|
if(tempLevel.getRooms()[xPos][yPos] == null){
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl), xPos, yPos);
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl, true), xPos, yPos);
|
|
|
|
|
|
|
|
|
|
|
|
// i darf nur erhöht werden, wenn auch ein Raum generiert wurde
|
|
|
|
// i darf nur erhöht werden, wenn auch ein Raum generiert wurde
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
@ -148,7 +148,7 @@ public class DungeonGenerator {
|
|
|
|
|
|
|
|
|
|
|
|
// An der neuen Stelle vom Cursor gibt es noch keinen Raum
|
|
|
|
// An der neuen Stelle vom Cursor gibt es noch keinen Raum
|
|
|
|
if(tempLevel.getRooms()[xPos][yPos] == null){
|
|
|
|
if(tempLevel.getRooms()[xPos][yPos] == null){
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl), xPos, yPos);
|
|
|
|
tempLevel.setRoom(generateRoom(sizeX, sizeY, tileSize, lvl, false), xPos, yPos);
|
|
|
|
|
|
|
|
|
|
|
|
tempLevel.setExit(xPos, 0);
|
|
|
|
tempLevel.setExit(xPos, 0);
|
|
|
|
tempLevel.setExit(yPos, 1);
|
|
|
|
tempLevel.setExit(yPos, 1);
|
|
|
|
@ -161,12 +161,13 @@ public class DungeonGenerator {
|
|
|
|
return tempLevel;
|
|
|
|
return tempLevel;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Room generateRoom(int sizeX, int sizeY, int tileSize, int lvl){
|
|
|
|
private Room generateRoom(int sizeX, int sizeY, int tileSize, int lvl, boolean allowEnemies){
|
|
|
|
int itemAmount = (int) (Math.random() * 2);
|
|
|
|
int itemAmount = (int) (Math.random() * 2);
|
|
|
|
int enemyAmount = (int) (Math.random() * 5);
|
|
|
|
int enemyAmount = (int) (Math.random() * 5);
|
|
|
|
|
|
|
|
|
|
|
|
Room tempRoom = new Room(new ArrayList<ItemContainer>(itemAmount), new Entity[15]);
|
|
|
|
Room tempRoom = new Room(new ArrayList<ItemContainer>(itemAmount), new Entity[15]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(allowEnemies){
|
|
|
|
// Items werden generiert
|
|
|
|
// Items werden generiert
|
|
|
|
int[][] belegt = new int[itemAmount][2];
|
|
|
|
int[][] belegt = new int[itemAmount][2];
|
|
|
|
for(int j = 0; j < belegt.length; j++){
|
|
|
|
for(int j = 0; j < belegt.length; j++){
|
|
|
|
@ -338,6 +339,7 @@ public class DungeonGenerator {
|
|
|
|
|
|
|
|
|
|
|
|
tempRoom.setEnemies(temp, i);
|
|
|
|
tempRoom.setEnemies(temp, i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return tempRoom;
|
|
|
|
return tempRoom;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|