Different Pokemon forms based on natures

zrin132

Rookie
Member
Joined
Mar 7, 2018
Posts
3
Is it possible to set a Pokemon's form based on its nature (or vice versa set its nature based on its form -though I'm guessing there would be issues with the ability synchronize unless its effect was removed)

Like for example have natures that buff attack or special attack (Lonely, Brave, Adamant etc) to use form 0
All natures that buff defence or special defence (Bold, Relaxed, Lax etc) to use form 1.
And all forms that buff speed or are neutral natures (Timid, Hasty, Serious etc) to use form 2.

I know I can change their base stats based on form but that's not what I'm after.
I'm not that good with scripting, all my attempts either lead to errors or ignoring it all and using form 0.
 

zrin132

Rookie
Member
Joined
Mar 7, 2018
Posts
3
I figured it out, just had to figure out the correct scripting, I'll post it here if anyone is curious:
Code:
MultipleForms.register(:RATTATA,{
"getFormOnCreation"=>proc{|pokemon|
if pokemon.nature==PBNatures::MODEST || pokemon.nature==PBNatures::MILD || 
pokemon.nature==PBNatures::QUIET || pokemon.nature==PBNatures::BASHFUL || 
pokemon.nature==PBNatures::RASH
next 1
elsif pokemon.nature==PBNatures::HARDY || pokemon.nature==PBNatures::LONELY || 
pokemon.nature==PBNatures::BRAVE || pokemon.nature==PBNatures::ADAMANT || 
pokemon.nature==PBNatures::NAUGHTY
next 2
elsif pokemon.nature==PBNatures::CALM || pokemon.nature==PBNatures::GENTLE || 
pokemon.nature==PBNatures::SASSY || pokemon.nature==PBNatures::CAREFUL || 
pokemon.nature==PBNatures::QUIRKY
next 3
elsif pokemon.nature==PBNatures::TIMID || pokemon.nature==PBNatures::HASTY || 
pokemon.nature==PBNatures::SERIOUS || pokemon.nature==PBNatures::JOLLY || 
pokemon.nature==PBNatures::NAIVE
next 4
else
next 0
end
}
})

It means instead of seeing the same sprite all the time, it adds a bit of variety, of course assuming you have the graphics for the other sprites too. It works on wild encounters, still have to test it on trainers.
 
Top