Skip to content

Work on palaces for new palace styles#375

Draft
initsu wants to merge 4 commits intoEllendar:5.1from
initsu:palace-shapes
Draft

Work on palaces for new palace styles#375
initsu wants to merge 4 commits intoEllendar:5.1from
initsu:palace-shapes

Conversation

@initsu
Copy link
Collaborator

@initsu initsu commented Feb 2, 2026

(This builds on the weights PR)

Remove room selection bias for rooms with multiple variants

Extract abstract ShapeCoordinatePalaceGenerator from RandomWalk
Only minor thing here is there is one less check that the room pool contains a drop stub since the room pool is not known in that logic.

Try running FillShapeWithRooms a few times before giving up

Update: added
Add a roll for whether palaces may have one-way drops to bosses

- TableWeightedRandom class works like the Climate weighting works
- LinearWeightedRandom class is like the previous WeightedRandom
- WeightedShuffler class has Random.Shuffle-like behavior, while also taking into account the stored weights for sorting
- Instead of picking a room from the pool and then removing all its variants -
which gives a 5x chance for a 5 variant room to appear - we're picking
one variant of each duplicate group at the start of palace generation.

- Probably fixed the other no duplicates flag as it was comparing by object reference
- Remove unnecessary while placed loop in Sequential that always ran at most once
(This applies to CoordinatePalaceGenerator only.)

- If the roll fails, that palace's drops must have a way back to the entrance - just like when palaces continue after the boss.
- Flipped the bool argument to HasInescapableDrop to prevent excessive double negations
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant