v2.0.0: fixed some secret rooms using the deck system
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user