diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java index 4834b6e70..14f985769 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/Runestone.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.stones; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; @@ -33,16 +34,15 @@ public abstract class Runestone extends Item { defaultAction = AC_THROW; } - //runestones press the cell they're thrown to by default, but a couple stones override this - protected boolean pressesCell = true; - @Override protected void onThrow(int cell) { - if (Dungeon.level.pit[cell] || !defaultAction().equals(AC_THROW)){ + ///inventory stones are thrown like normal items, other stones don't trigger when thrown into pits + if (this instanceof InventoryStone || + (Dungeon.level.pit[cell] && Actor.findChar(cell) == null)){ super.onThrow( cell ); } else { - if (pressesCell) Dungeon.level.pressCell( cell ); activate(cell); + if (Actor.findChar(cell) == null) Dungeon.level.pressCell( cell ); Invisibility.dispel(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfDisarming.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfDisarming.java index e41ab1804..1927b0c4e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfDisarming.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfDisarming.java @@ -41,9 +41,6 @@ public class StoneOfDisarming extends Runestone { { image = ItemSpriteSheet.STONE_DISARM; - - //so traps do not activate before the effect - pressesCell = false; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java index c8375cde6..a55bd69dd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java @@ -39,9 +39,6 @@ public class StoneOfFlock extends Runestone { { image = ItemSpriteSheet.STONE_FLOCK; - - //the sheep will press the cell instead - pressesCell = false; } @Override