diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java index 2f9407975..dfe94e3f7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/SkeletonKey.java @@ -55,6 +55,7 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Callback; import com.watabou.utils.PathFinder; +import com.watabou.utils.Random; import java.util.ArrayList; import java.util.Arrays; @@ -248,6 +249,22 @@ public class SkeletonKey extends Artifact { gainExp(2); curUser.spendAndNext(Actor.TICK); curUser.sprite.idle(); + + //throw items inside the door in random directions + if (Dungeon.level.heaps.get(target) != null){ + ArrayList candidates = new ArrayList<>(); + for (int n : PathFinder.NEIGHBOURS8){ + if (Dungeon.level.passable[target+n]){ + candidates.add(target+n); + } + } + if (!candidates.isEmpty()){ + Heap heap = Dungeon.level.heaps.get(target); + while (!heap.isEmpty()) { + Dungeon.level.drop(heap.pickUp(), Random.element(candidates)).sprite.drop(target); + } + } + } } }); curUser.busy();