v3.2.0: enhanced thrown weapons can now spawn from some special rooms

This commit is contained in:
Evan Debenham
2025-07-18 11:40:13 -04:00
parent 4226a16b74
commit aa9cbb749e
3 changed files with 42 additions and 23 deletions

View File

@@ -77,6 +77,9 @@ public class PitRoom extends SpecialRoom {
case 2:
mainLoot = Generator.random(Random.oneOf(
Generator.Category.WEAPON,
Generator.Category.WEAPON,
Generator.Category.MISSILE,
Generator.Category.ARMOR,
Generator.Category.ARMOR));
break;
}

View File

@@ -111,16 +111,25 @@ public class PoolRoom extends SpecialRoom {
}
//1 floor set higher in probability, never cursed
if (Random.Int(2) == 0) {
switch (Random.Int(5)){
case 0: case 1: default:
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} else {
break;
case 2:
prize = Generator.randomMissile((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
break;
case 3: case 4:
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
break;
}
prize.cursed = false;
prize.cursedKnown = true;

View File

@@ -23,7 +23,6 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
@@ -184,17 +183,25 @@ public class SentryRoom extends SpecialRoom {
}
//1 floor set higher in probability, never cursed
//1 floor set higher in probability, never cursed
if (Random.Int(2) == 0) {
switch (Random.Int(5)){
case 0: case 1: default:
prize = Generator.randomWeapon((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
} else {
break;
case 2:
prize = Generator.randomMissile((Dungeon.depth / 5) + 1);
if (((Weapon)prize).hasCurseEnchant()){
((Weapon) prize).enchant(null);
}
break;
case 3: case 4:
prize = Generator.randomArmor((Dungeon.depth / 5) + 1);
if (((Armor)prize).hasCurseGlyph()){
((Armor) prize).inscribe(null);
}
break;
}
prize.cursed = false;
prize.cursedKnown = true;
@@ -354,7 +361,7 @@ public class SentryRoom extends SpecialRoom {
public static class SentrySprite extends MobSprite {
private Animation charging;
private final Animation charging;
private Emitter chargeParticles;
public SentrySprite(){