Zillion: Move completion_condition Definition Earlier (#5279)
This commit is contained in:
@@ -168,8 +168,8 @@ class ZillionWorld(World):
|
|||||||
def create_regions(self) -> None:
|
def create_regions(self) -> None:
|
||||||
assert self.zz_system.randomizer, "generate_early hasn't been called"
|
assert self.zz_system.randomizer, "generate_early hasn't been called"
|
||||||
assert self.id_to_zz_item, "generate_early hasn't been called"
|
assert self.id_to_zz_item, "generate_early hasn't been called"
|
||||||
p = self.player
|
player = self.player
|
||||||
logic_cache = ZillionLogicCache(p, self.zz_system.randomizer, self.id_to_zz_item)
|
logic_cache = ZillionLogicCache(player, self.zz_system.randomizer, self.id_to_zz_item)
|
||||||
self.logic_cache = logic_cache
|
self.logic_cache = logic_cache
|
||||||
w = self.multiworld
|
w = self.multiworld
|
||||||
self.my_locations = []
|
self.my_locations = []
|
||||||
@@ -192,7 +192,7 @@ class ZillionWorld(World):
|
|||||||
all_regions: dict[str, ZillionRegion] = {}
|
all_regions: dict[str, ZillionRegion] = {}
|
||||||
for here_zz_name, zz_r in self.zz_system.randomizer.regions.items():
|
for here_zz_name, zz_r in self.zz_system.randomizer.regions.items():
|
||||||
here_name = "Menu" if here_zz_name == "start" else zz_reg_name_to_reg_name(here_zz_name)
|
here_name = "Menu" if here_zz_name == "start" else zz_reg_name_to_reg_name(here_zz_name)
|
||||||
all_regions[here_name] = ZillionRegion(zz_r, here_name, here_name, p, w)
|
all_regions[here_name] = ZillionRegion(zz_r, here_name, here_name, player, w)
|
||||||
self.multiworld.regions.append(all_regions[here_name])
|
self.multiworld.regions.append(all_regions[here_name])
|
||||||
|
|
||||||
limited_skill = Req(gun=3, jump=3, skill=self.zz_system.randomizer.options.skill, hp=940, red=1, floppy=126)
|
limited_skill = Req(gun=3, jump=3, skill=self.zz_system.randomizer.options.skill, hp=940, red=1, floppy=126)
|
||||||
@@ -239,7 +239,7 @@ class ZillionWorld(World):
|
|||||||
for zz_dest in zz_here.connections.keys():
|
for zz_dest in zz_here.connections.keys():
|
||||||
dest_name = "Menu" if zz_dest.name == "start" else zz_reg_name_to_reg_name(zz_dest.name)
|
dest_name = "Menu" if zz_dest.name == "start" else zz_reg_name_to_reg_name(zz_dest.name)
|
||||||
dest = all_regions[dest_name]
|
dest = all_regions[dest_name]
|
||||||
exit_ = Entrance(p, f"{here_name} to {dest_name}", here)
|
exit_ = Entrance(player, f"{here_name} to {dest_name}", here)
|
||||||
here.exits.append(exit_)
|
here.exits.append(exit_)
|
||||||
exit_.connect(dest)
|
exit_.connect(dest)
|
||||||
|
|
||||||
@@ -248,6 +248,11 @@ class ZillionWorld(World):
|
|||||||
if self.options.priority_dead_ends.value:
|
if self.options.priority_dead_ends.value:
|
||||||
self.options.priority_locations.value |= {loc.name for loc in dead_end_locations}
|
self.options.priority_locations.value |= {loc.name for loc in dead_end_locations}
|
||||||
|
|
||||||
|
# main location name is an alias
|
||||||
|
main_loc_name = self.zz_system.randomizer.loc_name_2_pretty[self.zz_system.randomizer.locations["main"].name]
|
||||||
|
self.multiworld.get_location(main_loc_name, player).place_locked_item(self.create_item("Win"))
|
||||||
|
self.multiworld.completion_condition[player] = lambda state: state.has("Win", player)
|
||||||
|
|
||||||
@override
|
@override
|
||||||
def create_items(self) -> None:
|
def create_items(self) -> None:
|
||||||
if not self.id_to_zz_item:
|
if not self.id_to_zz_item:
|
||||||
@@ -272,17 +277,6 @@ class ZillionWorld(World):
|
|||||||
self.logger.debug(f"Zillion Items: {item_name} 1")
|
self.logger.debug(f"Zillion Items: {item_name} 1")
|
||||||
self.multiworld.itempool.append(self.create_item(item_name))
|
self.multiworld.itempool.append(self.create_item(item_name))
|
||||||
|
|
||||||
@override
|
|
||||||
def generate_basic(self) -> None:
|
|
||||||
assert self.zz_system.randomizer, "generate_early hasn't been called"
|
|
||||||
# main location name is an alias
|
|
||||||
main_loc_name = self.zz_system.randomizer.loc_name_2_pretty[self.zz_system.randomizer.locations["main"].name]
|
|
||||||
|
|
||||||
self.multiworld.get_location(main_loc_name, self.player)\
|
|
||||||
.place_locked_item(self.create_item("Win"))
|
|
||||||
self.multiworld.completion_condition[self.player] = \
|
|
||||||
lambda state: state.has("Win", self.player)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def stage_generate_basic(multiworld: MultiWorld, *args: Any) -> None: # noqa: ANN401
|
def stage_generate_basic(multiworld: MultiWorld, *args: Any) -> None: # noqa: ANN401
|
||||||
# item link pools are about to be created in main
|
# item link pools are about to be created in main
|
||||||
|
|||||||
Reference in New Issue
Block a user