Skip to content

Commit 15b4f8e

Browse files
committed
Merge 'Take effective starting items into account for hint reachability' (OoTRandomizer#2424)
2 parents 964eaf1 + 262fd3f commit 15b4f8e

4 files changed

Lines changed: 6 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* Fix Blue Fire Arrows being logically treated as Ice Arrows when selected as a starting item.
2222
* Fix a bug where it was possible to buy the item from Granny's Potion Shop without turning in the Odd Mushroom in some cases.
2323
* Fix two different trade items being shuffled with plentiful item pool and no adult trade shuffle, which could lead to softlocks due to inconsistent game state.
24+
* Fix the code that checks whether a hint is reachable not taking effective starting items (e.g. the rewards of precompleted dungeons) into account.
2425

2526
## Other changes
2627
* Big poe souls can now be collected while riding Epona.

Hints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ def can_reach_hint(worlds: list[World], hint_location: Location, location: Locat
308308

309309
old_item = location.item
310310
location.item = None
311-
search = Search.max_explore([world.state for world in worlds])
311+
search = Search.max_explore([world.state for world in worlds], collect_pseudo_starting_items=True)
312312
location.item = old_item
313313

314314
return (search.spot_access(hint_location)

Search.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,12 @@ def collect(self, item: Item) -> None:
8484
self.state_list[item.world.id].collect(item)
8585

8686
@classmethod
87-
def max_explore(cls, state_list: Iterable[State], itempool: Optional[Iterable[Item]] = None) -> Search:
87+
def max_explore(cls, state_list: Iterable[State], itempool: Optional[Iterable[Item]] = None, *, collect_pseudo_starting_items: bool = False) -> Search:
8888
p = cls(state_list)
8989
if itempool:
9090
p.collect_all(itempool)
91+
if collect_pseudo_starting_items:
92+
p.collect_pseudo_starting_items()
9193
p.collect_locations()
9294
return p
9395

version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = '8.3.45'
1+
__version__ = '8.3.46'
22

33
# This is a supplemental version number for branches based off of main dev.
44
supplementary_version = 0

0 commit comments

Comments
 (0)