v2.5.0: adjusted some special rooms to no longer throw out cursed items

This commit is contained in:
Evan Debenham
2024-07-15 14:38:27 -04:00
parent ea3d9db285
commit 9ebf0357ef
4 changed files with 54 additions and 26 deletions

View File

@@ -26,6 +26,8 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Maze;
@@ -95,13 +97,19 @@ public class SecretMazeRoom extends SecretRoom {
Item prize;
//1 floor set higher in probability, never cursed
do {
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1, true);
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
//1 floor set higher in probability, never cursed
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1, true);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} while (prize.cursed || Challenges.isItemBlocked(prize));
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
}
prize.cursed = false;
prize.cursedKnown = true;
//33% chance for an extra update.

View File

@@ -21,13 +21,14 @@
package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special;
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Piranha;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfInvisibility;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter;
@@ -110,13 +111,18 @@ public class PoolRoom extends SpecialRoom {
}
//1 floor set higher in probability, never cursed
do {
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} while (prize.cursed || Challenges.isItemBlocked(prize));
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
}
prize.cursed = false;
prize.cursedKnown = true;
//33% chance for an extra update.

View File

@@ -35,7 +35,9 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHaste;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.journal.Bestiary;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
@@ -182,13 +184,19 @@ public class SentryRoom extends SpecialRoom {
}
//1 floor set higher in probability, never cursed
do {
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
//1 floor set higher in probability, never cursed
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} while (prize.cursed || Challenges.isItemBlocked(prize));
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
}
prize.cursed = false;
prize.cursedKnown = true;
//33% chance for an extra update.

View File

@@ -21,12 +21,13 @@
package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special;
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLevitation;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter;
@@ -133,13 +134,18 @@ public class TrapsRoom extends SpecialRoom {
}
//1 floor set higher in probability, never cursed
do {
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (Random.Int(2) == 0) {
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} while (prize.cursed || Challenges.isItemBlocked(prize));
} else {
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
}
prize.cursed = false;
prize.cursedKnown = true;
//33% chance for an extra update.