From c8df657e51f36b5a73fa8532ee83b1beba501346 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 5 Jul 2017 12:24:57 -0400 Subject: [PATCH] v0.6.1: fixed issues with ghost spawning position between floors --- .../com/shatteredpixel/shatteredpixeldungeon/Dungeon.java | 2 +- .../shatteredpixeldungeon/items/artifacts/DriedRose.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java index 589bcd600..a3bc7f870 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java @@ -317,7 +317,7 @@ public class Dungeon { PathFinder.setMapSize(level.width(), level.height()); Dungeon.level = level; - DriedRose.restoreGhostHero( level, pos + PathFinder.NEIGHBOURS8[Random.Int(8)]); + DriedRose.restoreGhostHero( level, pos ); Actor.init(); visible = new boolean[level.length()]; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index 784d7ca75..ab02d1878 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -256,6 +256,12 @@ public class DriedRose extends Artifact { public static void restoreGhostHero( Level level, int pos ){ if (heldGhost != null){ level.mobs.add( heldGhost ); + + int ghostPos; + do { + ghostPos = pos + PathFinder.NEIGHBOURS8[Random.Int(8)]; + } while (!Level.solid[ghostPos] || level.findMob(ghostPos) != null); + heldGhost.pos = pos; heldGhost = null; }