• 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.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • Akari, Selene, Mint, Solana - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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.

Help making custom moves

Telemetius

Tele*
  • 256
    Posts
    10
    Years
    Hello forum, I recently saw a series of questions asking for help to make (or to make public) new custom moves and I was thinking, does it deserve its own thread?

    Anyways, what I'm trying to script is:

    1) IRON WILL
    -for 5 turns the user defense and sp def will be raised by +1 each turn
    -the atk and sp atk will be lowered by -0,5 each turn

    -works only if the pokemon is slower than the adversary
    -works only if the pokemon has more than 50% of its health left
    -works only on iron types
    -after 5 turns def and sp def will be lowered by -5 while atk and sp atk will be raised by +2,5

    ##########################################

    2) ROCKFALL
    -it will cure the user with 60% of its total health
    -it has +1 priority
    -it will distract the adversary

    -cannot be used twice in a row
    -it will lower the user speed by -5
    -works only on rock types

    ##########################################

    3) FREEZE STING
    - with a 100% accuracy it will freeze the target

    - cannot be used on ice types
    - cannot be used on fire types
    - cannot be used twice in a row

    ##########################################

    I understand that No 2 and 3 are broken but they are supposed to be annoying and they'll be used just once.

    This is my attempt for Freezesting, it's working:

    Code:
    ################################################################################
    # Custom Move BRINAMENTO
    ################################################################################
    
    class PokeBattle_Move_15A < PokeBattle_Move
      def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
        if @congelato==true
           @battle.pbDisplay(_INTL("Too tired to use Brinamento!"))
           return -1
        end
        return super(attacker,opponent,hitnum,alltargets,showanimation) if pbIsDamaging?
        return -1 if !opponent.pbCanFreeze?(attacker,true,self)
        pbShowAnimation(@id,attacker,opponent,hitnum,alltargets,showanimation)
        opponent.pbFreeze if opponent.pbCanFreeze?(attacker,false,self)
        return 0
      end
    
    def pbAdditionalEffect(attacker,opponent)
      if opponent.pbCanFreeze?(attacker,false,self) && opponent.pbHasType?(:ICE)
           @battle.pbDisplay(_INTL("Brinamento has no effect on Ice Pokémons!"))
           return false
      elsif opponent.pbCanFreeze?(attacker,false,self) && opponent.pbHasType?(:FIRE)
           @battle.pbDisplay(_INTL("Brinamento has no effect on Fire Pokémons!"))
           return false
      else
        opponent.pbFreeze if opponent.pbCanFreeze?(attacker,false,self)
        @congelato=true
        return true
      end
        return false
     end
    end

    This is rockfall:

    Code:
    ################################################################################
    # CUSTOM MOVE SEDIMENTAZIONE
    ################################################################################
    class PokeBattle_Move_15B < PokeBattle_Move
      def isHealingMove?
        return true
      end
    
      def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
        if @tentenna==true
           @battle.pbDisplay(_INTL("Too tired to use Sedimentazione again!"))
           return -1
        end
        #if !attacker.pbHasType?(:ROCK)
        #  return -1
        #end
        if attacker.hp==attacker.totalhp
          @battle.pbDisplay(_INTL("{1}'s HPs are already at max!",attacker.pbThis))
          return -1
        end
        hpgain=(attacker.totalhp).floor
        pbShowAnimation(@id,attacker,nil,hitnum,alltargets,showanimation)
        attacker.pbRecoverHP(hpgain,true)
        @battle.pbDisplay(_INTL("{1}'s HPs have been restored.",attacker.pbThis))
        if attacker.pbCanReduceStatStage?(PBStats::SPEED,attacker,false,self)
          attacker.pbReduceStat(PBStats::SPEED,5,attacker,false,self)
        end
        return 0
      end
    end
    
    def pbAdditionalEffect(attacker,opponent)
        if opponent.effects[PBEffects::Substitute]==0 || ignoresSubstitute?(attacker)
          return opponent.pbFlinch(attacker)
          @tentenna=true
        end
        @tentenna=true
        return false
      end
     
    Last edited:
    Back
    Top