TUNIC: Make the local_fill option load in a specific number of locations (#4488)
* Make it load in a specific number of locations * TunicLocation -> Location * Actually shuffle the list
This commit is contained in:
parent
90f80ce1c1
commit
2e4f5a64b3
|
@ -95,7 +95,7 @@ class TunicWorld(World):
|
|||
|
||||
# for the local_fill option
|
||||
fill_items: List[TunicItem]
|
||||
fill_locations: List[TunicLocation]
|
||||
fill_locations: List[Location]
|
||||
amount_to_local_fill: int
|
||||
|
||||
# so we only loop the multiworld locations once
|
||||
|
@ -394,8 +394,6 @@ class TunicWorld(World):
|
|||
self.multiworld.itempool += tunic_items
|
||||
|
||||
def pre_fill(self) -> None:
|
||||
self.fill_locations = []
|
||||
|
||||
if self.options.local_fill > 0 and self.multiworld.players > 1:
|
||||
# we need to reserve a couple locations so that we don't fill up every sphere 1 location
|
||||
reserved_locations: Set[str] = set(self.random.sample(sphere_one, 2))
|
||||
|
@ -406,8 +404,8 @@ class TunicWorld(World):
|
|||
if len(viable_locations) < self.amount_to_local_fill:
|
||||
raise OptionError(f"TUNIC: Not enough locations for local_fill option for {self.player_name}. "
|
||||
f"This is likely due to excess plando or priority locations.")
|
||||
|
||||
self.fill_locations += viable_locations
|
||||
self.random.shuffle(viable_locations)
|
||||
self.fill_locations = viable_locations[:self.amount_to_local_fill]
|
||||
|
||||
@classmethod
|
||||
def stage_pre_fill(cls, multiworld: MultiWorld) -> None:
|
||||
|
|
Loading…
Reference in New Issue