[6.8.2] Safari Zone crash patch

This commit is contained in:
chardub
2026-07-11 10:49:34 -04:00
parent d3f378b833
commit 7a4c34b872
34 changed files with 200 additions and 129 deletions
@@ -128,16 +128,7 @@ end
def select_altering_cave_encounter
level_range = 8..16
encounter_table =
{
:MONDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :HOUNDOUR],
:TUESDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :SCRAGGY],
:WEDNESDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :PINECO],
:THURSDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :MAREEP],
:FRIDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :TEDDIURSA],
:SATURDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :AIPOM],
:SUNDAY => [:ZUBAT, :ZUBAT, :ZUBAT, :WOOBAT, :SMEARGLE],
}
encounter_table = Settings::ALTERING_CAVE_ENCOUNTERS
day_of_week = getDayOfTheWeek
species = encounter_table[day_of_week].sample
level = rand(level_range)
@@ -102,7 +102,7 @@ class OverworldPokemonEvent < Game_Event
def roll_for_special_encounters
# Mew encounter
if rand(10000) < Settings::MEW_OW_ENCOUNTER_CHANCE
if rand(15100) < Settings::MEW_OW_ENCOUNTER_CHANCE
@species = :MEW
@level = 7
end
@@ -51,8 +51,7 @@ end
def get_overworld_pokemon_group_size(species, max_group_size)
catch_rate = GameData::Species.get(species).catch_rate
t = (catch_rate - 1) / 254.0
t = Math.sqrt(t) # invert to favor smaller groups
t = Math.sqrt([(catch_rate - 1) / 254.0, 0].max)
# Base group size, biased toward smaller numbers
base = 1 + (t * (max_group_size - 1) * 0.5) # multiply by 0.5 to shrink toward 12
@@ -3,6 +3,7 @@ class PokemonTemp
end
module PokeBattle_BattleCommon
def checkCatchChallenge(pokeball, battle, caught_pokemon)
return unless battle.is_a?(PokeBattle_Battle) #This whole check gets skipped for safari zone - maybe implement it later
#Caught in 1 try
if battle.balls_thrown == 0 #It's incremented after this method gets checked
$Trainer.complete_challenge(:catch_first_try)
@@ -180,7 +180,7 @@ class BattledTrainer
held_item = pokemon.item
is_holdable_item = HELD_ITEMS.include?(held_item.id)
echoln "#{held_item} #{is_holdable_item}"
next if is_holdable_item && rand(100) >= store_held_item_chancex
next if is_holdable_item && rand(100) >= store_held_item_chance
is_evolution_item = held_item.is_evolution_stone?
is_battle_item = held_item.has_battle_use?
@@ -118,21 +118,21 @@ class BattledTrainer
#story / bosses
LEADER_Roxanne: [20, 40, 200],
LEADER_Brawly: [20, 40, 200],
LEADER_Wattson: [20, 40, 200],
LEADER_Flannery: [20, 40, 200],
LEADER_Norman: [5, 40, 200],
LEADER_Winona: [20, 40, 200],
LEADER_Tate: [20, 40, 200],
LEADER_Liza: [20, 40, 200],
LEADER_Wallace: [20, 40, 200],
LEADER_Juan: [20, 40, 200],
ELITEFOUR_Sidney: [30, 60, 200],
ELITEFOUR_Phoebe: [30, 60, 200],
ELITEFOUR_Glacia: [30, 60, 200],
ELITEFOUR_Drake: [30, 60, 200],
CHAMPION_Steven: [50, 70, 200],
LEADER_Roxanne: [20, 40, 80],
LEADER_Brawly: [20, 40, 80],
LEADER_Wattson: [20, 40, 80],
LEADER_Flannery: [20, 40, 80],
LEADER_Norman: [5, 40, 80],
LEADER_Winona: [20, 40, 80],
LEADER_Tate: [20, 40, 80],
LEADER_Liza: [20, 40, 80],
LEADER_Wallace: [20, 40, 80],
LEADER_Juan: [20, 40, 80],
ELITEFOUR_Sidney: [30, 60, 90],
ELITEFOUR_Phoebe: [30, 60, 90],
ELITEFOUR_Glacia: [30, 60, 90],
ELITEFOUR_Drake: [30, 60, 90],
CHAMPION_Steven: [50, 70, 90],
TEAM_AQUA_BOSS: [60, 200, 200],
TEAM_MAGMA_BOSS: [60, 200, 200]
}