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());
|
Painter.fill(level, this, passageWidth+2, centerDecoTiles());
|
||||||
Point center = center();
|
Point center = center();
|
||||||
int xDir = 0, yDir = 0;
|
int xDir = 0, yDir = 0;
|
||||||
|
|
||||||
|
//prefer to make the door further away if possible
|
||||||
if (Random.Int(2) == 0) {
|
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 {
|
} 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);
|
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));
|
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
|
//use a separate generator here so meta progression doesn't affect levelgen
|
||||||
Random.pushGenerator();
|
Random.pushGenerator();
|
||||||
|
|
||||||
@@ -104,9 +109,9 @@ public class EntranceRoom extends StandardRoom {
|
|||||||
int pos;
|
int pos;
|
||||||
do {
|
do {
|
||||||
//can't be on bottom row of tiles
|
//can't be on bottom row of tiles
|
||||||
pos = level.pointToCell(new Point( Random.IntRange( left + 1, right - 1 ),
|
pos = level.pointToCell(new Point( Random.IntRange( r.left + 1, r.right - 1 ),
|
||||||
Random.IntRange( top + 1, bottom - 2 )));
|
Random.IntRange( r.top + 1, r.bottom - 2 )));
|
||||||
} while (pos == level.entrance() || level.findMob(level.entrance()) != null);
|
} while (pos == level.entrance() || level.map[pos] == Terrain.REGION_DECO);
|
||||||
level.drop( new Guidebook(), pos );
|
level.drop( new Guidebook(), pos );
|
||||||
Document.ADVENTURERS_GUIDE.deletePage(Document.GUIDE_INTRO);
|
Document.ADVENTURERS_GUIDE.deletePage(Document.GUIDE_INTRO);
|
||||||
}
|
}
|
||||||
@@ -116,16 +121,15 @@ public class EntranceRoom extends StandardRoom {
|
|||||||
int pos;
|
int pos;
|
||||||
do {
|
do {
|
||||||
//can't be on bottom row of tiles
|
//can't be on bottom row of tiles
|
||||||
pos = level.pointToCell(new Point( Random.IntRange( left + 1, right - 1 ),
|
pos = level.pointToCell(new Point( Random.IntRange( r.left + 1, r.right - 1 ),
|
||||||
Random.IntRange( top + 1, bottom - 2 )));
|
Random.IntRange( r.top + 1, r.bottom - 2 )));
|
||||||
} while (pos == level.entrance() || level.findMob(level.entrance()) != null);
|
} while (pos == level.entrance() || level.map[pos] == Terrain.REGION_DECO);
|
||||||
GuidePage p = new GuidePage();
|
GuidePage p = new GuidePage();
|
||||||
p.page(Document.GUIDE_SEARCHING);
|
p.page(Document.GUIDE_SEARCHING);
|
||||||
level.drop( p, pos );
|
level.drop( p, pos );
|
||||||
}
|
}
|
||||||
|
|
||||||
Random.popGenerator();
|
Random.popGenerator();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ArrayList<Class<?extends StandardRoom>> rooms = new ArrayList<>();
|
private static ArrayList<Class<?extends StandardRoom>> rooms = new ArrayList<>();
|
||||||
|
|||||||
+3
@@ -100,6 +100,9 @@ public class RegionDecoPatchEntranceRoom extends RegionDecoPatchRoom {
|
|||||||
} else {
|
} else {
|
||||||
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
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 {
|
} else {
|
||||||
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
level.transitions.add(new LevelTransition(level, entrance, LevelTransition.Type.REGULAR_ENTRANCE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EntranceRoom.placeEarlyGuidePages(level, this);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user