mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Pokemon R/B: Version 5 Update (#3566)
* Quiz updates * Enable Partial Trainersanity * Losable Key Items Still Count * New options api * Type Chart Seed * Continue switching to new options API * Level Scaling and Quiz fixes * Level Scaling and Quiz fixes * Clarify that palettes are only for Super Gameboy * Type chart seed groups use one random players' options * remove goal option again * Text updates * Trainersanity Trainers ignore Blind Trainers setting * Re-order simple connecting interiors so that directions are preserved when possible * Dexsanity exact number * Year update * Dexsanity Doc update * revert accidental file deletion * Fixes * Add world parameter to logic calls * restore correct seeded random object * missing world.options changes * Trainersanity table bug fix * delete entrances as well as exits when restarting door shuffle * Do not collect route 25 item for level scaling if trainer is trainersanity * world.options in level_scaling.py * Update worlds/pokemon_rb/level_scaling.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/pokemon_rb/encounters.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/pokemon_rb/encounters.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * world -> multiworld * Fix Cerulean Cave Hidden Item Center Rocks region * Fix Cerulean Cave Hidden Item Center Rocks region for real * Remove "self-locking" rules * Update worlds/pokemon_rb/regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Fossil events * Update worlds/pokemon_rb/level_scaling.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: alchav <alchav@jalchavware.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
This commit is contained in:
@@ -10,9 +10,9 @@ def level_scaling(multiworld):
|
||||
while locations:
|
||||
sphere = set()
|
||||
for world in multiworld.get_game_worlds("Pokemon Red and Blue"):
|
||||
if (multiworld.level_scaling[world.player] != "by_spheres_and_distance"
|
||||
and (multiworld.level_scaling[world.player] != "auto" or multiworld.door_shuffle[world.player]
|
||||
in ("off", "simple"))):
|
||||
if (world.options.level_scaling != "by_spheres_and_distance"
|
||||
and (world.options.level_scaling != "auto"
|
||||
or world.options.door_shuffle in ("off", "simple"))):
|
||||
continue
|
||||
regions = {multiworld.get_region("Menu", world.player)}
|
||||
checked_regions = set()
|
||||
@@ -41,7 +41,8 @@ def level_scaling(multiworld):
|
||||
# reach them earlier. We treat them both as reachable right away for this purpose
|
||||
return True
|
||||
if (location.name == "Route 25 - Item" and state.can_reach("Route 25", "Region", location.player)
|
||||
and multiworld.blind_trainers[location.player].value < 100):
|
||||
and multiworld.worlds[location.player].options.blind_trainers.value < 100
|
||||
and "Route 25 - Jr. Trainer M" not in multiworld.regions.location_cache[location.player]):
|
||||
# Assume they will take their one chance to get the trainer to walk out of the way to reach
|
||||
# the item behind them
|
||||
return True
|
||||
@@ -95,9 +96,9 @@ def level_scaling(multiworld):
|
||||
if (location.item.game == "Pokemon Red and Blue" and (location.item.name.startswith("Missable ") or
|
||||
location.item.name.startswith("Static ")) and location.name !=
|
||||
"Pokemon Tower 6F - Restless Soul"):
|
||||
# Normally, missable Pokemon (starters, the dojo rewards) are not considered in logic static Pokemon
|
||||
# are not considered for moves or evolutions, as you could release them and potentially soft lock
|
||||
# the game. However, for level scaling purposes, we will treat them as not missable or static.
|
||||
# Normally, missable Pokemon (starters, the dojo rewards) are not considered in logic, and static
|
||||
# Pokemon are not considered for moves or evolutions, as you could release them and potentially soft
|
||||
# lock the game. However, for level scaling purposes, we will treat them as not missable or static.
|
||||
# We would not want someone playing a minimal accessibility Dexsanity game to get what would be
|
||||
# technically an "out of logic" Mansion Key from selecting Bulbasaur at the beginning of the game
|
||||
# and end up in the Mansion early and encountering level 67 Pokémon
|
||||
@@ -106,7 +107,7 @@ def level_scaling(multiworld):
|
||||
else:
|
||||
state.collect(location.item, True, location)
|
||||
for world in multiworld.get_game_worlds("Pokemon Red and Blue"):
|
||||
if multiworld.level_scaling[world.player] == "off":
|
||||
if world.options.level_scaling == "off":
|
||||
continue
|
||||
level_list_copy = level_list.copy()
|
||||
for sphere in spheres:
|
||||
@@ -136,4 +137,4 @@ def level_scaling(multiworld):
|
||||
else:
|
||||
sphere_objects[object].level = level_list_copy.pop(0)
|
||||
for world in multiworld.get_game_worlds("Pokemon Red and Blue"):
|
||||
world.finished_level_scaling.set()
|
||||
world.finished_level_scaling.set()
|
||||
Reference in New Issue
Block a user