def AddLocationAndItem(self, location: Location, item: Item) -> None: if item in [ Item.MAP, Item.COMPASS, Item.KEY, Item.BOMBS, Item.FIVE_RUPEES, Item.NOTHING ]: return level_or_cave_num = location.GetLevelOrCaveNum() self.per_level_item_location_lists[level_or_cave_num].append(location) self.loc_counter += 1 #TODO: This would be more elgant with a dict lookup if self.settings.progressive_items: if item == Item.RED_CANDLE: item = Item.BLUE_CANDLE elif item == Item.RED_RING: item = Item.BLUE_RING elif item == Item.SILVER_ARROWS: item = Item.WOOD_ARROWS elif item == Item.WHITE_SWORD: item = Item.WOOD_SWORD elif item == Item.MAGICAL_SWORD: item = Item.WOOD_SWORD elif item == Item.MAGICAL_BOOMERANG: item = Item.BOOMERANG if item == Item.TRIFORCE: print("Not adding Triforce") else: print("Adding item %s" % item) self.item_num_list.append(item) self.item_counter += 1 num_locations = 0 print("Num items/locations: %d/%d" % (self.item_counter, self.loc_counter))