Update 6.8

This commit is contained in:
chardub
2026-07-10 15:42:06 -04:00
parent 5b85e72cb2
commit 6a6f126a18
7871 changed files with 493193 additions and 224825 deletions
@@ -0,0 +1,91 @@
class ChallengeOptionsScene < PokemonOption_Scene
def initialize
@changedColor = false
end
def pbStartScene(inloadscreen = false)
super
@sprites["option"].nameBaseColor = Color.new(35, 130, 200)
@sprites["option"].nameShadowColor = Color.new(20, 75, 115)
@changedColor = true
for i in 0...@PokemonOptions.length
@sprites["option"][i] = (@PokemonOptions[i].get || 0)
end
@sprites["title"]=Window_UnformattedTextPokemon.newWithSize(
_INTL("Optional Challenge Options"),0,0,Graphics.width,64,@viewport)
@sprites["textbox"].text=_INTL("Optional challenge options")
pbFadeInAndShow(@sprites) { pbUpdate }
end
def pbFadeInAndShow(sprites, visiblesprites = nil)
return if !@changedColor
super
end
def pbGetOptions(inloadscreen = false)
options = []
options << EnumOption.new(_INTL("Level caps"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.level_caps },
proc { |value| $PokemonSystem.level_caps = value },
_INTL("Prevents leveling above the next gym leader's highest leveled Pokemon."))
options << EnumOption.new(_INTL("Battle Style"), [_INTL("Switch"), _INTL("Set")],
proc { $PokemonSystem.battlestyle },
proc { |value| $PokemonSystem.battlestyle = value },
[_INTL("Prompts to switch Pokémon before the opponent sends out the next one."),
_INTL("No prompt to switch Pokémon before the opponent sends the next one.")]
)
options << EnumOption.new(_INTL("No reviving"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.no_reviving ? 1 : 0},
proc { |value| $PokemonSystem.no_reviving = value == 1 },
_INTL("Fainted Pokémon cannot be revived."))
#TODO
# options << EnumOption.new(_INTL("Limited Catch"), [_INTL("Off"), _INTL("On")],
# proc { $PokemonSystem.level_caps },
# proc { |value| $PokemonSystem.level_caps = value },
# _INTL("You're only allowed to catch the first X Pokémon on every route."))
options << EnumOption.new(_INTL("No heals (battles)"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.no_healing_items_battles ? 1 : 0},
proc { |value| $PokemonSystem.no_healing_items_battles = value == 1 },
_INTL("Healing items cannot be used during battles (excluding held berries)."))
options << EnumOption.new(_INTL("No heals (overworld)"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.no_healing_items_ow ? 1 : 0},
proc { |value| $PokemonSystem.no_healing_items_ow = value == 1 },
_INTL("Healing items cannot be used in the overworld."))
if Settings::HOENN
options << EnumOption.new(_INTL("No Pokécenters"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.no_pokemon_center ? 1 : 0},
proc { |value| $PokemonSystem.no_pokemon_center = value == 1 },
_INTL("Pokémon centers will not heal your Pokémon."))
end
return options
end
def selectAutosaveSteps()
if pbGet(AUTOSAVE_STEPS_VAR) == 0
pbSet(AUTOSAVE_STEPS_VAR,DEFAULT_AUTOSAVE_STEPS)
end
params=ChooseNumberParams.new
params.setRange(20,999999)
params.setInitialValue(pbGet(AUTOSAVE_STEPS_VAR))
params.setCancelValue(0)
val = Kernel.pbMessageChooseNumber(_INTL("Autosave every how many steps?"),params)
if val < 200
Kernel.pbMessage(_INTL("Warning: Choosing a low number of steps may decrease performance."))
end
if val == 0
val = 1
end
pbSet(AUTOSAVE_STEPS_VAR,val)
end
end
@@ -0,0 +1,134 @@
class PokemonGameOption_Scene < PokemonOption_Scene
ICON_AUDIO = "optionIcons/AUDIO"
ICON_GAMEPLAY = "optionIcons/GAMEPLAY"
ICON_VISUALS = "optionIcons/VISUALS"
ICON_CHALLENGE = "optionIcons/CHALLENGE"
ICON_RANDOMIZER = "optionIcons/RANDOMIZER"
def pbGetOptions(inloadscreen = false)
@current_game_mode = getTrainersDataMode
options = []
options << ButtonOption.new(
_INTL("System & Audio"),
proc {
@system_menu = true
openSystemMenu()
},
"<icon=#{ICON_AUDIO}> " + _INTL("Volume, UI, Autosave, etc.")
)
if $game_switches
options << ButtonOption.new(
_INTL("Gameplay"),
proc {
@gameplay_menu = true
openGameplayMenu()
},
"<icon=#{ICON_GAMEPLAY}> " + _INTL("Difficulty, movement, etc.")
)
options << ButtonOption.new(
_INTL("Visuals & Content"),
proc {
@sprites_menu = true
openSpritesMenu()
},
"<icon=#{ICON_VISUALS}> " + _INTL("Sprites, Pokédex entries, etc.")
)
options << ButtonOption.new(
_INTL("Challenge Options"),
proc {
@challenge_menu = true
openChallengeMenu()
},
"<icon=#{ICON_CHALLENGE}> " + _INTL("Set optional self-imposed challenges.")
)
# if $game_switches[SWITCH_RANDOMIZED_AT_LEAST_ONCE]
# options << ButtonOption.new(
# _INTL("Randomizer Options"),
# proc {
# @randomizer_menu = true
# openRandomizerMenu()
# },
# "<icon=#{ICON_RANDOMIZER}> " + _INTL("Set how to randomize the game.")
# )
# end
end
return options
end
def openChallengeMenu()
return unless @challenge_menu
pbFadeOutIn {
scene = ChallengeOptionsScene.new
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
}
@challenge_menu = false
end
def openRandomizerMenu()
return unless @randomizer_menu
pbFadeOutIn {
scene = RandomizerOptionsScene.new
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
}
@randomizer_menu = false
end
def openSystemMenu()
return unless @system_menu
pbFadeOutIn {
scene = SystemOptionsScene.new
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
}
@system_menu = false
end
def openSpritesMenu()
return unless @sprites_menu
pbFadeOutIn {
scene = SpriteOptionsScene.new
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
}
@sprites_menu = false
end
def openGameplayMenu()
return unless @gameplay_menu
pbFadeOutIn {
scene = GameplayOptionsScene.new
screen = PokemonOptionScreen.new(scene)
screen.pbStartScreen
}
@gameplay_menu = false
end
def pbEndScene
echoln "Selected Difficulty: #{$Trainer.selected_difficulty}, lowest difficutly: #{$Trainer.lowest_difficulty}" if $Trainer
if $Trainer && $Trainer.selected_difficulty < $Trainer.lowest_difficulty
$Trainer.lowest_difficulty = $Trainer.selected_difficulty
echoln "lowered difficulty (#{$Trainer.selected_difficulty})"
if @manually_changed_difficulty
pbMessage(_INTL("The savefile's lowest selected difficulty was changed to {1}.",getDisplayDifficulty()))
@manually_changed_difficulty = false
end
end
if getTrainersDataMode != @current_game_mode
pbMessage(_INTL("The game was mode changed - Reshuffling trainers."))
Kernel.pbShuffleTrainers
@manually_changed_gamemode = false
end
super
end
end
@@ -0,0 +1,132 @@
class GameplayOptionsScene < PokemonOption_Scene
def initialize
@changedColor = false
end
def pbStartScene(inloadscreen = false)
super
@sprites["option"].nameBaseColor = Color.new(35, 130, 200)
@sprites["option"].nameShadowColor = Color.new(20, 75, 115)
@changedColor = true
for i in 0...@PokemonOptions.length
@sprites["option"][i] = (@PokemonOptions[i].get || 0)
end
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL("Gameplay Options"), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"].text = _INTL("Gameplay options")
pbFadeInAndShow(@sprites) { pbUpdate }
end
def pbFadeInAndShow(sprites, visiblesprites = nil)
return if !@changedColor
super
end
def pbGetOptions(inloadscreen = false)
@current_game_mode = getTrainersDataMode
options = []
options << EnumOption.new(_INTL("Default Movement"), [_INTL("Walking"), _INTL("Running")],
proc { $PokemonSystem.runstyle },
proc { |value| $PokemonSystem.runstyle = value },
[_INTL("Default to walking when not holding the Run key"),
_INTL("Default to running when not holding the Run key")]
)
difficulty_description = []
if Settings::KANTO
difficulty_description = [_INTL("All Pokémon in the team gain experience. Otherwise the same as Normal difficulty."),
_INTL("The default experience. Levels are similar to the official games."),
_INTL("Higher levels and smarter AI. All trainers have access to healing items.")]
else
difficulty_description = [_INTL("Trainer Pokémon levels are 10% lower"),
_INTL("The default experience. Levels are similar to the official games."),
_INTL("Trainer Pokémon levels are 10% higher"),]
end
options << EnumOption.new(_INTL("Difficulty"), [_INTL("Easy"), _INTL("Normal"), _INTL("Hard")],
proc { $Trainer.selected_difficulty },
proc { |value|
setDifficulty(value)
@manually_changed_difficulty = true
}, difficulty_description
)
if Settings::HOENN
options << EnumOption.new(_INTL("Overworld Encounters"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.overworld_encounters ? 0 : 1 },
proc { |value| $PokemonSystem.overworld_encounters = value == 0 },
[_INTL("Pokémon are encountered in the overworld."),
_INTL("Pokémon are only encountered in tall grass, etc.")]
)
end
if $game_switches && (Settings::KANTO && ($game_switches[SWITCH_NEW_GAME_PLUS] || $game_switches[SWITCH_BEAT_THE_LEAGUE])) || Settings::HOENN # beat the league
options <<
EnumOption.new(_INTL("Battle type"), [_INTL("1v1"), _INTL("2v2"), _INTL("3v3")],
proc { $PokemonSystem.battle_type },
proc { |value|
if value == 0
$game_variables[VAR_DEFAULT_BATTLE_TYPE] = [1, 1]
elsif value == 1
$game_variables[VAR_DEFAULT_BATTLE_TYPE] = [2, 2]
elsif value == 2
$game_variables[VAR_DEFAULT_BATTLE_TYPE] = [3, 3]
else
$game_variables[VAR_DEFAULT_BATTLE_TYPE] = [1, 1]
end
$PokemonSystem.battle_type = value
}, _INTL("Sets the number of Pokémon sent out in battles (when possible)")
)
end
options << EnumOption.new(_INTL("Speed-up type"), [_INTL("Hold"), _INTL("Toggle")],
proc { $PokemonSystem.speedup },
proc { |value|
$PokemonSystem.speedup = value
}, _INTL("Pick how you want speed-up to be enabled")
)
options << SliderOption.new(_INTL("Speed-up (Overworld)"), 1, 10, 1,
proc { $PokemonSystem.speedup_speed },
proc { |value|
$PokemonSystem.speedup_speed = value
}, _INTL("Sets by how much to speed up the game when holding the speed up button when walking in the overworld."))
options << SliderOption.new(_INTL("Speed-up (Battles)"), 1, 10, 1,
proc { $PokemonSystem.speedup_speed_battles },
proc { |value|
$PokemonSystem.speedup_speed_battles = value
}, _INTL("Sets by how much to speed up the game when holding the speed up button in battles."))
options << EnumOption.new(_INTL("Prompt Nicknames"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.prompt_nicknames ? 0 : 1 },
proc { |value| $PokemonSystem.prompt_nicknames = value == 0 },
[_INTL("Ask to set a nickname when catching a new Pokémon."),
_INTL("Don't ask to set a nickname when catching a new Pokémon.")]
)
options << EnumOption.new(_INTL("Quick HMs"), [_INTL("Off"), _INTL("On")],
proc { $PokemonSystem.quickHM },
proc { |value| $PokemonSystem.quickHM = value },
[
_INTL("Prompt to use HMs when interacting with an obstacle"),
_INTL("Use HMs automatically when interacting with an obstacle")]
)
if $game_switches && $game_switches[SWITCH_LEGENDARY_MODE]
selected_game_mode = $game_switches[SWITCH_MODERN_MODE] ? 1 : 0
options << EnumOption.new(_INTL("Trainers"), [_INTL("Classic"), _INTL("Remix")],
proc { selected_game_mode },
proc { |value|
$game_switches[SWITCH_MODERN_MODE] = value == 1
@manually_changed_gamemode = true
},
[_INTL("Use trainers from Classic Mode for Legendary Mode"),
_INTL("Use trainers from Remix Mode for Legendary Mode")]
)
end
return options
end
end
@@ -0,0 +1,110 @@
class SpriteOptionsScene < PokemonOption_Scene
def initialize
@changedColor = false
end
def pbStartScene(inloadscreen = false)
super
@sprites["option"].nameBaseColor = Color.new(35, 130, 200)
@sprites["option"].nameShadowColor = Color.new(20, 75, 115)
@changedColor = true
for i in 0...@PokemonOptions.length
@sprites["option"][i] = (@PokemonOptions[i].get || 0)
end
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL("Visuals & Content Options"), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"].text = _INTL("Visuals & Content Options")
pbFadeInAndShow(@sprites) { pbUpdate }
end
def pbFadeInAndShow(sprites, visiblesprites = nil)
return if !@changedColor
super
end
def pbGetOptions(inloadscreen = false)
options = []
generated_entries_option_selected = $PokemonSystem.use_generated_dex_entries ? 1 : 0
options << EnumOption.new(_INTL("Autogen dex entries"), [_INTL("Off"), _INTL("On")],
proc { generated_entries_option_selected },
proc { |value|
$PokemonSystem.use_generated_dex_entries = value == 1
},
[
_INTL("Fusions without a custom Pokédex entry display nothing."),
_INTL("Fusions without a custom Pokédex entry display an auto-generated placeholder.")
]
)
use_random_sprites = $PokemonSystem.random_sprites ? 1 : 0
options << EnumOption.new(_INTL("Random Sprites"), [_INTL("Off"), _INTL("On")],
proc { use_random_sprites },
proc { |value|
$PokemonSystem.random_sprites = value == 1
},
[
_INTL("The game uses the same sprite each time you encounter the same species."),
_INTL("A random sprite is selected each time you encounter a Pokémon."),
]
) ? 1 : 0
allow_joke_sprites = $PokemonSystem.include_alt_sprites_in_random ? 1 : 0
options << EnumOption.new(_INTL("Joke Sprites"), [_INTL("Off"), _INTL("On")],
proc { allow_joke_sprites },
proc { |value|
$PokemonSystem.include_alt_sprites_in_random = value == 1
},
[
_INTL("Auto-selected sprites follow standard Pokémon sprites rules."),
_INTL("Auto-selected sprites can be anything, including references, memes, jokes, etc.")
]
) ? 1 : 0
custom_eggs_option_selected = $PokemonSystem.hide_custom_eggs ? 1 : 0
options << EnumOption.new(_INTL("Custom Eggs"), [_INTL("On"), _INTL("Off")],
proc { custom_eggs_option_selected },
proc { |value|
$PokemonSystem.hide_custom_eggs = value == 1
},
[_INTL("Eggs have different sprites for each Pokémon."),
_INTL("Eggs all use the same sprite.")]
)
options << EnumOption.new(_INTL("Fusion Icons"), [_INTL("Combined"), _INTL("DNA")],
proc { $game_variables[VAR_FUSION_ICON_STYLE] },
proc { |value| $game_variables[VAR_FUSION_ICON_STYLE] = value },
[_INTL("Combines both Pokémon's party icons"),
_INTL("Uses the same party icon for all fusions")]
)
battle_type_icon_option_selected = $PokemonSystem.type_icons ? 1 : 0
options << EnumOption.new(_INTL("Battle Type Icons"), [_INTL("Off"), _INTL("On")],
proc { battle_type_icon_option_selected },
proc { |value| $PokemonSystem.type_icons = value == 1 },
_INTL("Display the enemy Pokémon type in battles.")
)
options << EnumOption.new(_INTL("Battle Animations"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.battlescene },
proc { |value| $PokemonSystem.battlescene = value },
_INTL("Display move animations in battles")
)
options << EnumOption.new(_INTL("Battle Movement"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.nobattlemovement ? 1 : 0 },
proc { |value| $PokemonSystem.nobattlemovement = value == 1 },
[_INTL("Sprites move up and down slightly during battles."),
_INTL("Sprites are completely static during battles.")
]
)
return options
end
end
@@ -0,0 +1,129 @@
class SystemOptionsScene < PokemonOption_Scene
def initialize
@changedColor = false
end
def pbStartScene(inloadscreen = false)
super
@sprites["option"].nameBaseColor = Color.new(35, 130, 200)
@sprites["option"].nameShadowColor = Color.new(20, 75, 115)
@changedColor = true
for i in 0...@PokemonOptions.length
@sprites["option"][i] = (@PokemonOptions[i].get || 0)
end
@sprites["title"] = Window_UnformattedTextPokemon.newWithSize(
_INTL("System & Audio Options"), 0, 0, Graphics.width, 64, @viewport)
@sprites["textbox"].text = _INTL("System & Audio options")
pbFadeInAndShow(@sprites) { pbUpdate }
end
def pbFadeInAndShow(sprites, visiblesprites = nil)
return if !@changedColor
super
end
def pbGetOptions(inloadscreen = false)
options = []
options << EnumOption.new(_INTL("Text Entry"), [_INTL("Cursor"), _INTL("Keyboard")],
proc { $PokemonSystem.textinput },
proc { |value| $PokemonSystem.textinput = value },
[_INTL("Enter text by selecting letters on the screen"),
_INTL("Enter text by typing on the keyboard")]
)
options << SliderOption.new(_INTL("Music Volume"), 0, 100, 1,
proc { $PokemonSystem.bgmvolume },
proc { |value|
if $PokemonSystem.bgmvolume != value
$PokemonSystem.bgmvolume = value
if $game_system.playing_bgm != nil# && !inloadscreen
playingBGM = $game_system.getPlayingBGM
$game_system.bgm_pause
$game_system.bgm_resume(playingBGM)
end
end
}, _INTL("Sets the volume for background music")
)
options << SliderOption.new(_INTL("SE Volume"), 0, 100, 1,
proc { $PokemonSystem.sevolume },
proc { |value|
if $PokemonSystem.sevolume != value
$PokemonSystem.sevolume = value
if $game_system.playing_bgs != nil
$game_system.playing_bgs.volume = value
playingBGS = $game_system.getPlayingBGS
$game_system.bgs_pause
$game_system.bgs_resume(playingBGS)
end
pbPlayCursorSE
end
}, _INTL("Sets the volume for sound effects")
)
options << EnumOption.new(_INTL("Text Speed"), [_INTL("Normal"), _INTL("Fast")],
proc { $PokemonSystem.textspeed },
proc { |value|
$PokemonSystem.textspeed = value
MessageConfig.pbSetTextSpeed(MessageConfig.pbSettingToTextSpeed(value))
}, _INTL("Sets the speed at which the text is displayed")
)
options << NumberOption.new(_INTL("Speech Frame"), 1, Settings::SPEECH_WINDOWSKINS.length,
proc { $PokemonSystem.textskin },
proc { |value|
$PokemonSystem.textskin = value
MessageConfig.pbSetSpeechFrame("Graphics/Windowskins/" + Settings::SPEECH_WINDOWSKINS[value])
}
)
options << EnumOption.new(_INTL("Screen Size"), [_INTL("S"), _INTL("M"), _INTL("L"), _INTL("XL"), _INTL("Full")],
proc { [$PokemonSystem.screensize, 4].min },
proc { |value|
if $PokemonSystem.screensize != value
$PokemonSystem.screensize = value
pbSetResizeFactor($PokemonSystem.screensize)
echoln $PokemonSystem.screensize
end
}, _INTL("Sets the size of the screen")
)
if $game_switches
options <<
EnumOption.new(_INTL("Autosave"), [_INTL("On"), _INTL("Off")],
proc { $game_switches[AUTOSAVE_ENABLED_SWITCH] ? 0 : 1 },
proc { |value|
if !$game_switches[AUTOSAVE_ENABLED_SWITCH] && value == 0
@autosave_menu = true
openAutosaveMenu()
end
$game_switches[AUTOSAVE_ENABLED_SWITCH] = value == 0
},
_INTL("Automatically saves when healing at Pokémon centers")
)
end
options <<
EnumOption.new(_INTL("Download data"), [_INTL("On"), _INTL("Off")],
proc { $PokemonSystem.download_sprites },
proc { |value|
$PokemonSystem.download_sprites = value
},
_INTL("Automatically download missing custom sprites and Pokédex entries from the internet")
)
device_option_selected = $PokemonSystem.on_mobile ? 1 : 0
options << EnumOption.new(_INTL("Device"), [_INTL("PC"), _INTL("Mobile")],
proc { device_option_selected },
proc { |value| $PokemonSystem.on_mobile = value == 1 },
[_INTL("The intended device on which to play the game."),
_INTL("Disables some options that aren't supported when playing on mobile.")]
)
return options
end
end