v0.4.0: adjusted progression item droprates

This commit is contained in:
Evan Debenham 2016-06-02 20:43:03 -04:00
parent baeaae13e0
commit 3c7b2a6af7

View File

@ -326,30 +326,39 @@ public class Dungeon {
} }
public static boolean posNeeded() { public static boolean posNeeded() {
int[] quota = {4, 2, 9, 4, 14, 6, 19, 8, 24, 9}; //2 POS each floor set
return chance( quota, limitedDrops.strengthPotions.count ); int posLeftThisSet = 2 - (limitedDrops.strengthPotions.count - (depth / 5) * 2);
if (posLeftThisSet <= 0) return false;
int floorThisSet = (depth % 5);
//pos drops every two floors, (numbers 1-2, and 3-4) with a 50% chance for the earlier one each time.
int targetPOSLeft = 2 - floorThisSet/2;
if (floorThisSet % 2 == 1 && Random.Int(2) == 0) targetPOSLeft --;
if (targetPOSLeft < posLeftThisSet) return true;
else return false;
} }
public static boolean souNeeded() { public static boolean souNeeded() {
int[] quota = {5, 3, 10, 6, 15, 9, 20, 12, 25, 13}; //3 SOU each floor set
return chance( quota, limitedDrops.upgradeScrolls.count ); int souLeftThisSet = 3 - (limitedDrops.upgradeScrolls.count - (depth / 5) * 3);
} if (souLeftThisSet <= 0) return false;
private static boolean chance( int[] quota, int number ) { int floorThisSet = (depth % 5);
//chance is floors left / scrolls left
for (int i=0; i < quota.length; i += 2) { return Random.Int(5 - floorThisSet) < souLeftThisSet;
int qDepth = quota[i];
if (depth <= qDepth) {
int qNumber = quota[i + 1];
return Random.Float() < (float)(qNumber - number) / (qDepth - depth + 1);
}
}
return false;
} }
public static boolean asNeeded() { public static boolean asNeeded() {
return Random.Int( 12 * (1 + limitedDrops.arcaneStyli.count) ) < depth; //1 AS each floor set
int asLeftThisSet = 1 - (limitedDrops.arcaneStyli.count - (depth / 5));
if (asLeftThisSet <= 0) return false;
int floorThisSet = (depth % 5);
//chance is floors left / scrolls left
return Random.Int(5 - floorThisSet) < asLeftThisSet;
} }
private static final String RG_GAME_FILE = "game.dat"; private static final String RG_GAME_FILE = "game.dat";