Skip to content

Commit

Permalink
fix: generation issue with dungeonsfull
Browse files Browse the repository at this point in the history
  • Loading branch information
aerinon committed Jul 5, 2024
1 parent 2109733 commit a37d783
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ New pottery option that control which pots (and large blocks) are in the locatio
* Reduced Dungeon Pots: Same as Cave+Keys but also roughly a quarter of dungeon pots are added to the location pool picked at random. This is a dynamic mode so pots in the pool will be colored. Pots out of the pool will have vanilla contents.
* Clustered Dungeon Pots: Like reduced but pots are grouped by logical sets and roughly 50% of pots are chosen from those groups. This is a dynamic mode like the above.
* Excludes Empty Pots: All pots that had some sort of objects under them are chosen to be in the location pool. This excludes most large blocks and some pots out of dungeons.
* Dungeon Pots: The pots that are in dungeons are in the pool. (Includes serveral large blocks)
* Dungeon Pots: The pots that are in dungeons are in the pool. (Includes several large blocks)
* Lottery: All pots and large blocks are in the pool.

By default, switches remain in their vanilla location (unless you turn on the legacy option below)
Expand Down
5 changes: 2 additions & 3 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,5 @@
- Fire Rod + 1 magic extension is still in logic
- Byrna + 1 magic extension is newly in logic

(One magic extension is either half magic or a bottle with the ability to purchase a blue or green potion)

In general, making up for a lack of magic extension with a few bombs is something that could be added to the logic. Using the ice rod to freeze an enemy and then using that enemy to deal blunt damage and then using bombs to clear the frozen enemy is another strategy that could be added to the logic someday. If these are important to you, let me know.
(One magic extension is either half magic or a bottle with the ability to purchase a blue or green potion) In general, making up for a lack of magic extension with a few bombs is something that could be added to the logic. Using the ice rod to freeze an enemy and then using that enemy to deal blunt damage and then using bombs to clear the frozen enemy is another strategy that could be added to the logic someday. If these are important to you, let me know.
- Generation: Fixed an issue with dungeonsfull shuffle
7 changes: 4 additions & 3 deletions source/overworld/EntranceShuffle2.py
Original file line number Diff line number Diff line change
Expand Up @@ -942,7 +942,8 @@ def do_same_world_shuffle(avail, pool_def):
for option in multi_exit:
multi_entrances, multi_exits = find_entrances_and_exits(avail, option)
# complete_entrance_set.update(multi_entrances)
multi_exits_caves.append(multi_exits)
if multi_exits:
multi_exits_caves.append(multi_exits)
for x in multi_entrances:
(dw_entrances, lw_entrances)[x in LW_Entrances].append(x)

Expand All @@ -955,12 +956,12 @@ def do_same_world_shuffle(avail, pool_def):
lw_candidates = filter_restricted_caves(multi_exits_caves, 'LightWorld', avail)
other_candidates = [x for x in multi_exits_caves if x not in lw_candidates] # remember those not passed in
do_mandatory_connections(avail, lw_entrances, lw_candidates, must_exit_lw)
multi_exits_caves = other_candidates + lw_candidates # rebuild list from the lw_candidates and those not passed
multi_exits_caves = (other_candidates + lw_candidates) if other_candidates else lw_candidates # rebuild list from the lw_candidates and those not passed

dw_candidates = filter_restricted_caves(multi_exits_caves, 'DarkWorld', avail)
other_candidates = [x for x in multi_exits_caves if x not in dw_candidates] # remember those not passed in
do_mandatory_connections(avail, dw_entrances, dw_candidates, must_exit_dw)
multi_exits_caves = other_candidates + dw_candidates # rebuild list from the dw_candidates and those not passed
multi_exits_caves = (other_candidates + dw_candidates) if other_candidates else dw_candidates # rebuild list from the dw_candidates and those not passed

# connect caves
random.shuffle(lw_entrances)
Expand Down

0 comments on commit a37d783

Please sign in to comment.