- Pokémon Essentials Version
- v21.1 ✅
*the evolution scene is togglable from the top where it says eevee evolution scene. If you don't want the scene, set it to false.
This script should allow you to change all forms of Eevee between one another. Below is a version if you want to limit the player getting the forms with switches and a version without switches that will outright give player all of them from the start. There might be better ways to tackle this, but this is the way I ended up with. If you know of a better way, or can make mine a little better, please let me know! Also, if you run into any issues let me know, and I'll do my best to help you. As of right now, I don't have a sprite to include. *Added one that should work without switches. Here it's called ":EEVEECHANGER" but feel free to change the name. Put one of the chosen scripts into your Item_Effects script
If you need anything, or got anything, don't hesitate!
New update!
This script should allow you to change all forms of Eevee between one another. Below is a version if you want to limit the player getting the forms with switches and a version without switches that will outright give player all of them from the start. There might be better ways to tackle this, but this is the way I ended up with. If you know of a better way, or can make mine a little better, please let me know! Also, if you run into any issues let me know, and I'll do my best to help you. As of right now, I don't have a sprite to include. *Added one that should work without switches. Here it's called ":EEVEECHANGER" but feel free to change the name. Put one of the chosen scripts into your Item_Effects script
Ruby:
#--------Eevee changer---------#
ItemHandlers::UseOnPokemon.add(:EEVEECHANGER, proc { |item, qty, pkmn, scene, valid_eevee_forms|
#=====Settings====#
# Displays evolution screen when using item
# true = yes, false = no
EEVEE_EVOLUTION_SCENE = true
# Settings end
valid_eevee_forms = [:EEVEE, :FLAREON, :VAPOREON, :JOLTEON, :LEAFEON, :GLACEON, :ESPEON, :UMBREON, :SYLVEON]
unless valid_eevee_forms.include?(pkmn.species)
scene.pbDisplay(_INTL("It had no effect."))
next false
end
if pkmn.fainted?
scene.pbDisplay(_INTL("This can't be used on the fainted Pokémon."))
next false
end
# Define the evolve_with_item method
def evolve_with_item(item, pkmn, scene, evolutions)
old_name = pkmn.name
selected_option = evolutions.keys.first
target_species = evolutions[selected_option]
if EEVEE_EVOLUTION_SCENE
if pkmn.species != target_species
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new
evo.pbStartScreen(pkmn, target_species)
evo.pbEvolution(false)
evo.pbEndScreen
if scene.is_a?(PokemonPartyScreen)
scene.pbRefreshAnnotations(proc { |p| !p.check_evolution_on_use_item(item).nil? })
scene.pbRefresh
end
}
else
pbMessage(_INTL("Your Pokemon is already in #{pkmn.species.capitalize} form."))
return false
end
else
evolutions.each do |source_group, _|
if source_group.include?(pkmn.species)
pbFadeOutIn {
pkmn.species = target_species
pkmn.reset_moves
scene.pbRefresh
pkmn.calc_stats
}
pbMessage(_INTL("Congratulations! Your #{old_name} changed into #{pkmn.name}!"))
return true
end
end
pbMessage(_INTL("Your Pokemon is already in #{pkmn.species.capitalize} form."))
return false
end
end
options = [
[1, _INTL("Flareon Changer")],
[2, _INTL("Vaporeon Changer")],
[3, _INTL("Jolteon Changer")],
[4, _INTL("Leafeon Changer")],
[5, _INTL("Glaceon Changer")],
[6, _INTL("Espeon Changer")],
[7, _INTL("Umbreon Changer")],
[8, _INTL("Sylveon Changer")],
]
available_options = []
choices = []
#Change switches as necessary. Current switches are 180, 181, 182, 183, 184, 185, 186, and 187, relating the Eevee forms in order. Flareon, Vaporeon, etc. If you change, make sure you change the starting switch in available_options and choices.push below.
(180..187).each do |switch_id|
if $game_switches[switch_id]
available_options.push(switch_id - (180-1))
choices.push(options[switch_id - 180][1])
end
end
choices.unshift(_INTL("Eevee Changer"))
available_options.unshift(0)
command = pbMessage("Which form?", choices, -1)
next if command == -1 # canceled
selected_option = available_options[command]
evolutions = case selected_option
when 0 then { valid_eevee_forms - [:EEVEE] => :EEVEE }
when 1 then { valid_eevee_forms - [:FLAREON] => :FLAREON }
when 2 then { valid_eevee_forms - [:VAPOREON] => :VAPOREON }
when 3 then { valid_eevee_forms - [:JOLTEON] => :JOLTEON }
when 4 then { valid_eevee_forms - [:LEAFEON] => :LEAFEON }
when 5 then { valid_eevee_forms - [:GLACEON] => :GLACEON }
when 6 then { valid_eevee_forms - [:ESPEON] => :ESPEON }
when 7 then { valid_eevee_forms - [:UMBREON] => :UMBREON }
when 8 then { valid_eevee_forms - [:SYLVEON] => :SYLVEON }
else
pbMessage("Invalid option: #{selected_option}")
next
end
evolve_with_item(item, pkmn, scene, evolutions)
})
Ruby:
#--------Eevee changer---------
ItemHandlers::UseOnPokemon.add(:EEVEECHANGER, proc { |item, qty, pkmn, scene, valid_eevee_forms|
#=====Settings====#
# Displays evolution screen when using item
# true = yes, false = no
EEVEE_EVOLUTION_SCENE = true
# Settings end
valid_eevee_forms = [:EEVEE, :FLAREON, :VAPOREON, :JOLTEON, :LEAFEON, :GLACEON, :ESPEON, :UMBREON, :SYLVEON]
unless valid_eevee_forms.include?(pkmn.species)
scene.pbDisplay(_INTL("It had no effect."))
next false
end
if pkmn.fainted?
scene.pbDisplay(_INTL("This can't be used on the fainted Pokémon."))
next false
end
# Define the evolve_with_item method
def evolve_with_item(item, pkmn, scene, evolutions)
old_name = pkmn.name
selected_option = evolutions.keys.first
target_species = evolutions[selected_option]
if EEVEE_EVOLUTION_SCENE
if pkmn.species != target_species
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new
evo.pbStartScreen(pkmn, target_species)
evo.pbEvolution(false)
evo.pbEndScreen
if scene.is_a?(PokemonPartyScreen)
scene.pbRefreshAnnotations(proc { |p| !p.check_evolution_on_use_item(item).nil? })
scene.pbRefresh
end
}
else
pbMessage(_INTL("Your Pokemon is already in #{pkmn.species.capitalize} form."))
return false
end
else
evolutions.each do |source_group, _|
if source_group.include?(pkmn.species)
pbFadeOutIn {
pkmn.species = target_species
pkmn.reset_moves
scene.pbRefresh
pkmn.calc_stats
}
pbMessage(_INTL("Congratulations! Your #{old_name} changed into #{pkmn.name}!"))
return true
end
end
pbMessage(_INTL("Your Pokemon is already in #{pkmn.species.capitalize} form."))
return false
end
end
options = [
[0, _INTL("Eevee Changer")],
[1, _INTL("Flareon Changer")],
[2, _INTL("Vaporeon Changer")],
[3, _INTL("Jolteon Changer")],
[4, _INTL("Leafeon Changer")],
[5, _INTL("Glaceon Changer")],
[6, _INTL("Espeon Changer")],
[7, _INTL("Umbreon Changer")],
[8, _INTL("Sylveon Changer")],
]
choices = options.map { |_, label| label }
command = pbMessage("Which form?", choices, -1)
next if command == -1 # canceled
selected_option = options[command][0]
evolutions = case selected_option
when 0 then { valid_eevee_forms - [:EEVEE] => :EEVEE }
when 1 then { valid_eevee_forms - [:FLAREON] => :FLAREON }
when 2 then { valid_eevee_forms - [:VAPOREON] => :VAPOREON }
when 3 then { valid_eevee_forms - [:JOLTEON] => :JOLTEON }
when 4 then { valid_eevee_forms - [:LEAFEON] => :LEAFEON }
when 5 then { valid_eevee_forms - [:GLACEON] => :GLACEON }
when 6 then { valid_eevee_forms - [:ESPEON] => :ESPEON }
when 7 then { valid_eevee_forms - [:UMBREON] => :UMBREON }
when 8 then { valid_eevee_forms - [:SYLVEON] => :SYLVEON }
else
pbMessage("Invalid option: #{selected_option}")
next
end
evolve_with_item(item, pkmn, scene, evolutions)
})
Ruby:
#-------------------------------
[EEVEECHANGER]
Name = Eevee Changer
NamePlural = Eevee Changers
Pocket = 8
Price = 0
FieldUse = OnPokemon
Flags = KeyItem
Description = An item that will allow you to switch between forms of Eevee!
New update!
- Credits
- Please credit Dr.Doom76