Core: assert that items have a single reference (#1075)

* Core: assert that items have a single reference

* Fix duplicate item reference in The Witness

* Ori: fix duplicate item references

* DKC3: fix duplicate item references

* RL: fix duplicate item references

* SA2B: fix duplicate item references

* SMW: fix duplicate item references

Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
This commit is contained in:
black-sliver
2022-10-20 10:42:33 +02:00
committed by GitHub
parent 40b7e78178
commit ed76c13961
7 changed files with 38 additions and 37 deletions

View File

@@ -65,10 +65,6 @@ class SMWWorld(World):
"active_levels": self.active_level_dict,
}
def _create_items(self, name: str):
data = item_table[name]
return [self.create_item(name)] * data.quantity
def fill_slot_data(self) -> dict:
slot_data = self._get_slot_data()
for option_name in smw_options:
@@ -105,14 +101,15 @@ class SMWWorld(World):
itempool += [self.create_item(ItemName.p_switch)]
itempool += [self.create_item(ItemName.p_balloon)]
itempool += [self.create_item(ItemName.super_star_active)]
itempool += [self.create_item(ItemName.progressive_powerup)] * 3
itempool += [self.create_item(ItemName.progressive_powerup) for _ in range(3)]
itempool += [self.create_item(ItemName.yellow_switch_palace)]
itempool += [self.create_item(ItemName.green_switch_palace)]
itempool += [self.create_item(ItemName.red_switch_palace)]
itempool += [self.create_item(ItemName.blue_switch_palace)]
if self.world.goal[self.player] == "yoshi_egg_hunt":
itempool += [self.create_item(ItemName.yoshi_egg)] * self.world.number_of_yoshi_eggs[self.player]
itempool += [self.create_item(ItemName.yoshi_egg)
for _ in range(self.world.number_of_yoshi_eggs[self.player])]
self.world.get_location(LocationName.yoshis_house, self.player).place_locked_item(self.create_item(ItemName.victory))
else:
self.world.get_location(LocationName.bowser, self.player).place_locked_item(self.create_item(ItemName.victory))
@@ -128,11 +125,11 @@ class SMWWorld(World):
trap_pool = []
for i in range(trap_count):
trap_item = self.world.random.choice(trap_weights)
trap_pool += [self.create_item(trap_item)]
trap_pool.append(self.create_item(trap_item))
itempool += trap_pool
itempool += [self.create_item(ItemName.one_up_mushroom)] * junk_count
itempool += [self.create_item(ItemName.one_up_mushroom) for _ in range(junk_count)]
boss_location_names = [LocationName.yoshis_island_koopaling, LocationName.donut_plains_koopaling, LocationName.vanilla_dome_koopaling,
LocationName.twin_bridges_koopaling, LocationName.forest_koopaling, LocationName.chocolate_koopaling,