v3.1.0: small levelgen sewers tweaks:
- fixed tutorial not working with new entrances - improved internal layout in ring rooms a bit
This commit is contained in:
+16
-2
@@ -57,10 +57,24 @@ public class RingRoom extends StandardRoom {
|
||||
Painter.fill(level, this, passageWidth+2, centerDecoTiles());
|
||||
Point center = center();
|
||||
int xDir = 0, yDir = 0;
|
||||
|
||||
//prefer to make the door further away if possible
|
||||
if (Random.Int(2) == 0) {
|
||||
xDir = Random.Int(2) == 0 ? 1 : -1;
|
||||
if (center.x < (left+right)/2f){
|
||||
xDir = 1;
|
||||
} else if (center.x > (left+right)/2f){
|
||||
xDir = -1;
|
||||
} else {
|
||||
xDir = Random.Int(2) == 0 ? 1 : -1;
|
||||
}
|
||||
} else {
|
||||
yDir = Random.Int(2) == 0 ? 1 : -1;
|
||||
if (center.y < (top+bottom)/2f){
|
||||
yDir = 1;
|
||||
} else if (center.y > (top+bottom)/2f){
|
||||
yDir = -1;
|
||||
} else {
|
||||
yDir = Random.Int(2) == 0 ? 1 : -1;
|
||||
}
|
||||
}
|
||||
|
||||
Painter.set(level, center, Terrain.EMPTY_SP);
|
||||
|
||||
+11
-7
@@ -95,6 +95,11 @@ public class EntranceRoom extends StandardRoom {
|
||||
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
||||
}
|
||||
|
||||
placeEarlyGuidePages(level, this);
|
||||
|
||||
}
|
||||
|
||||
public static void placeEarlyGuidePages(Level level, Room r){
|
||||
//use a separate generator here so meta progression doesn't affect levelgen
|
||||
Random.pushGenerator();
|
||||
|
||||
@@ -104,9 +109,9 @@ public class EntranceRoom extends StandardRoom {
|
||||
int pos;
|
||||
do {
|
||||
//can't be on bottom row of tiles
|
||||
pos = level.pointToCell(new Point( Random.IntRange( left + 1, right - 1 ),
|
||||
Random.IntRange( top + 1, bottom - 2 )));
|
||||
} while (pos == level.entrance() || level.findMob(level.entrance()) != null);
|
||||
pos = level.pointToCell(new Point( Random.IntRange( r.left + 1, r.right - 1 ),
|
||||
Random.IntRange( r.top + 1, r.bottom - 2 )));
|
||||
} while (pos == level.entrance() || level.map[pos] == Terrain.REGION_DECO);
|
||||
level.drop( new Guidebook(), pos );
|
||||
Document.ADVENTURERS_GUIDE.deletePage(Document.GUIDE_INTRO);
|
||||
}
|
||||
@@ -116,16 +121,15 @@ public class EntranceRoom extends StandardRoom {
|
||||
int pos;
|
||||
do {
|
||||
//can't be on bottom row of tiles
|
||||
pos = level.pointToCell(new Point( Random.IntRange( left + 1, right - 1 ),
|
||||
Random.IntRange( top + 1, bottom - 2 )));
|
||||
} while (pos == level.entrance() || level.findMob(level.entrance()) != null);
|
||||
pos = level.pointToCell(new Point( Random.IntRange( r.left + 1, r.right - 1 ),
|
||||
Random.IntRange( r.top + 1, r.bottom - 2 )));
|
||||
} while (pos == level.entrance() || level.map[pos] == Terrain.REGION_DECO);
|
||||
GuidePage p = new GuidePage();
|
||||
p.page(Document.GUIDE_SEARCHING);
|
||||
level.drop( p, pos );
|
||||
}
|
||||
|
||||
Random.popGenerator();
|
||||
|
||||
}
|
||||
|
||||
private static ArrayList<Class<?extends StandardRoom>> rooms = new ArrayList<>();
|
||||
|
||||
+3
@@ -100,6 +100,9 @@ public class RegionDecoPatchEntranceRoom extends RegionDecoPatchRoom {
|
||||
} else {
|
||||
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
||||
}
|
||||
|
||||
EntranceRoom.placeEarlyGuidePages(level, this);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
@@ -86,5 +86,8 @@ public class WaterBridgeEntranceRoom extends WaterBridgeRoom {
|
||||
} else {
|
||||
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
||||
}
|
||||
|
||||
EntranceRoom.placeEarlyGuidePages(level, this);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user