fix: generation issue with dungeonsfull
This commit is contained in:
@@ -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.
|
* 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.
|
* 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.
|
* 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.
|
* 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)
|
By default, switches remain in their vanilla location (unless you turn on the legacy option below)
|
||||||
|
|||||||
@@ -8,6 +8,5 @@
|
|||||||
- Fire Rod + 1 magic extension is still in logic
|
- Fire Rod + 1 magic extension is still in logic
|
||||||
- Byrna + 1 magic extension is newly 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)
|
(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
|
||||||
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.
|
|
||||||
@@ -942,7 +942,8 @@ def do_same_world_shuffle(avail, pool_def):
|
|||||||
for option in multi_exit:
|
for option in multi_exit:
|
||||||
multi_entrances, multi_exits = find_entrances_and_exits(avail, option)
|
multi_entrances, multi_exits = find_entrances_and_exits(avail, option)
|
||||||
# complete_entrance_set.update(multi_entrances)
|
# 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:
|
for x in multi_entrances:
|
||||||
(dw_entrances, lw_entrances)[x in LW_Entrances].append(x)
|
(dw_entrances, lw_entrances)[x in LW_Entrances].append(x)
|
||||||
|
|
||||||
@@ -955,12 +956,12 @@ def do_same_world_shuffle(avail, pool_def):
|
|||||||
lw_candidates = filter_restricted_caves(multi_exits_caves, 'LightWorld', avail)
|
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
|
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)
|
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)
|
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
|
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)
|
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
|
# connect caves
|
||||||
random.shuffle(lw_entrances)
|
random.shuffle(lw_entrances)
|
||||||
|
|||||||
Reference in New Issue
Block a user