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 boolean usingFirstDeck = false;
|
||||||
|
private static HashMap<Category,Float> defaultCatProbs = new LinkedHashMap<>();
|
||||||
private static HashMap<Category,Float> categoryProbs = new LinkedHashMap<>();
|
private static HashMap<Category,Float> categoryProbs = new LinkedHashMap<>();
|
||||||
|
|
||||||
public static void fullReset() {
|
public static void fullReset() {
|
||||||
@@ -503,6 +504,7 @@ public class Generator {
|
|||||||
public static void generalReset(){
|
public static void generalReset(){
|
||||||
for (Category cat : Category.values()) {
|
for (Category cat : Category.values()) {
|
||||||
categoryProbs.put( cat, usingFirstDeck ? cat.firstProb : cat.secondProb );
|
categoryProbs.put( cat, usingFirstDeck ? cat.firstProb : cat.secondProb );
|
||||||
|
defaultCatProbs.put( cat, cat.firstProb + cat.secondProb );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -529,6 +531,10 @@ public class Generator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Item randomUsingDefaults(){
|
||||||
|
return randomUsingDefaults(Random.chances( defaultCatProbs ));
|
||||||
|
}
|
||||||
|
|
||||||
public static Item random( Category cat ) {
|
public static Item random( Category cat ) {
|
||||||
switch (cat) {
|
switch (cat) {
|
||||||
case ARMOR:
|
case ARMOR:
|
||||||
|
|||||||
+4
-4
@@ -64,22 +64,22 @@ public class SecretChestChasmRoom extends SecretRoom {
|
|||||||
|
|
||||||
Point p = new Point(left+3, top+3);
|
Point p = new Point(left+3, top+3);
|
||||||
Painter.set(level, p, Terrain.EMPTY_SP);
|
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++;
|
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
|
||||||
|
|
||||||
p.x = right-3;
|
p.x = right-3;
|
||||||
Painter.set(level, p, Terrain.EMPTY_SP);
|
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++;
|
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
|
||||||
|
|
||||||
p.y = bottom-3;
|
p.y = bottom-3;
|
||||||
Painter.set(level, p, Terrain.EMPTY_SP);
|
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++;
|
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
|
||||||
|
|
||||||
p.x = left+3;
|
p.x = left+3;
|
||||||
Painter.set(level, p, Terrain.EMPTY_SP);
|
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++;
|
if (level.heaps.get(level.pointToCell(p)) != null) chests++;
|
||||||
|
|
||||||
p = new Point(left+1, top+1);
|
p = new Point(left+1, top+1);
|
||||||
|
|||||||
+2
-2
@@ -68,12 +68,12 @@ public class SecretRunestoneRoom extends SecretRoom {
|
|||||||
do{
|
do{
|
||||||
dropPos = level.pointToCell(random());
|
dropPos = level.pointToCell(random());
|
||||||
} while (level.map[dropPos] != Terrain.EMPTY);
|
} while (level.map[dropPos] != Terrain.EMPTY);
|
||||||
level.drop( Generator.random(Generator.Category.STONE), dropPos);
|
level.drop( Generator.randomUsingDefaults(Generator.Category.STONE), dropPos);
|
||||||
|
|
||||||
do{
|
do{
|
||||||
dropPos = level.pointToCell(random());
|
dropPos = level.pointToCell(random());
|
||||||
} while (level.map[dropPos] != Terrain.EMPTY || level.heaps.get(dropPos) != null);
|
} 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{
|
do{
|
||||||
dropPos = level.pointToCell(random());
|
dropPos = level.pointToCell(random());
|
||||||
|
|||||||
Reference in New Issue
Block a user