v3.3.5: fixed distortion traps not possibly spawning all rare mob alts

This commit is contained in:
Evan Debenham
2026-01-26 13:40:14 -05:00
parent a8a93b43c1
commit 59cef5cbcb
2 changed files with 26 additions and 25 deletions

View File

@@ -28,6 +28,7 @@ import com.watabou.utils.Random;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
public class MobSpawner extends Actor {
{
@@ -245,24 +246,31 @@ public class MobSpawner extends Actor {
for (int i = 0; i < rotation.size(); i++) {
if (Random.Float() < altChance) {
Class<? extends Mob> cl = rotation.get(i);
if (cl == Rat.class) cl = Albino.class;
else if (cl == Gnoll.class) cl = GnollExile.class;
else if (cl == Crab.class) cl = HermitCrab.class;
else if (cl == Slime.class) cl = CausticSlime.class;
else if (cl == Thief.class) cl = Bandit.class;
else if (cl == Necromancer.class) cl = SpectralNecromancer.class;
else if (cl == Brute.class) cl = ArmoredBrute.class;
else if (cl == DM200.class) cl = DM201.class;
else if (cl == Monk.class) cl = Senior.class;
//chaos elemental spawning happens in Elemental.Random
else if (cl == Scorpio.class) cl = Acidic.class;
rotation.set(i, cl);
Class<? extends Mob> alt = RARE_ALTS.get(cl);
if (alt != null) {
rotation.set(i, cl);
}
}
}
}
public static final HashMap<Class<?extends Mob>, Class<?extends Mob>> RARE_ALTS = new HashMap<>();
static {
RARE_ALTS.put(Rat.class, Albino.class);
RARE_ALTS.put(Gnoll.class, GnollExile.class);
RARE_ALTS.put(Crab.class, HermitCrab.class);
RARE_ALTS.put(Slime.class, CausticSlime.class);
RARE_ALTS.put(Thief.class, Bandit.class);
RARE_ALTS.put(Necromancer.class, SpectralNecromancer.class);
RARE_ALTS.put(Brute.class, ArmoredBrute.class);
RARE_ALTS.put(DM200.class, DM201.class);
RARE_ALTS.put(Monk.class, Senior.class);
//swapping to chaos elemental actually happens in Elemental.random
RARE_ALTS.put(Elemental.class, Elemental.ChaosElemental.class);
RARE_ALTS.put(Scorpio.class, Acidic.class);
}
}

View File

@@ -59,13 +59,6 @@ public class DistortionTrap extends Trap{
shape = LARGE_DOT;
}
private static final ArrayList<Class<?extends Mob>> RARE = new ArrayList<>(Arrays.asList(
Albino.class, CausticSlime.class,
Bandit.class,
ArmoredBrute.class, DM201.class,
Elemental.ChaosElemental.class, Senior.class,
Acidic.class));
@Override
public void activate() {
@@ -134,7 +127,7 @@ public class DistortionTrap extends Trap{
}
break;
case 4:
mob = Reflection.newInstance(Random.element(RARE));
mob = Reflection.newInstance(Random.element(MobSpawner.RARE_ALTS.values()));
break;
}