From 3ca4d7737ad40f1524e67bfde5299d068ce78d15 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 18 Sep 2017 02:53:48 -0400 Subject: [PATCH] v0.6.2: Improved how resistances and immunities are managed --- .../shatteredpixeldungeon/actors/Char.java | 54 +++++++++-- .../actors/buffs/Buff.java | 16 +++- .../actors/hero/Hero.java | 16 ---- .../actors/mobs/Bat.java | 12 +-- .../actors/mobs/Bee.java | 12 +-- .../actors/mobs/Brute.java | 12 +-- .../actors/mobs/DM300.java | 26 ++---- .../actors/mobs/Elemental.java | 16 +--- .../actors/mobs/Eye.java | 26 ++---- .../actors/mobs/FetidRat.java | 14 +-- .../actors/mobs/Golem.java | 24 +---- .../actors/mobs/Goo.java | 16 +--- .../actors/mobs/King.java | 44 +++------ .../actors/mobs/Mimic.java | 11 +-- .../actors/mobs/Monk.java | 14 +-- .../actors/mobs/Piranha.java | 22 ++--- .../actors/mobs/RotHeart.java | 16 +--- .../actors/mobs/RotLasher.java | 14 +-- .../actors/mobs/Scorpio.java | 14 +-- .../actors/mobs/Shaman.java | 12 +-- .../actors/mobs/Spinner.java | 26 ++---- .../actors/mobs/Statue.java | 23 ++--- .../actors/mobs/Succubus.java | 21 +---- .../actors/mobs/Tengu.java | 18 ++-- .../actors/mobs/Warlock.java | 12 +-- .../actors/mobs/Wraith.java | 14 +-- .../actors/mobs/Yog.java | 90 +++++++------------ .../actors/mobs/npcs/Ghost.java | 14 +-- .../actors/mobs/npcs/MirrorImage.java | 16 ++-- .../items/artifacts/DriedRose.java | 18 ++-- .../items/rings/RingOfElements.java | 7 +- 31 files changed, 201 insertions(+), 449 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 09269f0c3..3a6ca2019 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -41,6 +41,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Speed; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; 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.features.Door; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -459,25 +460,64 @@ public abstract class Char extends Actor { next(); } - private static final HashSet> EMPTY = new HashSet<>(); + protected final HashSet resistances = new HashSet<>(); - public HashSet> resistances() { - return EMPTY; + public HashSet resistances() { + HashSet 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> immunities() { - return EMPTY; + protected final HashSet immunities = new HashSet<>(); + + public HashSet immunities() { + HashSet result = new HashSet<>(immunities); + for (Property p : properties()){ + result.addAll(p.immunities()); + } + for (Buff b : buffs()){ + result.addAll(b.immunities()); + } + return result; } protected HashSet properties = new HashSet<>(); - public HashSet properties() { return properties; } + public HashSet properties() { + return new HashSet<>(properties); + } public enum Property{ BOSS, MINIBOSS, UNDEAD, DEMONIC, - IMMOVABLE + IMMOVABLE; + + private HashSet resistances; + private HashSet immunities; + + Property(){ + this(new HashSet(), new HashSet()); + } + + Property( HashSet resistances, HashSet immunities){ + this.resistances = resistances; + this.immunities = immunities; + } + + public HashSet resistances(){ + return new HashSet<>(resistances); + } + + public HashSet immunities(){ + return new HashSet<>(immunities); + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java index b87123434..1d8f4f5e7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Buff.java @@ -42,10 +42,18 @@ public class Buff extends Actor { //buffs that work behind the scenes, or have other visual indicators can usually be silent. public enum buffType {POSITIVE, NEGATIVE, NEUTRAL, SILENT}; public buffType type = buffType.SILENT; - - public HashSet> resistances = new HashSet>(); - - public HashSet> immunities = new HashSet>(); + + protected HashSet resistances = new HashSet<>(); + + public HashSet resistances() { + return new HashSet<>(resistances); + } + + protected HashSet immunities = new HashSet<>(); + + public HashSet immunities() { + return new HashSet<>(immunities); + } public boolean attachTo( Char target ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 208bd1d53..b6f3fea9c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -125,7 +125,6 @@ import com.watabou.utils.Random; import java.util.ArrayList; import java.util.Collections; -import java.util.HashSet; public class Hero extends Char { @@ -1592,21 +1591,6 @@ public class Hero extends Char { live(); } - - @Override - public HashSet> resistances() { - return RingOfElements.resistances( this ); - } - - @Override - public HashSet> immunities() { - HashSet> immunities = new HashSet>(); - for (Buff buff : buffs()){ - for (Class immunity : buff.immunities) - immunities.add(immunity); - } - return immunities; - } @Override public void next() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java index d519a4fdd..cb61eeb62 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bat.java @@ -30,8 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Vampir import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Bat extends Mob { { @@ -91,13 +89,7 @@ public class Bat extends Mob { return super.createLoot(); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( Vampiric.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( Vampiric.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java index 3fc3431f3..ef6edfc44 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java @@ -146,14 +146,8 @@ public class Bee extends Mob { return super.getCloser( target ); } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Poison.class ); - IMMUNITIES.add( Amok.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Poison.class ); + immunities.add( Amok.class ); } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java index f560629c7..6566b53ee 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Brute.java @@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Brute extends Mob { { @@ -86,13 +84,7 @@ public class Brute extends Mob { } } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Terror.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java index 2de2f8848..feacc0e89 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DM300.java @@ -52,8 +52,6 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class DM300 extends Mob { { @@ -166,26 +164,14 @@ public class DM300 extends Mob { yell( Messages.get(this, "notice") ); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( Grim.class ); - RESISTANCES.add( ScrollOfPsionicBlast.class ); + { + resistances.add( Grim.class ); + resistances.add( ScrollOfPsionicBlast.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( ToxicGas.class ); + immunities.add( Terror.class ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java index 39eff71dc..9753a4baa 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java @@ -34,8 +34,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazin import com.shatteredpixel.shatteredpixeldungeon.sprites.ElementalSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Elemental extends Mob { { @@ -97,15 +95,9 @@ public class Elemental extends Mob { } } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Burning.class ); - IMMUNITIES.add( Blazing.class ); - IMMUNITIES.add( WandOfFireblast.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Burning.class ); + immunities.add( Blazing.class ); + immunities.add( WandOfFireblast.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java index b4612df2c..344f7f1f9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java @@ -41,8 +41,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Eye extends Mob { { @@ -221,26 +219,14 @@ public class Eye extends Mob { beamCharged = bundle.getBoolean(BEAM_CHARGED); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( WandOfDisintegration.class ); - RESISTANCES.add( Grim.class ); - RESISTANCES.add( Vampiric.class ); + { + resistances.add( WandOfDisintegration.class ); + resistances.add( Grim.class ); + resistances.add( Vampiric.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Terror.class ); } private class Hunting extends Mob.Hunting{ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java index c50d62e60..f686f7be2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java @@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class FetidRat extends Rat { { @@ -83,14 +81,8 @@ public class FetidRat extends Rat { Ghost.Quest.process(); } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( StenchGas.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add( StenchGas.class ); } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java index 0a49901c3..54c51bb71 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java @@ -29,8 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp; import com.shatteredpixel.shatteredpixeldungeon.sprites.GolemSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Golem extends Mob { { @@ -69,24 +67,10 @@ public class Golem extends Mob { super.die( cause ); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Amok.class ); - IMMUNITIES.add( Terror.class ); - IMMUNITIES.add( Sleep.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Amok.class ); + immunities.add( Terror.class ); + immunities.add( Sleep.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java index 5c59f7590..ac3b0f834 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java @@ -51,8 +51,6 @@ import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; -import java.util.HashSet; - public class Goo extends Mob { { @@ -273,15 +271,9 @@ public class Goo extends Mob { } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Grim.class ); - RESISTANCES.add( ScrollOfPsionicBlast.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( ToxicGas.class ); + resistances.add( Grim.class ); + resistances.add( ScrollOfPsionicBlast.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java index 14dac9ca9..3e1671f8a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java @@ -52,8 +52,6 @@ import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; -import java.util.HashSet; - public class King extends Mob { private static final int MAX_ARMY_SIZE = 5; @@ -229,29 +227,17 @@ public class King extends Mob { yell( Messages.get(this, "notice") ); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Grim.class ); - RESISTANCES.add( ScrollOfPsionicBlast.class ); - RESISTANCES.add( WandOfDisintegration.class ); + { + resistances.add( ToxicGas.class ); + resistances.add( Grim.class ); + resistances.add( ScrollOfPsionicBlast.class ); + resistances.add( WandOfDisintegration.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Paralysis.class ); - IMMUNITIES.add( Vertigo.class ); - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Paralysis.class ); + immunities.add( Vertigo.class ); + immunities.add( Terror.class ); } public static class Undead extends Mob { @@ -325,15 +311,9 @@ public class King extends Mob { return Random.NormalIntRange(0, 5); } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Grim.class ); - IMMUNITIES.add( Paralysis.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Grim.class ); + immunities.add( Paralysis.class ); } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java index 76d21e75b..6f0f5c7ce 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java @@ -41,7 +41,6 @@ import com.watabou.utils.Random; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; import java.util.List; public class Mimic extends Mob { @@ -167,13 +166,7 @@ public class Mimic extends Mob { return m; } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( ScrollOfPsionicBlast.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( ScrollOfPsionicBlast.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java index 5fb9ef66a..67b7c4453 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Monk.java @@ -36,8 +36,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Monk extends Mob { { @@ -109,15 +107,9 @@ public class Monk extends Mob { return damage; } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Amok.class ); - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Amok.class ); + immunities.add( Terror.class ); } private static String DISARMHITS = "hitsToDisarm"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java index 4d9c42548..562382599 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java @@ -38,8 +38,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.PoolRoom; import com.shatteredpixel.shatteredpixeldungeon.sprites.PiranhaSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Piranha extends Mob { { @@ -131,19 +129,13 @@ public class Piranha extends Mob { } } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Burning.class ); - IMMUNITIES.add( Paralysis.class ); - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( VenomGas.class ); - IMMUNITIES.add( Roots.class ); - IMMUNITIES.add( Frost.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Burning.class ); + immunities.add( Paralysis.class ); + immunities.add( ToxicGas.class ); + immunities.add( VenomGas.class ); + immunities.add( Roots.class ); + immunities.add( Frost.class ); } private class Hunting extends Mob.Hunting{ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java index 1637e3016..3f65392cc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotHeart.java @@ -32,8 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotHeartSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class RotHeart extends Mob { { @@ -113,16 +111,10 @@ public class RotHeart extends Mob { public int drRoll() { return Random.NormalIntRange(0, 5); } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add( ToxicGas.class ); + immunities.add( Terror.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java index 9cd09834e..848891b78 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/RotLasher.java @@ -31,8 +31,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.sprites.RotLasherSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class RotLasher extends Mob { { @@ -105,15 +103,9 @@ public class RotLasher extends Mob { public int drRoll() { return Random.NormalIntRange(0, 8); } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( ToxicGas.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add( ToxicGas.class ); } private class Waiting extends Mob.Wandering{} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java index 3af69dc5b..7edfbfca2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Scorpio.java @@ -35,8 +35,6 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.sprites.ScorpioSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Scorpio extends Mob { { @@ -106,14 +104,8 @@ public class Scorpio extends Mob { } } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( Vampiric.class ); - RESISTANCES.add( Poison.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( Vampiric.class ); + resistances.add( Poison.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java index eedf87e0d..a60c8615d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java @@ -35,8 +35,6 @@ import com.watabou.noosa.Camera; import com.watabou.utils.Callback; import com.watabou.utils.Random; -import java.util.HashSet; - public class Shaman extends Mob implements Callback { private static final float TIME_TO_ZAP = 1f; @@ -122,13 +120,7 @@ public class Shaman extends Mob implements Callback { next(); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( LightningTrap.Electricity.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( LightningTrap.Electricity.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java index fffe8888a..f9e112dda 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Spinner.java @@ -33,8 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite; import com.watabou.utils.Random; -import java.util.HashSet; - public class Spinner extends Mob { { @@ -97,26 +95,12 @@ public class Spinner extends Mob { super.move(step); } - private static final HashSet> RESISTANCES = new HashSet<>(); - - static { - RESISTANCES.add(Poison.class); + { + resistances.add(Poison.class); } - - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - - static { - IMMUNITIES.add(Roots.class); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add(Roots.class); } private class Fleeing extends Mob.Fleeing { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java index e0dcd9704..ab11ec69f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java @@ -37,8 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.StatueSprite; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Statue extends Mob { { @@ -155,22 +153,13 @@ public class Statue extends Mob { return Messages.get(this, "desc", weapon.name()); } - private static final HashSet> RESISTANCES = new HashSet<>(); - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Poison.class ); - RESISTANCES.add( Grim.class ); - IMMUNITIES.add( Vampiric.class ); + { + resistances.add(ToxicGas.class); + resistances.add(Poison.class); + resistances.add(Grim.class); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Vampiric.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java index 2bf937dc3..c47e2ca2d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java @@ -40,7 +40,6 @@ import com.watabou.utils.PathFinder; import com.watabou.utils.Random; import java.util.ArrayList; -import java.util.HashSet; public class Succubus extends Mob { @@ -138,23 +137,11 @@ public class Succubus extends Mob { return Random.NormalIntRange(0, 10); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( Vampiric.class ); + { + resistances.add( Vampiric.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Sleep.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Sleep.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java index a6c317a21..a9fd6b343 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java @@ -50,8 +50,6 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Tengu extends Mob { { @@ -225,17 +223,11 @@ public class Tengu extends Mob { } } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Poison.class ); - RESISTANCES.add( Grim.class ); - RESISTANCES.add( ScrollOfPsionicBlast.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( ToxicGas.class ); + resistances.add( Poison.class ); + resistances.add( Grim.class ); + resistances.add( ScrollOfPsionicBlast.class ); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java index b2ccb1e76..6fc64bcfe 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Warlock.java @@ -37,8 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.utils.Callback; import com.watabou.utils.Random; -import java.util.HashSet; - public class Warlock extends Mob implements Callback { private static final float TIME_TO_ZAP = 1f; @@ -144,13 +142,7 @@ public class Warlock extends Mob implements Callback { return loot; } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( Grim.class ); - } - - @Override - public HashSet> resistances() { - return RESISTANCES; + { + resistances.add( Grim.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java index 6da732704..8a05f53a7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Wraith.java @@ -34,8 +34,6 @@ import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; -import java.util.HashSet; - public class Wraith extends Mob { private static final float SPAWN_DELAY = 2f; @@ -119,14 +117,8 @@ public class Wraith extends Mob { } } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Grim.class ); - IMMUNITIES.add( Terror.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Grim.class ); + immunities.add( Terror.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java index 6c3559698..9798dfcd7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java @@ -181,23 +181,17 @@ public class Yog extends Mob { yell( Messages.get(this, "notice") ); } - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { + { - IMMUNITIES.add( Grim.class ); - IMMUNITIES.add( Terror.class ); - IMMUNITIES.add( Amok.class ); - IMMUNITIES.add( Charm.class ); - IMMUNITIES.add( Sleep.class ); - IMMUNITIES.add( Burning.class ); - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( ScrollOfPsionicBlast.class ); - IMMUNITIES.add( Vertigo.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + immunities.add( Grim.class ); + immunities.add( Terror.class ); + immunities.add( Amok.class ); + immunities.add( Charm.class ); + immunities.add( Sleep.class ); + immunities.add( Burning.class ); + immunities.add( ToxicGas.class ); + immunities.add( ScrollOfPsionicBlast.class ); + immunities.add( Vertigo.class ); } @Override @@ -269,30 +263,18 @@ public class Yog extends Mob { if (lock != null) lock.addTime(dmg*0.5f); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Grim.class ); - RESISTANCES.add( ScrollOfPsionicBlast.class ); + { + resistances.add( ToxicGas.class ); + resistances.add( Grim.class ); + resistances.add( ScrollOfPsionicBlast.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Amok.class ); - IMMUNITIES.add( Sleep.class ); - IMMUNITIES.add( Terror.class ); - IMMUNITIES.add( Poison.class ); - IMMUNITIES.add( Vertigo.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Amok.class ); + immunities.add( Sleep.class ); + immunities.add( Terror.class ); + immunities.add( Poison.class ); + immunities.add( Vertigo.class ); } } @@ -379,31 +361,19 @@ public class Yog extends Mob { if (lock != null) lock.addTime(dmg*0.5f); } - private static final HashSet> RESISTANCES = new HashSet<>(); - static { - RESISTANCES.add( ToxicGas.class ); - RESISTANCES.add( Grim.class ); + { + resistances.add( ToxicGas.class ); + resistances.add( Grim.class ); } - @Override - public HashSet> resistances() { - return RESISTANCES; - } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - 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> immunities() { - return IMMUNITIES; + { + immunities.add( Amok.class ); + immunities.add( Sleep.class ); + immunities.add( Terror.class ); + immunities.add( Burning.class ); + immunities.add( ScrollOfPsionicBlast.class ); + immunities.add( Vertigo.class ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java index 0c9764242..d83343ddd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java @@ -55,8 +55,6 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - public class Ghost extends NPC { { @@ -177,16 +175,10 @@ public class Ghost extends NPC { return false; } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( Paralysis.class ); - IMMUNITIES.add( Roots.class ); - } - @Override - public HashSet> immunities() { - return IMMUNITIES; + { + immunities.add( Paralysis.class ); + immunities.add( Roots.class ); } public static class Quest { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java index eb80526b4..40ceb5142 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/MirrorImage.java @@ -142,16 +142,10 @@ public class MirrorImage extends NPC { return true; } - - private static final HashSet> IMMUNITIES = new HashSet<>(); - static { - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( VenomGas.class ); - IMMUNITIES.add( Burning.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add( ToxicGas.class ); + immunities.add( VenomGas.class ); + immunities.add( Burning.class ); } } \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index ccfdd9246..9aad07380 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -659,18 +659,12 @@ public class DriedRose extends Artifact { } super.destroy(); } - - private static final HashSet> IMMUNITIES = new HashSet>(); - static { - IMMUNITIES.add( ToxicGas.class ); - IMMUNITIES.add( VenomGas.class ); - IMMUNITIES.add( Burning.class ); - IMMUNITIES.add( ScrollOfPsionicBlast.class ); - } - - @Override - public HashSet> immunities() { - return IMMUNITIES; + + { + immunities.add( ToxicGas.class ); + immunities.add( VenomGas.class ); + immunities.add( Burning.class ); + immunities.add( ScrollOfPsionicBlast.class ); } private class Wandering extends Mob.Wandering { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java index a6113b7f0..96923dc58 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/rings/RingOfElements.java @@ -41,10 +41,9 @@ public class RingOfElements extends Ring { return new Resistance(); } - private static final HashSet> EMPTY = new HashSet>(); - public static final HashSet> FULL; + private static final HashSet EMPTY = new HashSet<>(); + public static final HashSet FULL = new HashSet<>(); static { - FULL = new HashSet>(); FULL.add( Burning.class ); FULL.add( ToxicGas.class ); FULL.add( Poison.class ); @@ -55,7 +54,7 @@ public class RingOfElements extends Ring { FULL.add( Yog.BurningFist.class ); } - public static HashSet> resistances( Char target ){ + public static HashSet resistances( Char target ){ if (Random.Int( getBonus(target, Resistance.class) + 2 ) >= 2) { return FULL; } else {