From 4b7033fce7a5f0cbf31957f5e7d6afe82be62e1f Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Tue, 14 Mar 2023 13:36:17 -0400 Subject: [PATCH] Pokemon R/B: Version 3 final touches (#1542) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Pokémon R/B: Dexsanity balls * Pokémon R/B: Early Parcel improvement * Pokémon R/B: Early Parcel dexsanity stuff only when dexsanity --- worlds/pokemon_rb/__init__.py | 6 +++++- worlds/pokemon_rb/locations.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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),