diff --git a/worlds/pokemon_rb/__init__.py b/worlds/pokemon_rb/__init__.py index cea26d46..344b96f2 100644 --- a/worlds/pokemon_rb/__init__.py +++ b/worlds/pokemon_rb/__init__.py @@ -287,8 +287,12 @@ class PokemonRedBlueWorld(World): else: break - if self.multiworld.old_man[self.player].value == 1: + if self.multiworld.old_man[self.player] == "early_parcel": self.multiworld.local_early_items[self.player]["Oak's Parcel"] = 1 + if self.multiworld.dexsanity[self.player]: + for location in [self.multiworld.get_location(f"Pokedex - {mon}", self.player) + for mon in poke_data.pokemon_data.keys()]: + add_item_rule(location, lambda item: item.name != "Oak's Parcel" or item.player != self.player) if not self.multiworld.badgesanity[self.player].value: self.multiworld.non_local_items[self.player].value -= self.item_name_groups["Badges"] diff --git a/worlds/pokemon_rb/locations.py b/worlds/pokemon_rb/locations.py index d3af9a88..a1b64e12 100644 --- a/worlds/pokemon_rb/locations.py +++ b/worlds/pokemon_rb/locations.py @@ -753,8 +753,9 @@ location_data = [ LocationData("Celadon Game Corner", "Hidden Item at End of Horizontal Machine Row (Coin Case)", "20 Coins", rom_addresses["Hidden_Item_Game_Corner_10"], Hidden(63), inclusion=hidden_items), LocationData("Celadon Game Corner", "Hidden Item in Front of Horizontal Machine Row (Coin Case)", "100 Coins", rom_addresses["Hidden_Item_Game_Corner_11"], Hidden(64), inclusion=hidden_items), - *[LocationData("Pokedex", mon, None, rom_addresses["Dexsanity_Items"] + i, DexSanityFlag(i), - type="Item", inclusion=dexsanity) for (mon, i) in zip(pokemon_data.keys(), range(0, 152))], + *[LocationData("Pokedex", mon, ball, rom_addresses["Dexsanity_Items"] + i, DexSanityFlag(i), type="Item", + inclusion=dexsanity) for (mon, i, ball) in zip(pokemon_data.keys(), range(0, 152), + ["Poke Ball", "Great Ball", "Ultra Ball"]* 51)], LocationData("Indigo Plateau", "Become Champion", "Become Champion", event=True), LocationData("Pokemon Tower 7F", "Fuji Saved", "Fuji Saved", event=True),