v0.9.3: Various levelgen tweaks:
- Entrance and Exit rooms can no longer be connected - Tunnel room frequency down 25% - room count variance pulled in a bit - standard room count reduced by roughly 10%/20%/15%/15%/5% per region - removed chance for enemies to clump on floor 1 - level contents (items, enemies, etc) unchanged
This commit is contained in:
parent
f6ed111b3e
commit
b0c54f636f
|
@ -63,16 +63,16 @@ public class CavesLevel extends RegularLevel {
|
|||
|
||||
@Override
|
||||
protected int standardRooms(boolean forceMax) {
|
||||
if (forceMax) return 9;
|
||||
//6 to 9, average 7.333
|
||||
return 6+Random.chances(new float[]{2, 3, 3, 1});
|
||||
if (forceMax) return 7;
|
||||
//6 to 7, average 6.333
|
||||
return 6+Random.chances(new float[]{2, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int specialRooms(boolean forceMax) {
|
||||
if (forceMax) return 3;
|
||||
//1 to 3, average 2.2
|
||||
return 1+Random.chances(new float[]{2, 4, 4});
|
||||
//2 to 3, average 2.2
|
||||
return 2+Random.chances(new float[]{4, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -58,9 +58,9 @@ public class CityLevel extends RegularLevel {
|
|||
|
||||
@Override
|
||||
protected int standardRooms(boolean forceMax) {
|
||||
if (forceMax) return 10;
|
||||
//7 to 10, average 8.0
|
||||
return 7+Random.chances(new float[]{4, 3, 2, 1});
|
||||
if (forceMax) return 8;
|
||||
//6 to 8, average 7
|
||||
return 6+Random.chances(new float[]{1, 3, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -82,9 +82,9 @@ public class HallsLevel extends RegularLevel {
|
|||
|
||||
@Override
|
||||
protected int standardRooms(boolean forceMax) {
|
||||
if (forceMax) return 10;
|
||||
//8 to 10, average 8.67
|
||||
return 8+Random.chances(new float[]{3, 2, 1});
|
||||
if (forceMax) return 9;
|
||||
//8 to 9, average 8.33
|
||||
return 8+Random.chances(new float[]{2, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -64,16 +64,16 @@ public class PrisonLevel extends RegularLevel {
|
|||
|
||||
@Override
|
||||
protected int standardRooms(boolean forceMax) {
|
||||
if (forceMax) return 8;
|
||||
//6 to 8, average 6.75
|
||||
return 6+Random.chances(new float[]{4, 2, 2});
|
||||
if (forceMax) return 6;
|
||||
//5 to 6, average 5.5
|
||||
return 5+Random.chances(new float[]{1, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int specialRooms(boolean forceMax) {
|
||||
if (forceMax) return 3;
|
||||
//1 to 3, average 2.0
|
||||
return 1+Random.chances(new float[]{3, 4, 3});
|
||||
return 1+Random.chances(new float[]{1, 3, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -223,8 +223,8 @@ public abstract class RegularLevel extends Level {
|
|||
mobsToSpawn--;
|
||||
mobs.add(mob);
|
||||
|
||||
//add a second mob to this room
|
||||
if (mobsToSpawn > 0 && Random.Int(4) == 0){
|
||||
//chance to add a second mob to this room, except on floor 1
|
||||
if (Dungeon.depth > 1 && mobsToSpawn > 0 && Random.Int(4) == 0){
|
||||
mob = createMob();
|
||||
|
||||
tries = 30;
|
||||
|
|
|
@ -57,16 +57,16 @@ public class SewerLevel extends RegularLevel {
|
|||
|
||||
@Override
|
||||
protected int standardRooms(boolean forceMax) {
|
||||
if (forceMax) return 7;
|
||||
//5 to 7, average 5.57
|
||||
return 5+Random.chances(new float[]{4, 2, 1});
|
||||
if (forceMax) return 6;
|
||||
//4 to 6, average 5
|
||||
return 4+Random.chances(new float[]{1, 3, 1});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int specialRooms(boolean forceMax) {
|
||||
if (forceMax) return 3;
|
||||
//1 to 3, average 1.8
|
||||
return 1+Random.chances(new float[]{4, 4, 2});
|
||||
if (forceMax) return 2;
|
||||
//1 to 2, average 1.8
|
||||
return 1+Random.chances(new float[]{1, 4});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -60,8 +60,8 @@ public abstract class RegularBuilder extends Builder {
|
|||
return this;
|
||||
}
|
||||
|
||||
protected float[] pathTunnelChances = new float[]{1, 3, 1};
|
||||
protected float[] branchTunnelChances = new float[]{2, 2, 1};
|
||||
protected float[] pathTunnelChances = new float[]{2, 2, 1};
|
||||
protected float[] branchTunnelChances = new float[]{1, 1, 0};
|
||||
|
||||
public RegularBuilder setTunnelLength( float[] path, float[] branch){
|
||||
pathTunnelChances = path;
|
||||
|
|
|
@ -95,4 +95,11 @@ public class EntranceRoom extends StandardRoom {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean connect(Room room) {
|
||||
//cannot connect to exit, otherwise works normally
|
||||
if (room instanceof ExitRoom) return false;
|
||||
else return super.connect(room);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -56,4 +56,11 @@ public class ExitRoom extends StandardRoom {
|
|||
public boolean canPlaceCharacter(Point p, Level l) {
|
||||
return super.canPlaceCharacter(p, l) && l.pointToCell(p) != l.exit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean connect(Room room) {
|
||||
//cannot connect to entrance, otherwise works normally
|
||||
if (room instanceof EntranceRoom) return false;
|
||||
else return super.connect(room);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,21 +148,21 @@ public abstract class StandardRoom extends Room {
|
|||
|
||||
private static float[][] chances = new float[27][];
|
||||
static {
|
||||
chances[1] = new float[]{15, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 1,0,1,0,1,0,1,1,0,0};
|
||||
chances[2] = new float[]{15, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[1] = new float[]{10, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 1,0,1,0,1,0,1,1,0,0};
|
||||
chances[2] = new float[]{10, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[4] = chances[3] = chances[2];
|
||||
chances[5] = new float[]{15, 10,10,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,0,0,0,0,0,0,0};
|
||||
chances[5] = new float[]{10, 10,10,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,0,0,0,0,0,0,0};
|
||||
|
||||
chances[6] = new float[]{15, 0,0,0, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[6] = new float[]{10, 0,0,0, 10,10,5, 0,0,0, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[10] = chances[9] = chances[8] = chances[7] = chances[6];
|
||||
|
||||
chances[11] = new float[]{20, 0,0,0, 0,0,0, 10,10,5, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[11] = new float[]{10, 0,0,0, 0,0,0, 10,10,5, 0,0,0, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[15] = chances[14] = chances[13] = chances[12] = chances[11];
|
||||
|
||||
chances[16] = new float[]{15, 0,0,0, 0,0,0, 0,0,0, 10,10,5, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[16] = new float[]{10, 0,0,0, 0,0,0, 0,0,0, 10,10,5, 0,0,0, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[20] = chances[19] = chances[18] = chances[17] = chances[16];
|
||||
|
||||
chances[21] = new float[]{15, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 10,10,5, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[21] = new float[]{10, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 10,10,5, 1,1,1,1,1,1,1,1,1,1};
|
||||
chances[26] = chances[25] = chances[24] = chances[23] = chances[22] = chances[21];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user