v0.2.3: refactored buffs which provide immunities, added (unused) resistances as well.

This commit is contained in:
Evan Debenham 2014-11-19 21:36:13 -05:00
parent b8355f0471
commit 4a3098c208
6 changed files with 23 additions and 19 deletions

View File

@ -21,10 +21,16 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import java.util.HashSet;
public class Buff extends Actor { public class Buff extends Actor {
public Char target; public Char target;
public static HashSet<Class<?>> resistances = new HashSet<Class<?>>();
public static HashSet<Class<?>> immunities = new HashSet<Class<?>>();
public boolean attachTo( Char target ) { public boolean attachTo( Char target ) {
if (target.immunities().contains( getClass() )) { if (target.immunities().contains( getClass() )) {

View File

@ -26,10 +26,9 @@ public class EarthImbue extends FlavourBuff {
return "Imbued with Earth"; return "Imbued with Earth";
} }
public static final HashSet<Class<?>> IMMUNITIES = new HashSet<Class<?>>();
static { static {
IMMUNITIES.add( Paralysis.class ); immunities.add( Paralysis.class );
IMMUNITIES.add( Roots.class ); immunities.add( Roots.class );
IMMUNITIES.add( Slow.class ); immunities.add( Slow.class );
} }
} }

View File

@ -42,8 +42,7 @@ public class FireImbue extends Buff {
return "Imbued with Fire"; return "Imbued with Fire";
} }
public static final HashSet<Class<?>> IMMUNITIES = new HashSet<Class<?>>();
static { static {
IMMUNITIES.add( Burning.class ); immunities.add( Burning.class );
} }
} }

View File

@ -39,11 +39,10 @@ public class GasesImmunity extends FlavourBuff {
return "Immune to gases"; return "Immune to gases";
} }
public static final HashSet<Class<?>> IMMUNITIES = new HashSet<Class<?>>();
static { static {
IMMUNITIES.add( ParalyticGas.class ); immunities.add( ParalyticGas.class );
IMMUNITIES.add( ToxicGas.class ); immunities.add( ToxicGas.class );
IMMUNITIES.add( ConfusionGas.class ); immunities.add( ConfusionGas.class );
IMMUNITIES.add( StenchGas.class ); immunities.add( StenchGas.class );
} }
} }

View File

@ -32,9 +32,8 @@ public class ToxicImbue extends Buff {
return "Imbued with Toxicity"; return "Imbued with Toxicity";
} }
public static final HashSet<Class<?>> IMMUNITIES = new HashSet<Class<?>>();
static { static {
IMMUNITIES.add( ToxicGas.class ); immunities.add( ToxicGas.class );
IMMUNITIES.add( Poison.class ); immunities.add( Poison.class );
} }
} }

View File

@ -48,7 +48,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Combo; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Combo;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Fury; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Fury;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.GasesImmunity;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
@ -82,7 +81,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMappi
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
@ -1437,8 +1435,12 @@ public class Hero extends Char {
@Override @Override
public HashSet<Class<?>> immunities() { public HashSet<Class<?>> immunities() {
GasesImmunity buff = buff( GasesImmunity.class ); HashSet<Class<?>> immunities = new HashSet<Class<?>>();
return buff == null ? super.immunities() : GasesImmunity.IMMUNITIES; for (Buff buff : buffs()){
for (Class<?> immunity : buff.immunities)
immunities.add(immunity);
}
return immunities;
} }
public static interface Doom { public static interface Doom {