- Pokémon Essentials Version
- v20.1 ➖
Simple little add-on that lets players choose between Singles, Doubles, or Triples in the Options menu!
Plugin is made for v20/v21, code for v18/v19 is included in this post
Code
Can be pasted in a new script section above Main, or can be downloaded as a plugin here.
Ruby:
class PokemonSystem
attr_accessor :battlesize
alias oldinitialize initialize
def initialize
oldinitialize
@battlesize = 0 # Battle size (0 = single, 1 = double 2 = triple)
end
end
MenuHandlers.add(:options_menu, :text_input_style, {
"name" => _INTL("Battle Size"),
"order" => 55,
"type" => EnumOption,
"parameters" => [_INTL("Single"), _INTL("Double"), _INTL("Triple")],
"description" => _INTL("Choose the size battles are fought in."),
"get_proc" => proc { next $PokemonSystem.battlesize },
"set_proc" => proc { |value, _scene| $PokemonSystem.battlesize = value }
})
EventHandlers.add(:on_trainer_load, :battle_size_option,
proc { |trainer|
if !$game_temp.battle_rules["size"] && trainer
case $PokemonSystem.battlesize
when 1
setBattleRule("double") if pbCanDoubleBattle?
when 2
setBattleRule("triple") if pbCanTripleBattle?
setBattleRule("double") if !pbCanTripleBattle? && pbCanDoubleBattle?
end
end
}
)
For v18/v19, I had written out instructions to add it directly to the Options script.
A few steps to putting in this one, but nothing especially complicated!
In UI_Options (PScreen_Options in earlier versions), right at the top-
Add:
Below that:
Add:
Further down, below
Add
If you want to take Triple off the table, just remove ",_INTL("Triple")"
This last part can technically be put in any section, but I think it's best to put in PField_EncounterModifiers, with similar scripts-
In UI_Options (PScreen_Options in earlier versions), right at the top-
Ruby:
class PokemonSystem
attr_accessor :textspeed
attr_accessor :battlescene
attr_accessor :battlestyle
attr_accessor :frame
attr_writer :textskin
attr_accessor :font
attr_accessor :screensize
attr_writer :border
attr_writer :language
attr_writer :runstyle
attr_writer :bgmvolume
attr_writer :sevolume
attr_writer :textinput
Ruby:
attr_accessor :battlesize
Below that:
Ruby:
def initialize
@textspeed = 1 # Text speed (0=slow, 1=normal, 2=fast)
@battlescene = 0 # Battle effects (animations) (0=on, 1=off)
@battlestyle = 0 # Battle style (0=switch, 1=set)
@frame = 0 # Default window frame (see also $TextFrames)
@textskin = 0 # Speech frame
@font = 0 # Font (see also $VersionStyles)
@screensize = (SCREEN_ZOOM.floor).to_i # 0=half size, 1=full size, 2=double size
@border = 0 # Screen border (0=off, 1=on)
@language = 0 # Language (see also LANGUAGES in script PokemonSystem)
@runstyle = 0 # Run key functionality (0=hold to run, 1=toggle auto-run)
@bgmvolume = 100 # Volume of background music and ME
@sevolume = 100 # Volume of sound effects
@textinput = 0 # Text input mode (0=cursor, 1=keyboard)
Add:
Ruby:
@battlesize = 0 # Battle size (0 = single, 1 = double)
Further down, below
Ruby:
EnumOption.new(_INTL("Battle Effects"),[_INTL("On"),_INTL("Off")],
proc { $PokemonSystem.battlescene },
proc { |value| $PokemonSystem.battlescene = value }
),
Ruby:
EnumOption.new(_INTL("Battle Size"),[_INTL("Single"),_INTL("Double"),_INTL("Triple")],
proc { $PokemonSystem.battlesize },
proc { |value| $PokemonSystem.battlesize = value }
),
If you want to take Triple off the table, just remove ",_INTL("Triple")"
This last part can technically be put in any section, but I think it's best to put in PField_EncounterModifiers, with similar scripts-
Ruby:
Events.onTrainerPartyLoad += proc { |_sender, e|
if $PokemonTemp.battleRules["size"] == nil && e[0]
case $PokemonSystem.battlesize
when 1
setBattleRule("double") if pbCanDoubleBattle?
when 2
setBattleRule("triple") if pbCanTripleBattle?
setBattleRule("double") if !pbCanTripleBattle? && pbCanDoubleBattle?
end
end
}
Using the code
You can overwrite the player's choice of battle size with the standard setBattleRule
command!If either the player or the opponent doesn't have enough Pokémon for a full side, then the battle will go down a size. For example, if the player has Triple battles turned on, but they only have two Pokémon that can fight, they'll fight opponents in a Double Battle.
Todo List
Potentially, adjust this so that the option for doubles and triples doesn't even appear if the player doesn't have enough Pokémon. It was awkward when I tried to set that up, though, and it's not really necessary.- Credits
- Credit to TechSkylander1518, please!