From 8dc88b256507eca5703a854f37f095acfa887151 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 1 Aug 2017 14:53:38 -0400 Subject: [PATCH] v0.6.1: increased the chance for big rooms to be interconnected --- .../levels/builders/RegularBuilder.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java index 13c123991..027a39114 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/builders/RegularBuilder.java @@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.StandardRo import com.watabou.utils.Random; import java.util.ArrayList; +import java.util.LinkedHashSet; //Introduces the concept of a major path, and branches // with tunnels padding rooms placed in them @@ -98,6 +99,11 @@ public abstract class RegularBuilder extends Builder { singleConnections.add(r); } } + + //this weights larger rooms to be much more likely to appear in the main loop, by placing them earlier in the multiconnections list + weightRooms(multiConnections); + Random.shuffle(multiConnections); + multiConnections = new ArrayList<>(new LinkedHashSet<>(multiConnections)); } // *** Branch Placement *** @@ -105,7 +111,7 @@ public abstract class RegularBuilder extends Builder { protected static void weightRooms(ArrayList rooms){ for (Room r : rooms.toArray(new Room[0])){ if (r instanceof StandardRoom){ - for (int i = 0; i < ((StandardRoom) r).sizeCat.connectionWeight(); i++) + for (int i = 1; i < ((StandardRoom) r).sizeCat.connectionWeight(); i++) rooms.add(r); } }