v0.6.2: Improved how resistances and immunities are managed

This commit is contained in:
Evan Debenham 2017-09-18 02:53:48 -04:00
parent bb5e798b98
commit 3ca4d7737a
31 changed files with 201 additions and 449 deletions

View File

@ -41,6 +41,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Speed;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Door; import com.shatteredpixel.shatteredpixeldungeon.levels.features.Door;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -459,25 +460,64 @@ public abstract class Char extends Actor {
next(); next();
} }
private static final HashSet<Class<?>> EMPTY = new HashSet<>(); protected final HashSet<Class> resistances = new HashSet<>();
public HashSet<Class<?>> resistances() { public HashSet<Class> resistances() {
return EMPTY; HashSet<Class> result = new HashSet<>(resistances);
for (Property p : properties()){
result.addAll(p.resistances());
}
for (Buff b : buffs()){
result.addAll(b.resistances());
}
result.addAll(RingOfElements.resistances( this ));
return result;
} }
public HashSet<Class<?>> immunities() { protected final HashSet<Class> immunities = new HashSet<>();
return EMPTY;
public HashSet<Class> immunities() {
HashSet<Class> result = new HashSet<>(immunities);
for (Property p : properties()){
result.addAll(p.immunities());
}
for (Buff b : buffs()){
result.addAll(b.immunities());
}
return result;
} }
protected HashSet<Property> properties = new HashSet<>(); protected HashSet<Property> properties = new HashSet<>();
public HashSet<Property> properties() { return properties; } public HashSet<Property> properties() {
return new HashSet<>(properties);
}
public enum Property{ public enum Property{
BOSS, BOSS,
MINIBOSS, MINIBOSS,
UNDEAD, UNDEAD,
DEMONIC, DEMONIC,
IMMOVABLE IMMOVABLE;
private HashSet<Class> resistances;
private HashSet<Class> immunities;
Property(){
this(new HashSet<Class>(), new HashSet<Class>());
}
Property( HashSet<Class> resistances, HashSet<Class> immunities){
this.resistances = resistances;
this.immunities = immunities;
}
public HashSet<Class> resistances(){
return new HashSet<>(resistances);
}
public HashSet<Class> immunities(){
return new HashSet<>(immunities);
}
} }
} }

View File

@ -42,10 +42,18 @@ public class Buff extends Actor {
//buffs that work behind the scenes, or have other visual indicators can usually be silent. //buffs that work behind the scenes, or have other visual indicators can usually be silent.
public enum buffType {POSITIVE, NEGATIVE, NEUTRAL, SILENT}; public enum buffType {POSITIVE, NEGATIVE, NEUTRAL, SILENT};
public buffType type = buffType.SILENT; public buffType type = buffType.SILENT;
public HashSet<Class<?>> resistances = new HashSet<Class<?>>(); protected HashSet<Class> resistances = new HashSet<>();
public HashSet<Class<?>> immunities = new HashSet<Class<?>>(); public HashSet<Class> resistances() {
return new HashSet<>(resistances);
}
protected HashSet<Class> immunities = new HashSet<>();
public HashSet<Class> immunities() {
return new HashSet<>(immunities);
}
public boolean attachTo( Char target ) { public boolean attachTo( Char target ) {

View File

@ -125,7 +125,6 @@ import com.watabou.utils.Random;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
public class Hero extends Char { public class Hero extends Char {
@ -1592,21 +1591,6 @@ public class Hero extends Char {
live(); live();
} }
@Override
public HashSet<Class<?>> resistances() {
return RingOfElements.resistances( this );
}
@Override
public HashSet<Class<?>> immunities() {
HashSet<Class<?>> immunities = new HashSet<Class<?>>();
for (Buff buff : buffs()){
for (Class<?> immunity : buff.immunities)
immunities.add(immunity);
}
return immunities;
}
@Override @Override
public void next() { public void next() {

View File

@ -30,8 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Vampir
import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Bat extends Mob { public class Bat extends Mob {
{ {
@ -91,13 +89,7 @@ public class Bat extends Mob {
return super.createLoot(); return super.createLoot();
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( Vampiric.class );
RESISTANCES.add( Vampiric.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
} }

View File

@ -146,14 +146,8 @@ public class Bee extends Mob {
return super.getCloser( target ); return super.getCloser( target );
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Poison.class );
IMMUNITIES.add( Poison.class ); immunities.add( Amok.class );
IMMUNITIES.add( Amok.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Brute extends Mob { public class Brute extends Mob {
{ {
@ -86,13 +84,7 @@ public class Brute extends Mob {
} }
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Terror.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -52,8 +52,6 @@ import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class DM300 extends Mob { public class DM300 extends Mob {
{ {
@ -166,26 +164,14 @@ public class DM300 extends Mob {
yell( Messages.get(this, "notice") ); yell( Messages.get(this, "notice") );
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( ScrollOfPsionicBlast.class );
RESISTANCES.add( ScrollOfPsionicBlast.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( ToxicGas.class );
return RESISTANCES; immunities.add( Terror.class );
}
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( ToxicGas.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
@Override @Override

View File

@ -34,8 +34,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazin
import com.shatteredpixel.shatteredpixeldungeon.sprites.ElementalSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ElementalSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Elemental extends Mob { public class Elemental extends Mob {
{ {
@ -97,15 +95,9 @@ public class Elemental extends Mob {
} }
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Burning.class );
IMMUNITIES.add( Burning.class ); immunities.add( Blazing.class );
IMMUNITIES.add( Blazing.class ); immunities.add( WandOfFireblast.class );
IMMUNITIES.add( WandOfFireblast.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -41,8 +41,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Eye extends Mob { public class Eye extends Mob {
{ {
@ -221,26 +219,14 @@ public class Eye extends Mob {
beamCharged = bundle.getBoolean(BEAM_CHARGED); beamCharged = bundle.getBoolean(BEAM_CHARGED);
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( WandOfDisintegration.class );
RESISTANCES.add( WandOfDisintegration.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( Vampiric.class );
RESISTANCES.add( Vampiric.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Terror.class );
return RESISTANCES;
}
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private class Hunting extends Mob.Hunting{ private class Hunting extends Mob.Hunting{

View File

@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class FetidRat extends Rat { public class FetidRat extends Rat {
{ {
@ -83,14 +81,8 @@ public class FetidRat extends Rat {
Ghost.Quest.process(); Ghost.Quest.process();
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( StenchGas.class );
IMMUNITIES.add( StenchGas.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -29,8 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GolemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.GolemSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Golem extends Mob { public class Golem extends Mob {
{ {
@ -69,24 +67,10 @@ public class Golem extends Mob {
super.die( cause ); super.die( cause );
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>();
static {
}
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Amok.class );
return RESISTANCES; immunities.add( Terror.class );
} immunities.add( Sleep.class );
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( Amok.class );
IMMUNITIES.add( Terror.class );
IMMUNITIES.add( Sleep.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -51,8 +51,6 @@ import com.watabou.utils.Bundle;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Goo extends Mob { public class Goo extends Mob {
{ {
@ -273,15 +271,9 @@ public class Goo extends Mob {
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( ToxicGas.class );
RESISTANCES.add( ToxicGas.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( ScrollOfPsionicBlast.class );
RESISTANCES.add( ScrollOfPsionicBlast.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
} }

View File

@ -52,8 +52,6 @@ import com.watabou.utils.Bundle;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class King extends Mob { public class King extends Mob {
private static final int MAX_ARMY_SIZE = 5; private static final int MAX_ARMY_SIZE = 5;
@ -229,29 +227,17 @@ public class King extends Mob {
yell( Messages.get(this, "notice") ); yell( Messages.get(this, "notice") );
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( ToxicGas.class );
RESISTANCES.add( ToxicGas.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( ScrollOfPsionicBlast.class );
RESISTANCES.add( ScrollOfPsionicBlast.class ); resistances.add( WandOfDisintegration.class );
RESISTANCES.add( WandOfDisintegration.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Paralysis.class );
return RESISTANCES; immunities.add( Vertigo.class );
} immunities.add( Terror.class );
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( Paralysis.class );
IMMUNITIES.add( Vertigo.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
public static class Undead extends Mob { public static class Undead extends Mob {
@ -325,15 +311,9 @@ public class King extends Mob {
return Random.NormalIntRange(0, 5); return Random.NormalIntRange(0, 5);
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Grim.class );
IMMUNITIES.add( Grim.class ); immunities.add( Paralysis.class );
IMMUNITIES.add( Paralysis.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }
} }

View File

@ -41,7 +41,6 @@ import com.watabou.utils.Random;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet;
import java.util.List; import java.util.List;
public class Mimic extends Mob { public class Mimic extends Mob {
@ -167,13 +166,7 @@ public class Mimic extends Mob {
return m; return m;
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( ScrollOfPsionicBlast.class );
IMMUNITIES.add( ScrollOfPsionicBlast.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -36,8 +36,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Monk extends Mob { public class Monk extends Mob {
{ {
@ -109,15 +107,9 @@ public class Monk extends Mob {
return damage; return damage;
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Amok.class );
IMMUNITIES.add( Amok.class ); immunities.add( Terror.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private static String DISARMHITS = "hitsToDisarm"; private static String DISARMHITS = "hitsToDisarm";

View File

@ -38,8 +38,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.PoolRoom;
import com.shatteredpixel.shatteredpixeldungeon.sprites.PiranhaSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.PiranhaSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Piranha extends Mob { public class Piranha extends Mob {
{ {
@ -131,19 +129,13 @@ public class Piranha extends Mob {
} }
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Burning.class );
IMMUNITIES.add( Burning.class ); immunities.add( Paralysis.class );
IMMUNITIES.add( Paralysis.class ); immunities.add( ToxicGas.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( VenomGas.class );
IMMUNITIES.add( VenomGas.class ); immunities.add( Roots.class );
IMMUNITIES.add( Roots.class ); immunities.add( Frost.class );
IMMUNITIES.add( Frost.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private class Hunting extends Mob.Hunting{ private class Hunting extends Mob.Hunting{

View File

@ -32,8 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RotHeartSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotHeartSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class RotHeart extends Mob { public class RotHeart extends Mob {
{ {
@ -113,16 +111,10 @@ public class RotHeart extends Mob {
public int drRoll() { public int drRoll() {
return Random.NormalIntRange(0, 5); return Random.NormalIntRange(0, 5);
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( ToxicGas.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( Terror.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RotLasherSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotLasherSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class RotLasher extends Mob { public class RotLasher extends Mob {
{ {
@ -105,15 +103,9 @@ public class RotLasher extends Mob {
public int drRoll() { public int drRoll() {
return Random.NormalIntRange(0, 8); return Random.NormalIntRange(0, 8);
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( ToxicGas.class );
IMMUNITIES.add( ToxicGas.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private class Waiting extends Mob.Wandering{} private class Waiting extends Mob.Wandering{}

View File

@ -35,8 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ScorpioSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ScorpioSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Scorpio extends Mob { public class Scorpio extends Mob {
{ {
@ -106,14 +104,8 @@ public class Scorpio extends Mob {
} }
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( Vampiric.class );
RESISTANCES.add( Vampiric.class ); resistances.add( Poison.class );
RESISTANCES.add( Poison.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
} }

View File

@ -35,8 +35,6 @@ import com.watabou.noosa.Camera;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Shaman extends Mob implements Callback { public class Shaman extends Mob implements Callback {
private static final float TIME_TO_ZAP = 1f; private static final float TIME_TO_ZAP = 1f;
@ -122,13 +120,7 @@ public class Shaman extends Mob implements Callback {
next(); next();
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( LightningTrap.Electricity.class );
RESISTANCES.add( LightningTrap.Electricity.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
} }

View File

@ -33,8 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Spinner extends Mob { public class Spinner extends Mob {
{ {
@ -97,26 +95,12 @@ public class Spinner extends Mob {
super.move(step); super.move(step);
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
resistances.add(Poison.class);
static {
RESISTANCES.add(Poison.class);
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add(Roots.class);
return RESISTANCES;
}
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add(Roots.class);
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private class Fleeing extends Mob.Fleeing { private class Fleeing extends Mob.Fleeing {

View File

@ -37,8 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.StatueSprite;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Statue extends Mob { public class Statue extends Mob {
{ {
@ -155,22 +153,13 @@ public class Statue extends Mob {
return Messages.get(this, "desc", weapon.name()); return Messages.get(this, "desc", weapon.name());
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); resistances.add(ToxicGas.class);
static { resistances.add(Poison.class);
RESISTANCES.add( ToxicGas.class ); resistances.add(Grim.class);
RESISTANCES.add( Poison.class );
RESISTANCES.add( Grim.class );
IMMUNITIES.add( Vampiric.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Vampiric.class );
return RESISTANCES;
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -40,7 +40,6 @@ import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
public class Succubus extends Mob { public class Succubus extends Mob {
@ -138,23 +137,11 @@ public class Succubus extends Mob {
return Random.NormalIntRange(0, 10); return Random.NormalIntRange(0, 10);
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( Vampiric.class );
RESISTANCES.add( Vampiric.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Sleep.class );
return RESISTANCES;
}
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( Sleep.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -50,8 +50,6 @@ import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Tengu extends Mob { public class Tengu extends Mob {
{ {
@ -225,17 +223,11 @@ public class Tengu extends Mob {
} }
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( ToxicGas.class );
RESISTANCES.add( ToxicGas.class ); resistances.add( Poison.class );
RESISTANCES.add( Poison.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( ScrollOfPsionicBlast.class );
RESISTANCES.add( ScrollOfPsionicBlast.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
@Override @Override

View File

@ -37,8 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Warlock extends Mob implements Callback { public class Warlock extends Mob implements Callback {
private static final float TIME_TO_ZAP = 1f; private static final float TIME_TO_ZAP = 1f;
@ -144,13 +142,7 @@ public class Warlock extends Mob implements Callback {
return loot; return loot;
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( Grim.class );
RESISTANCES.add( Grim.class );
}
@Override
public HashSet<Class<?>> resistances() {
return RESISTANCES;
} }
} }

View File

@ -34,8 +34,6 @@ import com.watabou.utils.Bundle;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Wraith extends Mob { public class Wraith extends Mob {
private static final float SPAWN_DELAY = 2f; private static final float SPAWN_DELAY = 2f;
@ -119,14 +117,8 @@ public class Wraith extends Mob {
} }
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( Grim.class );
IMMUNITIES.add( Grim.class ); immunities.add( Terror.class );
IMMUNITIES.add( Terror.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -181,23 +181,17 @@ public class Yog extends Mob {
yell( Messages.get(this, "notice") ); yell( Messages.get(this, "notice") );
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static {
IMMUNITIES.add( Grim.class ); immunities.add( Grim.class );
IMMUNITIES.add( Terror.class ); immunities.add( Terror.class );
IMMUNITIES.add( Amok.class ); immunities.add( Amok.class );
IMMUNITIES.add( Charm.class ); immunities.add( Charm.class );
IMMUNITIES.add( Sleep.class ); immunities.add( Sleep.class );
IMMUNITIES.add( Burning.class ); immunities.add( Burning.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( ToxicGas.class );
IMMUNITIES.add( ScrollOfPsionicBlast.class ); immunities.add( ScrollOfPsionicBlast.class );
IMMUNITIES.add( Vertigo.class ); immunities.add( Vertigo.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
@Override @Override
@ -269,30 +263,18 @@ public class Yog extends Mob {
if (lock != null) lock.addTime(dmg*0.5f); if (lock != null) lock.addTime(dmg*0.5f);
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( ToxicGas.class );
RESISTANCES.add( ToxicGas.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class ); resistances.add( ScrollOfPsionicBlast.class );
RESISTANCES.add( ScrollOfPsionicBlast.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Amok.class );
return RESISTANCES; immunities.add( Sleep.class );
} immunities.add( Terror.class );
immunities.add( Poison.class );
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); immunities.add( Vertigo.class );
static {
IMMUNITIES.add( Amok.class );
IMMUNITIES.add( Sleep.class );
IMMUNITIES.add( Terror.class );
IMMUNITIES.add( Poison.class );
IMMUNITIES.add( Vertigo.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }
@ -379,31 +361,19 @@ public class Yog extends Mob {
if (lock != null) lock.addTime(dmg*0.5f); if (lock != null) lock.addTime(dmg*0.5f);
} }
private static final HashSet<Class<?>> RESISTANCES = new HashSet<>(); {
static { resistances.add( ToxicGas.class );
RESISTANCES.add( ToxicGas.class ); resistances.add( Grim.class );
RESISTANCES.add( Grim.class );
} }
@Override {
public HashSet<Class<?>> resistances() { immunities.add( Amok.class );
return RESISTANCES; immunities.add( Sleep.class );
} immunities.add( Terror.class );
immunities.add( Burning.class );
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); immunities.add( ScrollOfPsionicBlast.class );
static { immunities.add( Vertigo.class );
IMMUNITIES.add( Amok.class );
IMMUNITIES.add( Sleep.class );
IMMUNITIES.add( Terror.class );
IMMUNITIES.add( Burning.class );
IMMUNITIES.add( ScrollOfPsionicBlast.class );
IMMUNITIES.add( Vertigo.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -55,8 +55,6 @@ import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.HashSet;
public class Ghost extends NPC { public class Ghost extends NPC {
{ {
@ -177,16 +175,10 @@ public class Ghost extends NPC {
return false; return false;
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>();
static {
IMMUNITIES.add( Paralysis.class );
IMMUNITIES.add( Roots.class );
}
@Override {
public HashSet<Class<?>> immunities() { immunities.add( Paralysis.class );
return IMMUNITIES; immunities.add( Roots.class );
} }
public static class Quest { public static class Quest {

View File

@ -142,16 +142,10 @@ public class MirrorImage extends NPC {
return true; return true;
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<>(); {
static { immunities.add( ToxicGas.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( VenomGas.class );
IMMUNITIES.add( VenomGas.class ); immunities.add( Burning.class );
IMMUNITIES.add( Burning.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
} }

View File

@ -659,18 +659,12 @@ public class DriedRose extends Artifact {
} }
super.destroy(); super.destroy();
} }
private static final HashSet<Class<?>> IMMUNITIES = new HashSet<Class<?>>(); {
static { immunities.add( ToxicGas.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( VenomGas.class );
IMMUNITIES.add( VenomGas.class ); immunities.add( Burning.class );
IMMUNITIES.add( Burning.class ); immunities.add( ScrollOfPsionicBlast.class );
IMMUNITIES.add( ScrollOfPsionicBlast.class );
}
@Override
public HashSet<Class<?>> immunities() {
return IMMUNITIES;
} }
private class Wandering extends Mob.Wandering { private class Wandering extends Mob.Wandering {

View File

@ -41,10 +41,9 @@ public class RingOfElements extends Ring {
return new Resistance(); return new Resistance();
} }
private static final HashSet<Class<?>> EMPTY = new HashSet<Class<?>>(); private static final HashSet<Class> EMPTY = new HashSet<>();
public static final HashSet<Class<?>> FULL; public static final HashSet<Class> FULL = new HashSet<>();
static { static {
FULL = new HashSet<Class<?>>();
FULL.add( Burning.class ); FULL.add( Burning.class );
FULL.add( ToxicGas.class ); FULL.add( ToxicGas.class );
FULL.add( Poison.class ); FULL.add( Poison.class );
@ -55,7 +54,7 @@ public class RingOfElements extends Ring {
FULL.add( Yog.BurningFist.class ); FULL.add( Yog.BurningFist.class );
} }
public static HashSet<Class<?>> resistances( Char target ){ public static HashSet<Class> resistances( Char target ){
if (Random.Int( getBonus(target, Resistance.class) + 2 ) >= 2) { if (Random.Int( getBonus(target, Resistance.class) + 2 ) >= 2) {
return FULL; return FULL;
} else { } else {