v3.3.5: fixed distortion traps not possibly spawning all rare mob alts
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user