Skip to content

Commit d31da34

Browse files
committed
Add options for removing palace room types from the pool
- Remove long dead end rooms (Less time waste for beginners) - Remove "expert" rooms (Useful so we can enable 5.0 rooms for the Beginner preset) - Updated some room tags in PalaceRooms.json - Update Beginner Preset
1 parent abbba4b commit d31da34

14 files changed

Lines changed: 197 additions & 115 deletions

CrossPlatformUI/Lang/Resources.resx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,23 @@ prevent duplicates for Random Walk generated palaces.</value>
765765
<value>Allows rooms that require an item or spell to traverse to appear in any palace. Otherwise,
766766
palaces can only contain blocks according to the following table.</value>
767767
</data>
768-
<data name="BossRoomsExitToToolTip" xml:space="preserve">
768+
<data name="RemoveLongDeadEndsToolTip" xml:space="preserve">
769+
<value>Removes dead-end rooms from the room pool. This helps newer players who are not yet
770+
familiar with all rooms in the randomizer by reducing time spent exploring long dead ends,
771+
evening the odds a bit and lowering the learning curve.
772+
773+
This option is only available when the 5.0 room pool is enabled
774+
(as it is the only pool that contains short dead-end replacements.)</value>
775+
</data>
776+
<data name="IncludeExpertRoomsToolTip" xml:space="preserve">
777+
<value>Includes the more demanding palace rooms in the room pool. These rooms may feature:
778+
779+
• Precise, punishing platforming over lava
780+
• Unfair enemy placements
781+
• Repeated required 3-tile-high jumps</value>
782+
</data>
783+
784+
<data name="BossRoomsExitToToolTip" xml:space="preserve">
769785
<value>Selects whether the boss room exits into the overworld (like in vanilla), or more palace
770786
rooms. This can be selected for all palaces, Randomly per palace, or Random but the same
771787
selection for all palaces. When a palace continues outside, there will always be an

CrossPlatformUI/Presets/BeginnerPreset.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,20 @@ public static class BeginnerPreset
3131
RiverDevilBlockerOption = RiverDevilBlockerOption.PATH,
3232
EastRocks = false,
3333
GenerateBaguWoods = false,
34-
LessImportantLocationsOption = LessImportantLocationsOption.HIDE,
34+
LessImportantLocationsOption = LessImportantLocationsOption.REMOVE,
3535
RestrictConnectionCaveShuffle = true,
3636
AllowConnectionCavesToBeBlocked = false,
3737
GoodBoots = true,
3838
HidePalace = false,
3939
HideKasuto = false,
40-
WestBiome = Biome.RANDOM_NO_VANILLA_OR_SHUFFLE,
41-
EastBiome = Biome.RANDOM_NO_VANILLA_OR_SHUFFLE,
40+
WestSize = OverworldSizeOption.MEDIUM,
41+
EastSize = OverworldSizeOption.MEDIUM,
42+
DmSize = DmSizeOption.SMALL,
43+
MazeSize = MazeSizeOption.MEDIUM,
44+
WestBiome = Biome.VANILLALIKE,
45+
EastBiome = Biome.VANILLALIKE,
46+
DmBiome = Biome.VANILLALIKE,
4247
MazeBiome = Biome.VANILLALIKE,
43-
DmBiome = Biome.RANDOM_NO_VANILLA_OR_SHUFFLE,
4448
WestClimate = ClimateEnum.VANILLA_WEIGHTED_WEST,
4549
EastClimate = ClimateEnum.VANILLA_WEIGHTED_EAST,
4650
DmClimate = ClimateEnum.CLASSIC,
@@ -53,7 +57,7 @@ public static class BeginnerPreset
5357
GpLength = PalaceLengthOption.SHORT,
5458
IncludeVanillaRooms = true,
5559
Includev4_0Rooms = true,
56-
Includev5_0Rooms = false,
60+
Includev5_0Rooms = true,
5761
TBirdRequired = true,
5862
RemoveTBird = false,
5963
PalacesToCompleteMin = 6,

CrossPlatformUI/Presets/FullShufflePreset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public static class FullShufflePreset
6161
ReduceDripperVariance = false,
6262
ChangePalacePallettes = true,
6363
RandomizeBossItemDrop = true,
64+
PalaceDropStyle = PalaceDropStyle.RANDOM,
6465
BossRoomsExitType = BossRoomsExitType.OVERWORLD,
6566
NoDuplicateRoomsByLayout = true,
6667
BlockingRoomsInAnyPalace = true,

CrossPlatformUI/Presets/MaxRando2025Preset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public static class MaxRando2025Preset
6161
ReduceDripperVariance = true,
6262
ChangePalacePallettes = true,
6363
RandomizeBossItemDrop = true,
64+
PalaceDropStyle = PalaceDropStyle.ANY_EXIT,
6465
BossRoomsExitType = BossRoomsExitType.RANDOM_PER_PALACE,
6566
NoDuplicateRoomsByLayout = true,
6667
BlockingRoomsInAnyPalace = true,

CrossPlatformUI/Presets/NormalPreset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public static class NormalPreset
6161
ReduceDripperVariance = true,
6262
ChangePalacePallettes = true,
6363
RandomizeBossItemDrop = false,
64+
PalaceDropStyle = PalaceDropStyle.RANDOM,
6465
BossRoomsExitType = BossRoomsExitType.OVERWORLD,
6566
NoDuplicateRoomsByLayout = true,
6667
BlockingRoomsInAnyPalace = true,

CrossPlatformUI/Presets/StandardPreset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public static class StandardPreset
6161
ReduceDripperVariance = true,
6262
ChangePalacePallettes = true,
6363
RandomizeBossItemDrop = true,
64+
PalaceDropStyle = PalaceDropStyle.ANY_EXIT,
6465
BossRoomsExitType = BossRoomsExitType.OVERWORLD,
6566
NoDuplicateRoomsByLayout = true,
6667
BlockingRoomsInAnyPalace = true,

CrossPlatformUI/Presets/StandardSwissPreset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public static class StandardSwissPreset
6161
ReduceDripperVariance = true,
6262
ChangePalacePallettes = true,
6363
RandomizeBossItemDrop = false,
64+
PalaceDropStyle = PalaceDropStyle.ANY_EXIT,
6465
BossRoomsExitType = BossRoomsExitType.OVERWORLD,
6566
NoDuplicateRoomsByLayout = true,
6667
BlockingRoomsInAnyPalace = true,

CrossPlatformUI/Presets/UpstartsTournamentPreset.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public static class UpstartsTournamentPreset
5757
PalacesToCompleteMax = 6,
5858
RestartAtPalacesOnGameOver = true,
5959
ChangePalacePallettes = true,
60+
PalaceDropStyle = PalaceDropStyle.ANY_EXIT,
6061
BossRoomsExitType = BossRoomsExitType.OVERWORLD,
6162
NoDuplicateRoomsByLayout = false,
6263
NoDuplicateRoomsByEnemies = true,

CrossPlatformUI/ViewModels/Tabs/PalacesViewModel.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public class PalacesViewModel : ReactiveObject, IActivatableViewModel
1313
public MainViewModel Main { get; }
1414

1515
public IObservable<bool> RandomStylesAllowVanillaIncludedObservable { get; }
16+
public IObservable<bool> RemoveLongDeadEndsIncludedObservable { get; }
17+
public IObservable<bool> IncludeExpertRoomsIncludedObservable { get; }
1618

1719
public PalacesViewModel(MainViewModel main)
1820
{
@@ -23,6 +25,14 @@ public PalacesViewModel(MainViewModel main)
2325
.Select(_ => Main.Config.randomStylesAllowVanillaIncluded())
2426
.DistinctUntilChanged();
2527

28+
RemoveLongDeadEndsIncludedObservable = Main.FlagsChanged
29+
.Select(_ => Main.Config.removeLongDeadEndsIncluded())
30+
.DistinctUntilChanged();
31+
32+
IncludeExpertRoomsIncludedObservable = Main.FlagsChanged
33+
.Select(_ => Main.Config.includeExpertRoomsIncluded())
34+
.DistinctUntilChanged();
35+
2636
this.WhenActivated(OnActivate);
2737
}
2838

CrossPlatformUI/Views/Tabs/PalacesView.axaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,16 @@
201201
</ToolTip>
202202
</ToolTip.Tip>
203203
</CheckBox>
204+
<CheckBox IsChecked="{Binding Main.Config.RemoveLongDeadEnds}"
205+
IsEnabled="{Binding RemoveLongDeadEndsIncludedObservable^}"
206+
Content="Remove Long Dead End Rooms">
207+
<ToolTip.Tip><TextBlock Text="{x:Static lang:Resources.RemoveLongDeadEndsToolTip}"/></ToolTip.Tip>
208+
</CheckBox>
209+
<CheckBox IsChecked="{Binding Main.Config.IncludeExpertRooms}"
210+
IsEnabled="{Binding IncludeExpertRoomsIncludedObservable^}"
211+
Content="Include Expert Rooms">
212+
<ToolTip.Tip><TextBlock Text="{x:Static lang:Resources.IncludeExpertRoomsToolTip}"/></ToolTip.Tip>
213+
</CheckBox>
204214
</StackPanel>
205215

206216
<StackPanel Grid.Column="2" Margin="0 0">

0 commit comments

Comments
 (0)