• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Custom Feature Question] Help With Evolution Methods (Two pokemon evolving at the same time when they're in the party together)

  • 100
    Posts
    5
    Years
    Hey guys. I'm working on a fan game, and a few of the pokemon have strange ways to evolve.

    The first is a pokemon that checks to see if you have a Flying type in your party, or else a Water or Ice type. It'll evolve into one pokemon if you have a Flying type, and a different pokemon if you have a Water or Ice type.

    My code is here, for those who want to take a look. I'm a bit of a coding newbie, sorry.
    https://pastebin.com/0f0tErQC

    SOLVED] The next is one where, after the pokemon has fainted at least once, it'll evolve the next time it levels up (or even after the battle it faints in). Not sure how to go about this one. I suspect maybe kind of like Galarian Yamask, but again, I am not code-savvy enough to do this.

    Another one: the pokemon will only evolve if a certain pokemon is in the party (fine). However, BOTH pokemon will evolve at the same time AND both pokemon must be male. Any suggestions?

    SOLVED] Last one is the trickiest. It's a pokemon that, ideally, will evolve after it produces an egg in the daycare (of its own species). I understand this may be impossible, so the easiest basis I could do is have it evolve if an Egg is in the party (regardless of species). I imagine this is like checking to see if you have a certain pokemon in your party, except you're looking for an Egg instead.

    SOLVED] I have a pokemon where, depending on whether you level it up on freshwater (lakes, rivers) or else saltwater (ocean), it'll turn into a different form of its evolution. The pokemon it evolves into is the same, just a different form. It cannot change that form once evolved, and its pre-evolution does NOT have a form. The closest I can think of is Kanto/Alolan Raichu, but those are region-dependent, and I'm hoping to get something closer to location-dependent (specified by map, ideally).

    If anyone has any codes to make these work, I'd be forever grateful. Thank you so much!
     
    Last edited:
    For the LevelBlankInParty one, make sure that it's correctly named in EVONAMES and just above the EVONAMES, so LevelBlankInParty = 31 and in the purple text "LevelBlankInParty" etc. Also, make sure the EVOPARAM is correct, for this set at 1. All of this is at the top of the script Pokemon_Evolution. I'm not sure what the problem is with your script for that one other than possibly those mistakes, so send a copy of the error message when you have problems like this.

    For the Evolution on Faint idea, I actually had someone help me with that recently! Read through my first posts (sorry, I can't post links yet either) for a thread called "Help with Evolution on Faint method" and try that process out, it should work!

    The female form thing, you'll have to go into Pokemon_Forms and do some editing. I am not 100% sure about this, but it should just be a simple check if they're female, something close to this.
    Code:
    MultipleForms.register(:POKEMONNAME,{
    "getForm"=>proc{|pokemon|
       if isConst?(pokemon.item,PBItems,:ITEM) && pokemon.isFemale?
         next 1
       end
       next 0
    }
    })
    You'll have to mess with pokemonforms in the PBS folder too but that's easier.

    As for the egg evolution, I have no idea, personally.
     
    Okay I shuffled some things around and now the game isn't crashing, hurray! I'll have to test that evolution method later though, once I get to those pokemon.
    I will update this post with the coding once I confirm it is or isn't working.

    WORKING CODES:

    Evolution method: Evolve after that Pokemon faints

    See this post for method: https://www.pokecommunity.com/posts/10186979
    Credit to SJFzone for the post (with coding by NettoHikari on Relic Castle)

    ---

    Evolution method: Evolve when a specific Pokemon's Egg (and ONLY the egg form) is in the party.

    EVONAME: HasEggInParty
    EVOPARAM: make sure it's 4

    In the script Poke_Evolution, scroll down to the section that contains the code for "HasInParty" and paste the following just after:
    Code:
    when PBEvolution::HasEggInParty
          for i in $Trainer.party
            return poke if i.isEgg? && i.species==level
        end

    Then in your Pokemon PBS, use the following:
    Code:
    Evolutions=WHATITEVOLVESINTO,HasEggInParty,WHATSPECIESOFEGG

    ---

    Evolution method: Base form has a single form. Evolve into one of two forms (same Pokemon) depending on where it leveled up.

    This one is probably super unoptimized but hey it finally works.

    First off, make sure your Pokemon has two forms set up in the PBS files. Name the base form whatever you'd like, and the second form is the other. In my case, one is Freshwater, the other is Saltwater.

    Then, in the Poke_Evolution script, make two new EVONAMEs: FreshWaterEvo, and SaltWaterEvo
    EVOPARAMs are both 1

    In the script Poke_Evolution, just after the code for Location, use the following:

    Code:
     when PBEvolution::FreshWaterEvo
        pokemon.form=0
        return poke if $game_map.map_id==66
      when PBEvolution::SaltWaterEvo
        pokemon.form=1
        return poke if $game_map.map_id==5
         return poke if $game_map.map_id==69

    As you can see, you can add more maps as seen in the second code.

    Then, just make sure in your Pokemon PBS file, the pre-evolution has this:
    Code:
    Evolutions=NAME,FreshWaterEvo,66,NAME,SaltWaterEvo,5,NAME,SaltWaterEvo,69
    Replacing NAME with whatever it evolves into, and ensuring you have all the same maps as what's in your Poke_Evolution script.
     
    Last edited:
    for your last issue, take lycanroc as an example, rockruff will evolve into lycanroc and then select 1 of 3 forms based on time
    you can make a similar method but instead of time you use environment / the tile you're at, you can look at burmy for the syntaxes in forms script
     
    Right. So I took a look at Lycanroc for an example (courtesy of Zerokid), and used the following:
    Code:
    @[email protected]
          if (isConst?(@newspecies,PBSpecies,:KAELOCH) && !pbGetMetadata($game_map.map_id,5))
          @pokemon.form=1
          elsif (isConst?(@newspecies,PBSpecies,:KAELOCH) && @oldform==1 && !pbGetMetadata($game_map.map_id,66))
          @pokemon.form=0
          end

    Also under the assumption that I can add more map ids later, perhaps? And the pokemon does evolve on both those maps...but it's evolving into Form 1 all the time.

    The Pokemon PBS is also set up so that its pre-evolution has:
    Code:
    Evolutions=KAELOCH,Location,66,KAELOCH,Location,5

    It only evolves on those two maps (I've tested on others), but again, it's only choosing Form 1 and never Form 0.

    EDIT: This evolution method has been solved, hurray! See my second post for what I did. I'm still seeking help for the co-evolution one though.
     
    Last edited:
    Back
    Top