From caf63dd73769fe96f9aeb1cfefd839cc77b48b10 Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Sun, 18 Dec 2022 16:22:03 -0500 Subject: [PATCH] =?UTF-8?q?[Pokemon=20R/B]=20Allow=200=20exp=20setting=20a?= =?UTF-8?q?nd=20add=20logic=20rule=20to=20Cinnabar=20Gym=20to=20ensure=20h?= =?UTF-8?q?igher=20level=20Pok=C3=A9mon=20are=20catchable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worlds/pokemon_rb/logic.py | 5 +++++ worlds/pokemon_rb/options.py | 2 +- worlds/pokemon_rb/regions.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/worlds/pokemon_rb/logic.py b/worlds/pokemon_rb/logic.py index 6f2c1d79..892513a0 100644 --- a/worlds/pokemon_rb/logic.py +++ b/worlds/pokemon_rb/logic.py @@ -80,3 +80,8 @@ class PokemonLogic(LogicMixin): return (self.can_reach('Mt Moon 1F - Southwest Item', 'Location', player) and self.can_reach('Cinnabar Island - Lab Scientist', 'Location', player) and len( [item for item in ["Dome Fossil", "Helix Fossil", "Old Amber"] if self.has(item, player)]) >= count) + + def pokemon_rb_cinnabar_gym(self, player): + # ensures higher level Pokémon are obtainable before Cinnabar Gym is in logic + return ((not self.multiworld.extra_key_items[player]) or self.has("Mansion Key", player) + or self.has("Oak's Parcel", player) or self.pokemon_rb_can_surf(player)) \ No newline at end of file diff --git a/worlds/pokemon_rb/options.py b/worlds/pokemon_rb/options.py index e2de9bc3..e64ce9fe 100644 --- a/worlds/pokemon_rb/options.py +++ b/worlds/pokemon_rb/options.py @@ -199,7 +199,7 @@ class OaksAidRt15(Range): class ExpModifier(SpecialRange): """Modifier for EXP gained. When specifying a number, exp is multiplied by this amount and divided by 16.""" display_name = "Exp Modifier" - range_start = 1 + range_start = 0 range_end = 255 default = 16 special_range_names = { diff --git a/worlds/pokemon_rb/regions.py b/worlds/pokemon_rb/regions.py index 904dc3a1..da693c00 100644 --- a/worlds/pokemon_rb/regions.py +++ b/worlds/pokemon_rb/regions.py @@ -248,7 +248,7 @@ def create_regions(multiworld: MultiWorld, player: int): connect(multiworld, player, "Viridian City", "Viridian City North", lambda state: state.has("Oak's Parcel", player) or state.multiworld.old_man[player].value == 2 or state.pokemon_rb_can_cut(player)) connect(multiworld, player, "Route 3", "Mt Moon 1F", one_way=True) connect(multiworld, player, "Route 11", "Route 11 East", lambda state: state.pokemon_rb_can_strength(player)) - connect(multiworld, player, "Cinnabar Island", "Cinnabar Gym", lambda state: state.has("Secret Key", player), one_way=True) + connect(multiworld, player, "Cinnabar Island", "Cinnabar Gym", lambda state: state.has("Secret Key", player) and state.pokemon_rb_cinnabar_gym(player), one_way=True) connect(multiworld, player, "Cinnabar Island", "Pokemon Mansion 1F", lambda state: state.has("Mansion Key", player) or not state.multiworld.extra_key_items[player].value, one_way=True) connect(multiworld, player, "Seafoam Islands 1F", "Seafoam Islands B1F", one_way=True) connect(multiworld, player, "Seafoam Islands B1F", "Seafoam Islands B2F", one_way=True)