• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Wormadam TM compatibility

824
Posts
9
Years
  • I just discovered that Wormadam's three forms are compatible with different groups of TMs from each other. Does Essentials already take this into account?

    Edit: Discovered that it doesn't. Here's the solution I came up with:

    1.) In PItem_Items, search "pbSpeciesCompatible?" It should take you to the following function. Add in the red stuff.
    Code:
    def pbSpeciesCompatible?(species,move[COLOR="red"],form=-1[/COLOR])
      return false if species<=0
      data=load_data("Data/tm.dat")
      return false if !data[move]
    [COLOR="Red"]  if isConst?(species,PBSpecies,:WORMADAM)
        case form
        when 0
          return true if isConst?(move,PBMoves,:SOLARBEAM)
          return true if isConst?(move,PBMoves,:ENERGYBALL)
          return true if isConst?(move,PBMoves,:GRASSKNOT)
          return false if isConst?(move,PBMoves,:EARTHQUAKE)
          return false if isConst?(move,PBMoves,:DIG)
          return false if isConst?(move,PBMoves,:SANDSTORM)
          return false if isConst?(move,PBMoves,:ROCKTOMB)
          return false if isConst?(move,PBMoves,:BULLDOZE)
          return false if isConst?(move,PBMoves,:GYROBALL)
          return false if isConst?(move,PBMoves,:FLASHCANNON)
          return true if isConst?(move,PBMoves,:GIGADRAIN)
          return true if isConst?(move,PBMoves,:SEEDBOMB)
          return true if isConst?(move,PBMoves,:SYNTHESIS)
          return true if isConst?(move,PBMoves,:WORRYSEED)
          return false if isConst?(move,PBMoves,:EARTHPOWER)
          return false if isConst?(move,PBMoves,:STEALTHROCK)
          return false if isConst?(move,PBMoves,:MAGNETRISE)
          return false if isConst?(move,PBMoves,:IRONDEFENSE)
          return false if isConst?(move,PBMoves,:IRONHEAD)
        when 1
          return false if isConst?(move,PBMoves,:SOLARBEAM)
          return false if isConst?(move,PBMoves,:ENERGYBALL)
          return false if isConst?(move,PBMoves,:GRASSKNOT)
          return true if isConst?(move,PBMoves,:EARTHQUAKE)
          return true if isConst?(move,PBMoves,:DIG)
          return true if isConst?(move,PBMoves,:SANDSTORM)
          return true if isConst?(move,PBMoves,:ROCKTOMB)
          return true if isConst?(move,PBMoves,:BULLDOZE)
          return false if isConst?(move,PBMoves,:GYROBALL)
          return false if isConst?(move,PBMoves,:FLASHCANNON)
          return false if isConst?(move,PBMoves,:GIGADRAIN)
          return false if isConst?(move,PBMoves,:SEEDBOMB)
          return false if isConst?(move,PBMoves,:SYNTHESIS)
          return false if isConst?(move,PBMoves,:WORRYSEED)
          return true if isConst?(move,PBMoves,:EARTHPOWER)
          return true if isConst?(move,PBMoves,:STEALTHROCK)
          return false if isConst?(move,PBMoves,:MAGNETRISE)
          return false if isConst?(move,PBMoves,:IRONDEFENSE)
          return false if isConst?(move,PBMoves,:IRONHEAD)
        when 2
          return false if isConst?(move,PBMoves,:SOLARBEAM)
          return false if isConst?(move,PBMoves,:ENERGYBALL)
          return false if isConst?(move,PBMoves,:GRASSKNOT)
          return false if isConst?(move,PBMoves,:EARTHQUAKE)
          return false if isConst?(move,PBMoves,:DIG)
          return false if isConst?(move,PBMoves,:SANDSTORM)
          return false if isConst?(move,PBMoves,:ROCKTOMB)
          return false if isConst?(move,PBMoves,:BULLDOZE)
          return true if isConst?(move,PBMoves,:GYROBALL)
          return true if isConst?(move,PBMoves,:FLASHCANNON)
          return false if isConst?(move,PBMoves,:GIGADRAIN)
          return false if isConst?(move,PBMoves,:SEEDBOMB)
          return false if isConst?(move,PBMoves,:SYNTHESIS)
          return false if isConst?(move,PBMoves,:WORRYSEED)
          return false if isConst?(move,PBMoves,:EARTHPOWER)
          return true if isConst?(move,PBMoves,:STEALTHROCK)
          return true if isConst?(move,PBMoves,:MAGNETRISE)
          return true if isConst?(move,PBMoves,:IRONDEFENSE)
          return true if isConst?(move,PBMoves,:IRONHEAD)
        else
          return true if isConst?(move,PBMoves,:SOLARBEAM)
          return true if isConst?(move,PBMoves,:ENERGYBALL)
          return true if isConst?(move,PBMoves,:GRASSKNOT)
          return true if isConst?(move,PBMoves,:EARTHQUAKE)
          return true if isConst?(move,PBMoves,:DIG)
          return true if isConst?(move,PBMoves,:SANDSTORM)
          return true if isConst?(move,PBMoves,:ROCKTOMB)
          return true if isConst?(move,PBMoves,:BULLDOZE)
          return true if isConst?(move,PBMoves,:GYROBALL)
          return true if isConst?(move,PBMoves,:FLASHCANNON)
          return true if isConst?(move,PBMoves,:GIGADRAIN)
          return true if isConst?(move,PBMoves,:SEEDBOMB)
          return true if isConst?(move,PBMoves,:SYNTHESIS)
          return true if isConst?(move,PBMoves,:WORRYSEED)
          return true if isConst?(move,PBMoves,:EARTHPOWER)
          return true if isConst?(move,PBMoves,:STEALTHROCK)
          return true if isConst?(move,PBMoves,:MAGNETRISE)
          return true if isConst?(move,PBMoves,:IRONDEFENSE)
          return true if isConst?(move,PBMoves,:IRONHEAD)
        end
      end[/COLOR]
      return data[move].any? {|item| item==species }
    end

    2.) Search "def pbCheckUseOnPokemonQuick(". Within that code should be a line that looks like this, where you should add the red stuff:
    Code:
    [COLOR="Blue"]    species=pokemon.species[/COLOR][COLOR="Red"]
        form=pokemon.form[/COLOR]
        isCompat=pbSpeciesCompatible?([COLOR="Blue"]species[/COLOR],machine[COLOR="red"],form[/COLOR])
    (if the blue line doesn't exist, add the red line directly above the mostly-black line.)

    3.) Go to PScreen_Utilities. Search "def pbMoveTutorChoose(". You should find code like this. Again, add in the red bits:
    Code:
             pokemon=$Trainer.party[chosen][COLOR="Blue"]
             species=pokemon.species[/COLOR][COLOR="red"]
             form=pokemon.form[/COLOR]
             isCompat=pbSpeciesCompatible?([COLOR="blue"]species[/COLOR],move[COLOR="Red"],form[/COLOR])

    4.) Search "def pbMoveTutorAnnotations(". Within the function you should find the following code. One last time, add in the red bits:
    Code:
    [COLOR="blue"]    species=$Trainer.party[i].species[/COLOR]
    [COLOR="Red"]    form=$Trainer.party[i].form[/COLOR]
        isCompat=pbSpeciesCompatible?([COLOR="blue"]species[/COLOR],move,[COLOR="red"]form[/COLOR])

    For those who pay attention to the word "species" within each pbSpeciesCompatible? function, you can just do exactly the same thing to the word "form" that you add. For example, if it says "pokemon.species" at the start of the arguments, make it say "pokemon.form" at the end of the arguments. If it says "$Trainer.party.species" at the start, make it say "$Trainer.party.form". The versions of the steps above take into account people not wanting to think too hard about this.

    This also includes the same solution for Move Tutor moves.
     
    Last edited:
    1,224
    Posts
    10
    Years
  • I just discovered that Wormadam's three forms are compatible with different groups of TMs from each other. Does Essentials already take this into account?
    Spoiler:


    def pbCheckUseOnPokemonQuick is part of Gen 6, just fyi
     
    63
    Posts
    9
    Years
    • Seen Aug 15, 2017
    So this could then be used to diversify the movesets based on the genders for Nidoran should someone want to combine the Nidoran families?
     
    824
    Posts
    9
    Years
  • So this could then be used to diversify the movesets based on the genders for Nidoran should someone want to combine the Nidoran families?

    In terms of TM and Move Tutor compatibility, yes. Obviously you'd want to change pokemon.form with either pokemon.isMale? or pokemon.isFemale? Either that or write some sort of "get form" script that makes all Nidoran that are male be form 0 and all females are form 1 - then my script could be used in its basic form.

    As for changing the level-up movesets based on gender, check out the section for Meowstic in the Gen VI Pack's Pokemon_MultipleForms script section.
     
    63
    Posts
    9
    Years
    • Seen Aug 15, 2017
    Thanks for the speedy reply; I'm fascinated by the whole debate over Nidorans' (m/f) unique situation. I'm not a competent scripter in any way, so confidence boost (however tiny) that I could see the possibility there =]
     
    824
    Posts
    9
    Years
  • Thanks for the speedy reply; I'm fascinated by the whole debate over Nidorans' (m/f) unique situation. I'm not a competent scripter in any way, so confidence boost (however tiny) that I could see the possibility there =]

    My personal opinion is that Nidoran should, in fact, become a single species, now that Meowstic has shown that Pokemon can have strategic differences between the genders. Maybe Volbeat/Illumise and Tauros/Miltank while we're at it.

    The problem becomes...what happens to the Pokedex after that happens? Everyone who knows anything about Pokemon knows that Mewtwo is number 150. If mergance happened, Mewtwo would become 149 and confuse the heck out of some people.

    I feel like the situation is very similar to Voltorb/Electrode and Inkay/Malamar. If the Game Boy had had gyro sensors like the 3DS does, Voltorb very well may have had an evolutionary method similar to Inkay's, where you had to level the pokemon up while holding the console upside down. Likewise, if Gen I had had a more robust gender system like even gen II, the Nidoran family likely would have turned out differently.

    Game Freak had the chance to change it in Gen III when they did a complete overhaul of the data structure of a Pokemon, and therefore removed any connection to the previous gens. The fact that they didn't means that they wanted to keep the "original 151" as a concept, intact.
     
    63
    Posts
    9
    Years
    • Seen Aug 15, 2017
    Volbeat/Illumise and Tauros/Miltank, while we can suggest that they are male/female counterparts, are still separate identities. I think in the interests of fan-game creation, Nidoran can merge into one Pokedex entry because they share the same name; and are therefore definitely different forms. As to the number situation, in f-gc, I don't think it's as big an issue as people make it out to be. For my f-g, the entire National dex will always be revised to keep evolutionary families together in the order that a member of that family first appeared (Pichu comes in with Pikachu and Raichu - Budew and Roserade either side of Roselia in the gen 3 section, etc).

    As for Nintendo's stance, all they need to do in the next region is provide a revised national dex order because the region prof. has realised the duplication and then maybe put Mew before Mewtwo, so Mewtwo finishes the gen 1 section.
     
    Back
    Top