From 388d21363cfae5b57489a671289cfff717fa2b3b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 5 May 2024 12:53:54 -0400 Subject: [PATCH] v2.4.0: fixed new entrance and exit rooms being able to connect --- .../shatteredpixeldungeon/levels/rooms/Room.java | 5 +++++ .../levels/rooms/standard/entrance/EntranceRoom.java | 7 ------- .../levels/rooms/standard/exit/ExitRoom.java | 7 ------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/Room.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/Room.java index 3d1fea211..f273c03dc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/Room.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/Room.java @@ -263,6 +263,11 @@ public abstract class Room extends Rect implements Graph.Node, Bundlable { } public boolean connect( Room room ) { + if (isExit() && room.isEntrance() || isEntrance() && room.isExit()){ + //entrance and exit rooms cannot directly connect + return false; + } + if ((neigbours.contains(room) || addNeigbour(room)) && !connected.containsKey( room ) && canConnect(room)) { connected.put( room, null ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/entrance/EntranceRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/entrance/EntranceRoom.java index e614338d4..17d43b640 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/entrance/EntranceRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/entrance/EntranceRoom.java @@ -127,13 +127,6 @@ public class EntranceRoom extends StandardRoom { } - @Override - public boolean connect(Room room) { - //cannot connect to exit, otherwise works normally - if (room.isExit()) return false; - else return super.connect(room); - } - private static ArrayList> rooms = new ArrayList<>(); static { rooms.add(EntranceRoom.class); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/exit/ExitRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/exit/ExitRoom.java index a44b6a907..a2ffedde3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/exit/ExitRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/exit/ExitRoom.java @@ -70,13 +70,6 @@ public class ExitRoom extends StandardRoom { return super.canPlaceCharacter(p, l) && l.pointToCell(p) != l.exit(); } - @Override - public boolean connect(Room room) { - //cannot connect to entrance, otherwise works normally - if (room.isEntrance()) return false; - else return super.connect(room); - } - private static ArrayList> rooms = new ArrayList<>(); static { rooms.add(ExitRoom.class);