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 11dbffebd..c0e8b11e8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -140,7 +140,7 @@ public abstract class Char extends Actor { } public boolean canInteract( Hero h ){ - return Dungeon.level.adjacent( pos, h.pos ); + return Dungeon.level.adjacent( pos, h.pos ) && h.buff(Vertigo.class) == null; } //swaps places by default 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 291268794..1729dfd10 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 @@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ShieldBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror; import com.shatteredpixel.shatteredpixeldungeon.items.Gold; +import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.BruteSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; @@ -67,7 +68,16 @@ public class Brute extends Mob { public int drRoll() { return Random.NormalIntRange(0, 8); } - + + @Override + public void die(Object cause) { + super.die(cause); + + if (cause == Chasm.class){ + hasRaged = true; //don't let enrage trigger for chasm deaths + } + } + @Override public boolean isAlive() { if (HP > 0){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index 9743fa8d2..125e29f14 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -638,10 +638,10 @@ public abstract class Mob extends Char { if (bonus != null && !bonus.isEmpty()) { for (Item b : bonus) Dungeon.level.drop(b, pos).sprite.drop(); if (RingOfWealth.latestDropWasRare){ - if (sprite != null) new Flare(8, 48).color(0xAA00FF, true).show(sprite, 3f); + new Flare(8, 48).color(0xAA00FF, true).show(sprite, 3f); RingOfWealth.latestDropWasRare = false; } else { - if (sprite != null) new Flare(8, 24).color(0xFFFFFF, true).show(sprite, 3f); + new Flare(8, 24).color(0xFFFFFF, true).show(sprite, 3f); } } } 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 9c6419853..998123a3c 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 @@ -193,9 +193,10 @@ public class Spinner extends Mob { if (Dungeon.level.passable[rightPos])GameScene.add(Blob.seed(rightPos, 20, Web.class)); webCoolDown = 10; - } - if (Dungeon.level.heroFOV[enemy.pos]){ - Dungeon.hero.interrupt(); + + if (Dungeon.level.heroFOV[enemy.pos]){ + Dungeon.hero.interrupt(); + } } next(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java index d190ed900..bfefa3271 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Multiplicity.java @@ -98,9 +98,10 @@ public class Multiplicity extends Armor.Glyph { if (m != null) { if (Char.hasProp(m, Char.Property.LARGE)){ - for ( int i : spawnPoints){ + for ( int i : spawnPoints.toArray(new Integer[0])){ if (!Dungeon.level.openSpace[i]){ - spawnPoints.remove(i); + //remove the value, not at the index + spawnPoints.remove((Integer) i); } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/StatueSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/StatueSprite.java index 57505b055..1c347a782 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/StatueSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/StatueSprite.java @@ -49,7 +49,7 @@ public class StatueSprite extends MobSprite { play( idle ); } - private static int[] tierFrames = {0, 21, 32, 43, 54, 63}; + private static int[] tierFrames = {0, 21, 32, 43, 54, 65}; public void setArmor( int tier ){ int c = tierFrames[(int)GameMath.gate(0, tier, 5)];