diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java index 59b4b3382..b0b432487 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java @@ -144,13 +144,7 @@ public class CavesLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); if (Dungeon.bossLevel( Dungeon.depth + 1 )) { return; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java index 26c7e655f..05e22636a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/CityLevel.java @@ -77,13 +77,7 @@ public class CityLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/HallsLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/HallsLevel.java index 456359715..8e5db1f5f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/HallsLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/HallsLevel.java @@ -94,13 +94,7 @@ public class HallsLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/LastShopLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/LastShopLevel.java index 765de4d2d..cdefd35c0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/LastShopLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/LastShopLevel.java @@ -147,13 +147,7 @@ public class LastShopLevel extends RegularLevel { } if (Imp.Quest.isCompleted()) { - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java index a0c80a89b..0c71b0d63 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java @@ -256,13 +256,7 @@ public class PrisonBossLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); Point door = roomExit.entrance(); arenaDoor = door.x + door.y * WIDTH; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonLevel.java index 5e55a1878..6389beb15 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonLevel.java @@ -119,13 +119,7 @@ public class PrisonLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java index ce7e07d0d..6352bbe48 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -168,6 +168,16 @@ public abstract class RegularLevel extends Level { return true; } + + protected void placeSign(){ + while (true) { + int pos = roomEntrance.random(); + if (pos != entrance || traps.get(pos) == null) { + map[pos] = Terrain.SIGN; + break; + } + } + } protected boolean initRooms() { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java index 1c228bbac..e6729592f 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerBossLevel.java @@ -196,13 +196,7 @@ public class SewerBossLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java index 4b868bdb8..8d8ee4c6b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/SewerLevel.java @@ -93,13 +93,7 @@ public class SewerLevel extends RegularLevel { } } - while (true) { - int pos = roomEntrance.random(); - if (pos != entrance) { - map[pos] = Terrain.SIGN; - break; - } - } + placeSign(); } @Override