The Witness: Fix non-deterministic hints (#2514)
This commit is contained in:
parent
e2109dba50
commit
8142564156
|
@ -161,7 +161,7 @@ joke_hints = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_always_hint_items(world: "WitnessWorld"):
|
def get_always_hint_items(world: "WitnessWorld") -> List[str]:
|
||||||
always = [
|
always = [
|
||||||
"Boat",
|
"Boat",
|
||||||
"Caves Shortcuts",
|
"Caves Shortcuts",
|
||||||
|
@ -187,17 +187,17 @@ def get_always_hint_items(world: "WitnessWorld"):
|
||||||
return always
|
return always
|
||||||
|
|
||||||
|
|
||||||
def get_always_hint_locations(_: "WitnessWorld"):
|
def get_always_hint_locations(_: "WitnessWorld") -> List[str]:
|
||||||
return {
|
return [
|
||||||
"Challenge Vault Box",
|
"Challenge Vault Box",
|
||||||
"Mountain Bottom Floor Discard",
|
"Mountain Bottom Floor Discard",
|
||||||
"Theater Eclipse EP",
|
"Theater Eclipse EP",
|
||||||
"Shipwreck Couch EP",
|
"Shipwreck Couch EP",
|
||||||
"Mountainside Cloud Cycle EP",
|
"Mountainside Cloud Cycle EP",
|
||||||
}
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_priority_hint_items(world: "WitnessWorld"):
|
def get_priority_hint_items(world: "WitnessWorld") -> List[str]:
|
||||||
priority = {
|
priority = {
|
||||||
"Caves Mountain Shortcut (Door)",
|
"Caves Mountain Shortcut (Door)",
|
||||||
"Caves Swamp Shortcut (Door)",
|
"Caves Swamp Shortcut (Door)",
|
||||||
|
@ -246,11 +246,11 @@ def get_priority_hint_items(world: "WitnessWorld"):
|
||||||
lasers.append("Desert Laser")
|
lasers.append("Desert Laser")
|
||||||
priority.update(world.random.sample(lasers, 6))
|
priority.update(world.random.sample(lasers, 6))
|
||||||
|
|
||||||
return priority
|
return sorted(priority)
|
||||||
|
|
||||||
|
|
||||||
def get_priority_hint_locations(_: "WitnessWorld"):
|
def get_priority_hint_locations(_: "WitnessWorld") -> List[str]:
|
||||||
return {
|
return [
|
||||||
"Swamp Purple Underwater",
|
"Swamp Purple Underwater",
|
||||||
"Shipwreck Vault Box",
|
"Shipwreck Vault Box",
|
||||||
"Town RGB Room Left",
|
"Town RGB Room Left",
|
||||||
|
@ -264,7 +264,7 @@ def get_priority_hint_locations(_: "WitnessWorld"):
|
||||||
"Tunnels Theater Flowers EP",
|
"Tunnels Theater Flowers EP",
|
||||||
"Boat Shipwreck Green EP",
|
"Boat Shipwreck Green EP",
|
||||||
"Quarry Stoneworks Control Room Left",
|
"Quarry Stoneworks Control Room Left",
|
||||||
}
|
]
|
||||||
|
|
||||||
|
|
||||||
def make_hint_from_item(world: "WitnessWorld", item_name: str, own_itempool: List[Item]):
|
def make_hint_from_item(world: "WitnessWorld", item_name: str, own_itempool: List[Item]):
|
||||||
|
@ -365,8 +365,8 @@ def make_hints(world: "WitnessWorld", hint_amount: int, own_itempool: List[Item]
|
||||||
remaining_hints = hint_amount - len(hints)
|
remaining_hints = hint_amount - len(hints)
|
||||||
priority_hint_amount = int(max(0.0, min(len(priority_hint_pairs) / 2, remaining_hints / 2)))
|
priority_hint_amount = int(max(0.0, min(len(priority_hint_pairs) / 2, remaining_hints / 2)))
|
||||||
|
|
||||||
prog_items_in_this_world = sorted(list(prog_items_in_this_world))
|
prog_items_in_this_world = sorted(prog_items_in_this_world)
|
||||||
locations_in_this_world = sorted(list(loc_in_this_world))
|
locations_in_this_world = sorted(loc_in_this_world)
|
||||||
|
|
||||||
world.random.shuffle(prog_items_in_this_world)
|
world.random.shuffle(prog_items_in_this_world)
|
||||||
world.random.shuffle(locations_in_this_world)
|
world.random.shuffle(locations_in_this_world)
|
||||||
|
|
Loading…
Reference in New Issue