From 1e82b73c0c98e1ae1cdcbab730cc96861875c81b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 22 Jun 2023 17:20:43 -0400 Subject: [PATCH] v2.1.3: adjusted patch rooms to be a bit more flexible --- .../levels/rooms/standard/CaveRoom.java | 5 +++-- .../levels/rooms/standard/ChasmRoom.java | 5 +++-- .../levels/rooms/standard/PatchRoom.java | 2 +- .../levels/rooms/standard/RuinsRoom.java | 5 +++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/CaveRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/CaveRoom.java index 903a3cf53..6924bc88e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/CaveRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/CaveRoom.java @@ -44,9 +44,10 @@ public class CaveRoom extends PatchRoom { // normal ~30% to ~40% // large ~40% to ~50% // giant ~50% to ~60% - float fill = 0.30f + (width()*height())/1024f; + int scale = Math.min(width()*height(), 18*18); + float fill = 0.30f + scale/1024f; - setupPatch(level, fill, 3, true); + setupPatch(level, fill, 3, connected.size() > 0); cleanDiagonalEdges(); for (int i = top + 1; i < bottom; i++) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/ChasmRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/ChasmRoom.java index a3ca8c7aa..b9793478a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/ChasmRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/ChasmRoom.java @@ -57,9 +57,10 @@ public class ChasmRoom extends PatchRoom { // normal ~30% to ~40% // large ~40% to ~50% // giant ~50% to ~60% - float fill = 0.30f + (width()*height())/1024f; + int scale = Math.min(width()*height(), 18*18); + float fill = 0.30f + scale/1024f; - setupPatch(level, fill, 1, true); + setupPatch(level, fill, 1, connected.size() > 0); cleanDiagonalEdges(); for (int i = top + 1; i < bottom; i++) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/PatchRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/PatchRoom.java index 1b0ab98b9..be29abd02 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/PatchRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/PatchRoom.java @@ -40,7 +40,7 @@ public abstract class PatchRoom extends StandardRoom { boolean valid; do { patch = Patch.generate(width()-2, height()-2, fill, clustering, true); - int startPoint = 0; + int startPoint = level.pointToCell(center()); for (Door door : connected.values()) { if (door.x == left) { startPoint = xyToPatchCoords(door.x + 1, door.y); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/RuinsRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/RuinsRoom.java index f2c6c65db..6e50bde94 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/RuinsRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/RuinsRoom.java @@ -50,9 +50,10 @@ public class RuinsRoom extends PatchRoom { // normal ~20% to ~30% // large ~30% to ~40% // giant ~40% to ~50% - float fill = 0.20f + (width()*height())/1024f; + int scale = Math.min(width()*height(), 18*18); + float fill = 0.20f + scale/1024f; - setupPatch(level, fill, 0, true); + setupPatch(level, fill, 0, connected.size() > 0); cleanDiagonalEdges(); for (int i = top + 1; i < bottom; i++) {