LADX: Move Locality Changes Earlier (#4478)
This commit is contained in:
parent
79e6beeec3
commit
b91a7ac6fb
|
@ -140,6 +140,28 @@ class LinksAwakeningWorld(World):
|
||||||
self.ladxr_logic = LADXRLogic(configuration_options=self.ladxr_settings, world_setup=world_setup)
|
self.ladxr_logic = LADXRLogic(configuration_options=self.ladxr_settings, world_setup=world_setup)
|
||||||
self.ladxr_itempool = LADXRItemPool(self.ladxr_logic, self.ladxr_settings, self.random).toDict()
|
self.ladxr_itempool = LADXRItemPool(self.ladxr_logic, self.ladxr_settings, self.random).toDict()
|
||||||
|
|
||||||
|
def generate_early(self) -> None:
|
||||||
|
self.dungeon_item_types = {
|
||||||
|
}
|
||||||
|
for dungeon_item_type in ["maps", "compasses", "small_keys", "nightmare_keys", "stone_beaks", "instruments"]:
|
||||||
|
option_name = "shuffle_" + dungeon_item_type
|
||||||
|
option: DungeonItemShuffle = getattr(self.options, option_name)
|
||||||
|
|
||||||
|
self.dungeon_item_types[option.ladxr_item] = option.value
|
||||||
|
|
||||||
|
# The color dungeon does not contain an instrument
|
||||||
|
num_items = 8 if dungeon_item_type == "instruments" else 9
|
||||||
|
|
||||||
|
# For any and different world, set item rule instead
|
||||||
|
if option.value == DungeonItemShuffle.option_own_world:
|
||||||
|
self.options.local_items.value |= {
|
||||||
|
ladxr_item_to_la_item_name[f"{option.ladxr_item}{i}"] for i in range(1, num_items + 1)
|
||||||
|
}
|
||||||
|
elif option.value == DungeonItemShuffle.option_different_world:
|
||||||
|
self.options.non_local_items.value |= {
|
||||||
|
ladxr_item_to_la_item_name[f"{option.ladxr_item}{i}"] for i in range(1, num_items + 1)
|
||||||
|
}
|
||||||
|
|
||||||
def create_regions(self) -> None:
|
def create_regions(self) -> None:
|
||||||
# Initialize
|
# Initialize
|
||||||
self.convert_ap_options_to_ladxr_logic()
|
self.convert_ap_options_to_ladxr_logic()
|
||||||
|
@ -185,32 +207,9 @@ class LinksAwakeningWorld(World):
|
||||||
def create_items(self) -> None:
|
def create_items(self) -> None:
|
||||||
exclude = [item.name for item in self.multiworld.precollected_items[self.player]]
|
exclude = [item.name for item in self.multiworld.precollected_items[self.player]]
|
||||||
|
|
||||||
dungeon_item_types = {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
self.prefill_original_dungeon = [ [], [], [], [], [], [], [], [], [] ]
|
self.prefill_original_dungeon = [ [], [], [], [], [], [], [], [], [] ]
|
||||||
self.prefill_own_dungeons = []
|
self.prefill_own_dungeons = []
|
||||||
self.pre_fill_items = []
|
self.pre_fill_items = []
|
||||||
# For any and different world, set item rule instead
|
|
||||||
|
|
||||||
for dungeon_item_type in ["maps", "compasses", "small_keys", "nightmare_keys", "stone_beaks", "instruments"]:
|
|
||||||
option_name = "shuffle_" + dungeon_item_type
|
|
||||||
option: DungeonItemShuffle = getattr(self.options, option_name)
|
|
||||||
|
|
||||||
dungeon_item_types[option.ladxr_item] = option.value
|
|
||||||
|
|
||||||
# The color dungeon does not contain an instrument
|
|
||||||
num_items = 8 if dungeon_item_type == "instruments" else 9
|
|
||||||
|
|
||||||
if option.value == DungeonItemShuffle.option_own_world:
|
|
||||||
self.options.local_items.value |= {
|
|
||||||
ladxr_item_to_la_item_name[f"{option.ladxr_item}{i}"] for i in range(1, num_items + 1)
|
|
||||||
}
|
|
||||||
elif option.value == DungeonItemShuffle.option_different_world:
|
|
||||||
self.options.non_local_items.value |= {
|
|
||||||
ladxr_item_to_la_item_name[f"{option.ladxr_item}{i}"] for i in range(1, num_items + 1)
|
|
||||||
}
|
|
||||||
# option_original_dungeon = 0
|
# option_original_dungeon = 0
|
||||||
# option_own_dungeons = 1
|
# option_own_dungeons = 1
|
||||||
# option_own_world = 2
|
# option_own_world = 2
|
||||||
|
@ -238,7 +237,7 @@ class LinksAwakeningWorld(World):
|
||||||
|
|
||||||
if isinstance(item.item_data, DungeonItemData):
|
if isinstance(item.item_data, DungeonItemData):
|
||||||
item_type = item.item_data.ladxr_id[:-1]
|
item_type = item.item_data.ladxr_id[:-1]
|
||||||
shuffle_type = dungeon_item_types[item_type]
|
shuffle_type = self.dungeon_item_types[item_type]
|
||||||
|
|
||||||
if item.item_data.dungeon_item_type == DungeonItemType.INSTRUMENT and shuffle_type == ShuffleInstruments.option_vanilla:
|
if item.item_data.dungeon_item_type == DungeonItemType.INSTRUMENT and shuffle_type == ShuffleInstruments.option_vanilla:
|
||||||
# Find instrument, lock
|
# Find instrument, lock
|
||||||
|
|
Loading…
Reference in New Issue