• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
  • 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.

Easy Alolan Forms Script

rigbycwts

Hmm, hmm.
  • 98
    Posts
    12
    Years
    • Seen Feb 22, 2019
    To avoid breaking codes, set the thread to Printable Version.

    In Pokemon_MultipleForms, put the following below Hoopa's MultipleForms entry.
    The alternate evolution methods for Alolan Pokemon can be found here.
    Code:
    ###############################################################################
    # Alolan Forms
    ###############################################################################
    ALOLAN_SPAWN_MAPS = [2,5,39,41,44,69] # Map IDs for Alolan Forms
    
    MultipleForms.register(:PICHU,{
    "getFormOnCreation"=>proc{|pokemon|
       maps=ALOLAN_SPAWN_MAPS
       if $game_map && maps.include?($game_map.map_id)
         next 7 # 7 because forms 1-6 are used by Cosplay Pikachu and Ash's Pikachu. For Pichu, form 1 is the spiky-eared Pichu.
       else
         next 0
       end
    }
    })
    
    MultipleForms.copy(:PICHU,:PIKACHU)
    
    MultipleForms.register(:RAICHU,{
    "getFormOnCreation"=>proc{|pokemon|
       maps=ALOLAN_SPAWN_MAPS
       if $game_map && maps.include?($game_map.map_id)
         next 7
       else
         next 0
       end
    },
    "type2"=>proc{|pokemon|
       next getID(PBTypes,:PSYCHIC) if pokemon.form==7
       next
    },
    "height"=>proc{|pokemon|
       next 0.7 if pokemon.form==7
       next
    },
    "weight"=>proc{|pokemon|
       next 21.0 if pokemon.form==7
       next
    },
    "getAbilityList"=>proc{|pokemon|
       if pokemon.form==7
         next [[getID(PBAbilities,:SURGESURFER),0],
                 [getID(PBAbilities,:SURGESURFER),2]]
       end
       next
    },
    "onSetForm"=>proc{|pokemon,form|
       pbSeenForm(pokemon)
    }
    })
    
    MultipleForms.register(:RATTATA,{
    "getFormOnCreation"=>proc{|pokemon|
       maps=ALOLAN_SPAWN_MAPS
       if $game_map && maps.include?($game_map.map_id)
         next 1
       else
         next 0
       end
    },
    "type1"=>proc{|pokemon|
       next getID(PBTypes,:DARK) if pokemon.form==1
       next
    },
    "type2"=>proc{|pokemon|
       next getID(PBTypes,:NORMAL) if pokemon.form==1
       next
    },
    "weight"=>proc{|pokemon|
       next 3.8 if pokemon.form==1
       next
    },
    "getAbilityList"=>proc{|pokemon|
      next if pokemon.form==0                    # Normal
      next [[getID(PBAbilities,:GLUTTONY),0],
            [getID(PBAbilities,:HUSTLE),1],
            [getID(PBAbilities,:THICKFAT),2]]    # Alolan
    },
    "onSetForm"=>proc{|pokemon,form|
       pbSeenForm(pokemon)
    }
    })
    
    # Used to determine whether Exeggcute evolves into Normal or Alolan Exeggutor
    MultipleForms.register(:EXEGGCUTE,{
    "getFormOnCreation"=>proc{|pokemon|
       maps=ALOLAN_SPAWN_MAPS
       if $game_map && maps.include?($game_map.map_id)
         next 1
       else
         next 0
       end
    }
    })
    
    MultipleForms.register(:EXEGGUTOR,{
    "getFormOnCreation"=>proc{|pokemon|
       maps=ALOLAN_SPAWN_MAPS
       if $game_map && maps.include?($game_map.map_id)
         next 1
       else
         next 0
       end
    },
    "type2"=>proc{|pokemon|
       next getID(PBTypes,:DRAGON) if pokemon.form==1 # Alolan
       next                                           # Normal
    },
    "getAbilityList"=>proc{|pokemon|
       case pokemon.form
       when 1; next [[getID(PBAbilities,:FRISK),0]] # Alolan
       else;   next                                 # Normal
       end
    },
    "getBaseStats"=>proc{|pokemon|
       next if pokemon.form==0       # Normal
       next [95,105,85,45,125,75]   # Alolan
    },
    "height"=>proc{|pokemon|
       next if pokemon.form==0    # Normal
       next 109                   # Alolan
    },
    "weight"=>proc{|pokemon|
       next if pokemon.form==0   # Normal
       next 4156                 # Alolan
    },
    "dexEntry"=>proc{|pokemon|
       next if pokemon.form==0   # Normal
       next _INTL("As it grew taller and taller, it outgrew its reliance on psychic powers, while within it awakened the power of the sleeping dragon.")       # Alolan
    },
    "getMoveList"=>proc{|pokemon|
       next if pokemon.form==0
       movelist=[]
       case pokemon.form
       when 1; movelist=[[1,:DRAGONHAMMER],[1,:SEEDBOMB],[1,:BARRAGE],[1,:HYPNOSIS],
                         [1,:CONFUSION],[17,:PSYSHOCK],[27,:EGGBOMB],[37,:WOODHAMMER],
                         [47,:LEAFSTORM]]
       end
       for i in movelist
         i[1]=getConst(PBMoves,i[1])
       end
       next movelist
    },
    "getMoveCompatibility"=>proc{|pokemon|
       next if pokemon.form==0
       movelist=[]
       case pokemon.form
       when 1; movelist=[# TMs
                         :TOXIC,:VENOSHOCK,:HIDDENPOWER,:SUNNYDAY,:HYPERBEAM,
                         :PROTECT,:RAINDANCE,:SAFEGUARD,:FRUSTRATION,:EARTHQUAKE,
                         :RETURN,:DIG,:PSYCHIC,:SHADOWBALL,:DOUBLETEAM,
                         :SANDSTORM,:ROCKTOMB,:FACADE,:REST,:ATTRACT,
                         :THIEF,:ROUND,:GIGAIMPACT,:FLASH,:STRUGGLEBUG,
                         :PSYCHUP,:BULLDOZE,:DRAGONTAIL,:DREAMEATER,:SWAGGER,
                         :SUBSTITUTE,
                         # Move Tutors
                         :BUGBITE,:EARTHPOWER,:ELECTROWEB,:ENDEAVOR,:MUDSLAP,
                         :SIGNALBEAM,:SKILLSWAP,:SLEEPTALK,:SNORE,:STEALTHROCK,
                         :STRINGSHOT,:SUCKERPUNCH,:UPROAR,:DRACOMETEOR]
       end
       for i in 0...movelist.length
         movelist[i]=getConst(PBMoves,movelist[i])
       end
       next movelist
    }
    })
     
    Last edited:
    Back
    Top