v2.0.0: fixed some secret rooms using the deck system

This commit is contained in:
Evan Debenham
2022-11-02 17:46:31 -04:00
parent 8f6d31d113
commit 9f523e35d0
3 changed files with 12 additions and 6 deletions

View File

@@ -486,6 +486,7 @@ public class Generator {
};
private static boolean usingFirstDeck = false;
private static HashMap<Category,Float> defaultCatProbs = new LinkedHashMap<>();
private static HashMap<Category,Float> categoryProbs = new LinkedHashMap<>();
public static void fullReset() {
@@ -503,6 +504,7 @@ public class Generator {
public static void generalReset(){
for (Category cat : Category.values()) {
categoryProbs.put( cat, usingFirstDeck ? cat.firstProb : cat.secondProb );
defaultCatProbs.put( cat, cat.firstProb + cat.secondProb );
}
}
@@ -528,6 +530,10 @@ public class Generator {
return random(cat);
}
}
public static Item randomUsingDefaults(){
return randomUsingDefaults(Random.chances( defaultCatProbs ));
}
public static Item random( Category cat ) {
switch (cat) {

View File

@@ -64,22 +64,22 @@ public class SecretChestChasmRoom extends SecretRoom {
Point p = new Point(left+3, top+3);
Painter.set(level, p, Terrain.EMPTY_SP);
level.drop(Generator.random(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
level.drop(Generator.randomUsingDefaults(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
p.x = right-3;
Painter.set(level, p, Terrain.EMPTY_SP);
level.drop(Generator.random(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
level.drop(Generator.randomUsingDefaults(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
p.y = bottom-3;
Painter.set(level, p, Terrain.EMPTY_SP);
level.drop(Generator.random(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
level.drop(Generator.randomUsingDefaults(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
p.x = left+3;
Painter.set(level, p, Terrain.EMPTY_SP);
level.drop(Generator.random(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
level.drop(Generator.randomUsingDefaults(), level.pointToCell(p)).type = Heap.Type.LOCKED_CHEST;
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
p = new Point(left+1, top+1);

View File

@@ -68,12 +68,12 @@ public class SecretRunestoneRoom extends SecretRoom {
do{
dropPos = level.pointToCell(random());
} while (level.map[dropPos] != Terrain.EMPTY);
level.drop( Generator.random(Generator.Category.STONE), dropPos);
level.drop( Generator.randomUsingDefaults(Generator.Category.STONE), dropPos);
do{
dropPos = level.pointToCell(random());
} while (level.map[dropPos] != Terrain.EMPTY || level.heaps.get(dropPos) != null);
level.drop( Generator.random(Generator.Category.STONE), dropPos);
level.drop( Generator.randomUsingDefaults(Generator.Category.STONE), dropPos);
do{
dropPos = level.pointToCell(random());