• Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Resource icon

v21.1 Eevee Form Changer V1.03

This resource pertains to version 21.1 of Pokémon Essentials.
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
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!
If you need anything, or got anything, don't hesitate!

New update!
9-18-2023 (17-29-38).gif
Credits
Please credit Dr.Doom76
Author
drdoom76
Views
1,507
First release
Last update
Rating
5.00 star(s) 1 ratings

More resources from drdoom76

Latest updates

  1. V1.03

    Fixed an indexing issue created when added Eevee form, for the with switches version. Without...
  2. V1.02

    Per suggestion, added Eevee form into the options for both with switches and without switches.
  3. Eevee Changer V1.01

    Streamlined the code a little bit. Added screen flash when changing forms. Seems to work fine...
Back
Top