diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java index c2eaec9b3..741f48606 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java @@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.quest.MetalShard; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; +import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -45,7 +46,7 @@ public class ReclaimTrap extends TargetedSpell { image = ItemSpriteSheet.RECLAIM_TRAP; } - private Class storedTrap = null; + private Class storedTrap = SummoningTrap.class; @Override public ArrayList actions(Hero hero) { @@ -64,7 +65,7 @@ public class ReclaimTrap extends TargetedSpell { quantity++; //storing a trap doesn't consume the spell Trap t = Dungeon.level.traps.get(bolt.collisionPos); if (t != null && t.active && t.visible) { - t.disarm(); + t.disarm(); //even disarms traps that normally wouldn't be Sample.INSTANCE.play(Assets.Sounds.LIGHTNING); ScrollOfRecharging.charge(hero); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java index a4eed3fd4..debf40767 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java @@ -153,7 +153,7 @@ public class DistortionTrap extends Trap{ for (Mob mob : mobs){ //manually trigger traps first to avoid sfx spam if ((t = Dungeon.level.traps.get(mob.pos)) != null && t.active){ - t.disarm(); + if (t.disarmedByActivation) t.disarm(); t.reveal(); t.activate(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java index 01ebf77bd..cd4e89308 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java @@ -57,7 +57,7 @@ public class FlockTrap extends Trap { CellEmitter.get(i).burst(Speck.factory(Speck.WOOL), 4); //before the tile is pressed, directly trigger traps to avoid sfx spam if ((t = Dungeon.level.traps.get(i)) != null && t.active){ - t.disarm(); + if (t.disarmedByActivation) t.disarm(); t.reveal(); t.activate(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java index 6814fa93f..230096c8e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/SummoningTrap.java @@ -90,7 +90,7 @@ public class SummoningTrap extends Trap { for (Mob mob : mobs){ //manually trigger traps first to avoid sfx spam if ((t = Dungeon.level.traps.get(mob.pos)) != null && t.active){ - t.disarm(); + if (t.disarmedByActivation) t.disarm(); t.reveal(); t.activate(); }