< >
Hello, guest! Please log in or register.

The PokéCommunity

Go Back     The PokéCommunity Forums > Create & Discover > Game Development > Scripts & Tutorials Essentials script Custom abilities of mine that I thought I'd share (and some ability ideas)

Notices

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.

Reply Post Reply
 
Thread Tools
  #1    
Old 1 Week Ago (11:17 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 98
I was bored and made a bunch of Abilities, and I figured I'd share some of them.



Ability: Fang Leech
Effect: The user's biting moves will also heal 1/8th of its total HP.
Notes: Healing is negated if Heal Block is in play. The user takes damage if used on a target with Liquid Ooze. This does not count as an absorbing effect, so Big Root doesn't affect this.

Suggested Users: Zubat, Golbat, Crobat, Gligar, Gliscor, Woobat, Swoobat, Eelektrik, Eelektross, Noibat, Noivern

Example Images:
Spoiler:


Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this line:
Code:
if target.hasWorkingAbility(:CURSEDBODY,true) && @battle.pbRandom(10)<3
2) And past all of the following directly above it.
Code:
#============================================================================
        # Custom Ability - Fang Leech
        #============================================================================
        if user.hasWorkingAbility(:FANGLEECH) && move.isBitingMove?
          if target.hasWorkingAbility(:LIQUIDOOZE)
            PBDebug.log("[Ability triggered] #{user.pbThis}'s Fang Leech")
            PBDebug.log("[Ability triggered] #{target.pbThis}'s Liquid Ooze")
            hploss=user.pbReduceHP((totalhp/8).floor,true)
            @battle.pbDisplay(_INTL("{1} sucked up the liquid ooze!",user.pbThis))
          else 
            if user.effects[PBEffects::HealBlock]==0
              PBDebug.log("[Ability triggered] #{user.pbThis}'s Fang Leech")
              hpgain=user.pbRecoverHP((totalhp/8).floor,true)
              if hpgain>0
                @battle.pbDisplay(_INTL("{1}'s Fang Leech restored its HP!",user.pbThis))
              end
            end
          end
        end
        #============================================================================



Ability: Armor Piercer
Effect: The user's contact moves bypass the target's attempt to negate damage.
Notes: This negates the damage negation of Protect, Detect, Wide Guard, Quick Guard, Mat Block, King's Shield, and Spiky Shield. Crafty Shied is the lone exception since it only blocks status moves and this ability only applies this effect to contact moves. This is a potentially overpowered ability, so it's best to give it to Pokemon who are otherwise underwhelming.

Suggested Users: Beedrill, Fearow, Rapidash, Heracross, Skorupi, Drapion, Escavalier, Keldeo

Example Images:
Spoiler:


Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this section:
Code:
if target.effects[PBEffects::Protect] && thismove.canProtectAgainst? &&
       !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{target.pbThis}'s Protect stopped the attack")
        return false
    end
2) And replace it with this:
Code:
if target.effects[PBEffects::Protect] && thismove.canProtectAgainst? &&
       !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (Protect/Detect)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{target.pbThis}'s Protect stopped the attack")
        return false
      end#
    end
3) Then look further down for all of this code:
Code:
if target.pbOwnSide.effects[PBEffects::QuickGuard] && thismove.canProtectAgainst? &&
       p>0 && !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} was protected by Quick Guard!",target.pbThis))
        PBDebug.log("[Move failed] The opposing side's Quick Guard stopped the attack")
        return false
    end
    if target.pbOwnSide.effects[PBEffects::WideGuard] &&
       PBTargets.hasMultipleTargets?(thismove) && !thismove.pbIsStatus? &&
       !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} was protected by Wide Guard!",target.pbThis))
        PBDebug.log("[Move failed] The opposing side's Wide Guard stopped the attack")
        return false
    end
    if target.pbOwnSide.effects[PBEffects::CraftyShield] && thismove.pbIsStatus? &&
       thismove.function!=0xE5 # Perish Song
        @battle.pbDisplay(_INTL("Crafty Shield protected {1}!",target.pbThis(true)))
        PBDebug.log("[Move failed] The opposing side's Crafty Shield stopped the attack")
        return false
    end
    if target.pbOwnSide.effects[PBEffects::MatBlock] && !thismove.pbIsStatus? &&
       thismove.canProtectAgainst? && !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} was blocked by the kicked-up mat!",thismove.name))
        PBDebug.log("[Move failed] The opposing side's Mat Block stopped the attack")
        return false
    end
    # TODO: Mind Reader/Lock-On
    # --Sketch/FutureSight/PsychUp work even on Fly/Bounce/Dive/Dig
    if thismove.pbMoveFailed(user,target) # TODO: Applies to Snore/Fake Out
      @battle.pbDisplay(_INTL("But it failed!"))
      PBDebug.log(sprintf("[Move failed] Failed pbMoveFailed (function code %02X)",thismove.function))
      return false
    end
    # King's Shield (purposely after pbMoveFailed)
    if target.effects[PBEffects::KingsShield] && !thismove.pbIsStatus? &&
       thismove.canProtectAgainst? && !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{target.pbThis}'s King's Shield stopped the attack")
        if thismove.isContactMove?
          user.pbReduceStat(PBStats::ATTACK,2,nil,false)
        end
        return false
    end
    # Spiky Shield
    if target.effects[PBEffects::SpikyShield] && thismove.canProtectAgainst? &&
       !target.effects[PBEffects::ProtectNegation]
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{user.pbThis}'s Spiky Shield stopped the attack")
        if thismove.isContactMove?
          amt=user.pbReduceHP((user.totalhp/8).floor) if !user.isFainted?
          @battle.pbDisplay(_INTL("{1} was hurt!",user.pbThis)) if amt>0
        end
        return false
    end
4) And replace it with all of this:
Code:
if target.pbOwnSide.effects[PBEffects::QuickGuard] && thismove.canProtectAgainst? &&
       p>0 && !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (Quick Guard)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} was protected by Quick Guard!",target.pbThis))
        PBDebug.log("[Move failed] The opposing side's Quick Guard stopped the attack")
        return false
      end#
    end
    if target.pbOwnSide.effects[PBEffects::WideGuard] &&
       PBTargets.hasMultipleTargets?(thismove) && !thismove.pbIsStatus? &&
       !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (Wide Guard)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} was protected by Wide Guard!",target.pbThis))
        PBDebug.log("[Move failed] The opposing side's Wide Guard stopped the attack")
        return false
      end#
    end
    if target.pbOwnSide.effects[PBEffects::CraftyShield] && thismove.pbIsStatus? &&
       thismove.function!=0xE5 # Perish Song
        @battle.pbDisplay(_INTL("Crafty Shield protected {1}!",target.pbThis(true)))
        PBDebug.log("[Move failed] The opposing side's Crafty Shield stopped the attack")
        return false
    end
    if target.pbOwnSide.effects[PBEffects::MatBlock] && !thismove.pbIsStatus? &&
       thismove.canProtectAgainst? && !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (Mat Block)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} was blocked by the kicked-up mat!",thismove.name))
        PBDebug.log("[Move failed] The opposing side's Mat Block stopped the attack")
        return false
      end#
    end
    # TODO: Mind Reader/Lock-On
    # --Sketch/FutureSight/PsychUp work even on Fly/Bounce/Dive/Dig
    if thismove.pbMoveFailed(user,target) # TODO: Applies to Snore/Fake Out
      @battle.pbDisplay(_INTL("But it failed!"))
      PBDebug.log(sprintf("[Move failed] Failed pbMoveFailed (function code %02X)",thismove.function))
      return false
    end
    # King's Shield (purposely after pbMoveFailed)
    if target.effects[PBEffects::KingsShield] && !thismove.pbIsStatus? &&
       thismove.canProtectAgainst? && !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (King's Shield)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{target.pbThis}'s King's Shield stopped the attack")
        if thismove.isContactMove?
          user.pbReduceStat(PBStats::ATTACK,2,nil,false)
        end
        return false
      end#
    end
    # Spiky Shield
    if target.effects[PBEffects::SpikyShield] && thismove.canProtectAgainst? &&
       !target.effects[PBEffects::ProtectNegation]
      #====================================================================
      # Custom Ability - Armor Piercer (Spiky Shield)
      #====================================================================
      if user.hasWorkingAbility(:ARMORPIERCER) && thismove.isContactMove?
        PBDebug.log("[Ability triggered] #{user.pbThis}'s Armor Piercer")
        target.effects[PBEffects::ProtectNegation]=true
        @battle.pbDisplay(_INTL("{1}'s {2} breaks {3}'s guard!",user.pbThis,
          PBAbilities.getName(user.ability),target.pbThis))
        return true
      else
      #=====================================================================
        @battle.pbDisplay(_INTL("{1} protected itself!",target.pbThis))
        @battle.successStates[user.index].protected=true
        PBDebug.log("[Move failed] #{user.pbThis}'s Spiky Shield stopped the attack")
        if thismove.isContactMove?
          amt=user.pbReduceHP((user.totalhp/8).floor) if !user.isFainted?
          @battle.pbDisplay(_INTL("{1} was hurt!",user.pbThis)) if amt>0
        end
        return false
      end#
    end



Ability: Pounce
Effect: The user has increased priority on its first turn.
Notes: This grants +1 priority to all of the user's moves during its very first turn on the field. Much like the move Fake Out, you can switch out to reset this effect. This is a potentially overpowered ability, so it's best to give it to Pokemon who are otherwise underwhelming.

Suggested Users: Persian, Skitty, Delcatty, Glameow, Purugly, Purrloin, Liepard, Pyroar (Female)

Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this line:
Code:
p+=1 if user.hasWorkingAbility(:GALEWINGS) && isConst?(thismove.type,PBTypes,:FLYING)
2) And paste this directly below it:
Code:
#============================================================
      # Custom Ability - Pounce
      #============================================================
      p+=1 if user.hasWorkingAbility(:POUNCE) && user.turncount==1
      #============================================================
3) Then in PokeBattle_Battle, search the script for this line:
Code:
isConst?(@choices[i][2].type,PBTypes,:FLYING)
4) And paste this directly below it:
Code:
#======================================================
        # Custom Ability - Pounce
        #======================================================
        pri+=1 if @battlers[i].hasWorkingAbility(:POUNCE) &&
                  @battlers[i].turncount==1
        #======================================================



Ability: Headache
Effect: When the user is confused, Sp.Atk increases.
Notes: Every turn the user is confused, the Sp.Atk stat increases by 1 stage. The user gets an additional boost if they hurt themselves while confused, so it's possible to get +2 in one turn.

Suggested Users: Psyduck, Golduck

Example Images:
Spoiler:




Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this line:
Code:
@effects[PBEffects::Confusion]-=1
2) And paste the following directly below it:
Code:
#===========================================================================================
      # Custom Ability - Headache
      #===========================================================================================
      if self.hasWorkingAbility(:HEADACHE) && self.stages[PBStats::SPATK]<6
        @battle.pbDisplay(_INTL("{1}'s {2} is growing!",self.pbThis,PBAbilities.getName(self.ability)))
        if self.pbIncreaseStatWithCause(PBStats::SPATK,1,self,PBAbilities.getName(self.ability))
          PBDebug.log("[Ability triggered] #{self.pbThis}'s Headache")
        end
      end
      #===========================================================================================
3) Then search a little further down for this line:
Code:
PBDebug.log("[Status] #{pbThis} hurt itself in its confusion and couldn't move")
4) And paste the following directly below it:
Code:
#===========================================================================================
          # Custom Ability - Headache
          #===========================================================================================
          if self.hasWorkingAbility(:HEADACHE) && self.stages[PBStats::SPATK]<6
            @battle.pbDisplay(_INTL("{1}'s {2} is growing!",self.pbThis,PBAbilities.getName(self.ability)))
            if self.pbIncreaseStatWithCause(PBStats::SPATK,1,self,PBAbilities.getName(self.ability))
              PBDebug.log("[Ability triggered] #{self.pbThis}'s Headache")
            end
          end
          #===========================================================================================



Ability: Icy Veins
Effect: The user's Ice and Water-type moves are 30% stronger in hail. This also makes the user immune to hail damage.
Notes: This is essentially the hail equivalent of Sand Force.

Suggested Users: Seel, Dewgong, Lapras, Piplup, Prinplup, Empoleon, Cubchoo, Beartic, Kyurem

Installation:
Spoiler:
1) In PokeBattle_Move, search the script for this section:
Code:
if attacker.hasWorkingAbility(:SANDFORCE) &&
       @battle.pbWeather==PBWeather::SANDSTORM &&
       (isConst?(type,PBTypes,:ROCK) ||
       isConst?(type,PBTypes,:GROUND) ||
       isConst?(type,PBTypes,:STEEL))
      damagemult=(damagemult*1.3).round
    end
2) And paste the following directly below it:
Code:
#================================================
    # Custom Ability - Icy Veins
    #================================================
    if attacker.hasWorkingAbility(:ICYVEINS) &&
       @battle.pbWeather==PBWeather::HAIL &&
       (isConst?(type,PBTypes,:ICE) ||
       isConst?(type,PBTypes,:WATER))
      damagemult=(damagemult*1.3).round
    end
    #================================================
3) Then in PokeBattle_Battle, search the script for this line:
Code:
!i.hasWorkingAbility(:ICEBODY) &&
4) And paste the following directly below it:
Code:
#======================================
               # Custom Ability - Icy Veins
               #======================================
               !i.hasWorkingAbility(:ICYVEINS) &&
               #======================================



Ability: Crystallized
Effect: Reduces the damage taken by super effective moves.
Notes: This is an Ice-type equivalent of Solid Rock/Filter.

Suggested Users: Glalie, Regice, Cryogonal, Kyurem, Amaura, Aurorus, Bergmite, Avalugg

Installation:
Spoiler:
1) In PokeBattle_Move, search the script for this line:
Code:
if (opponent.hasWorkingAbility(:SOLIDROCK) ||
2) And paste the following directly below it:
Code:
#======================================================
         # Custom Ability - Crystallized
         #======================================================
         opponent.hasWorkingAbility(:CRYSTALLIZED) ||
         #======================================================



Ability: Sweet Dreams
Effect: The user restores 1/8th of its max HP at the end of each turn it spends asleep.
Notes: This is essentially the inverse of Bad Dreams. The user's partner is also affected by this ability.

Suggested Users: Cresselia, Munna, Musharna

Example Images:
Spoiler:


Installation:
Spoiler:
1) In PokeBattle_Battle, search the script for this line:
Code:
# Pickup
2) And paste the following directly above it:
Code:
#=========================================================================
      # Custom Ability - Sweet Dreams
      #=========================================================================
      if i.status==PBStatuses::SLEEP && i.hp<i.totalhp
        if i.effects[PBEffects::HealBlock]==0
          if i.hasWorkingAbility(:SWEETDREAMS) ||
             i.pbPartner.hasWorkingAbility(:SWEETDREAMS)
            PBDebug.log("[Ability triggered] #{i.pbThis}'s Sweet Dreams")
            hpgain=i.pbRecoverHP((i.totalhp/8).floor,true)
            pbDisplay(_INTL("{1} is having a sweet dream!",i.pbThis)) if hpgain>0
          end
        end
      end
      #=========================================================================



Ability: Ethereal
Effect: The user is immune to contact moves.
Notes: This is a potentially overpowered ability, so it's best to give it to Pokemon who are otherwise underwhelming.

Suggested Users: Gastly, Misdreavus, Shedinja, Shuppet, Duskull, Froslass, Rotom (Normal)

Example Images:
Spoiler:


Installation:
Spoiler:
1) In PokeBattle_Move, search the script for this section:
Code:
if opponent.hasWorkingAbility(:BULLETPROOF) && isBombMove?
      PBDebug.log("[Ability triggered] #{opponent.pbThis}'s Bulletproof (made #{@name} ineffective)")
      @battle.pbDisplay(_INTL("{1}'s {2} made {3} ineffective!",
         opponent.pbThis,PBAbilities.getName(opponent.ability),self.name))
      return true
    end
2) And paste the following directly below it:
Code:
#=================================================================================================
    # Custom Ability - Ethereal
    #=================================================================================================
    if opponent.hasWorkingAbility(:ETHEREAL) && isContactMove?
      PBDebug.log("[Ability triggered] #{opponent.pbThis}'s Ethereal (made #{@name} ineffective)")
      @battle.pbDisplay(_INTL("{1}'s {2} made {3} ineffective!",
         opponent.pbThis,PBAbilities.getName(opponent.ability),self.name))
      return true
    end
    #=================================================================================================



Ability: Solidarity
Effect: The user recognizes other Pokemon that share its Nature when switching in.
Notes: This is more for in-game purposes, but it can potentially be useful in a competitive setting since often times you can deduce the entire set your opponent is running just by Nature alone. This ability shares the same field effect as Synchronize, making it so that wild Pokemon have a 50% chance to share the same Nature as the user. However, in addition to that effect, wild Pokemon also have a 50% chance of sharing each of the user's IV's.

Suggested Users: Happini, Chansey, Blissey, Eevee, Togepi, Togetic, Togekiss, Delibird, Ralts, Kirlia, Gardevoir, Luvdisc, Uxie, Mesprit, Azelf, Audino, Elgyem, Beheeyem, Vivillon

Example Images:
Spoiler:


Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this line:
Code:
# Anticipation
2) And paste the following directly above it:
Code:
#========================================================================================
    # Custom Ability - Solidarity
    #========================================================================================
    if self.hasWorkingAbility(:SOLIDARITY) && @battle.pbOwnedByPlayer?(@index) && onactive
      selfnaturename=PBNatures.getName(self.nature)
      naturename1=PBNatures.getName(pbOpposing1.nature)
      naturename2=PBNatures.getName(pbOpposing2.nature)
      if selfnaturename==naturename1
        PBDebug.log("[Ability triggered] #{pbThis}'s Solidarity")
        @battle.pbDisplay(_INTL("{1} shares a common nature with {2}!",pbThis,pbOpposing1.name))
      end
      if selfnaturename==naturename2
        PBDebug.log("[Ability triggered] #{pbThis}'s Solidarity")
        @battle.pbDisplay(_INTL("{1} shares a common nature with {2}!",pbThis,pbOpposing2.name))
      end
    end
    #========================================================================================
3) Then, in PField_Field, search the script for this line:
Code:
elsif isConst?(firstpoke.ability,PBAbilities,:SYNCHRONIZE)
4) And paste the following directly above it:
Code:
#===================================================================
    # Custom Ability - Solidarity (Field)
    #===================================================================
    elsif isConst?(firstpoke.ability,PBAbilities,:SOLIDARITY)
      genwildpoke.setNature(firstpoke.nature) if !isroamer && rand(10)<5
      genwildpoke.iv[0]=firstpoke.iv[0] if !isroamer && rand(10)<5
      genwildpoke.iv[1]=firstpoke.iv[1] if !isroamer && rand(10)<5
      genwildpoke.iv[2]=firstpoke.iv[2] if !isroamer && rand(10)<5
      genwildpoke.iv[3]=firstpoke.iv[3] if !isroamer && rand(10)<5
      genwildpoke.iv[4]=firstpoke.iv[4] if !isroamer && rand(10)<5
      genwildpoke.iv[5]=firstpoke.iv[5] if !isroamer && rand(10)<5
    #===================================================================



Ability: Sharp Edge
Effect: Boosts damage of cutting and slashing moves by 20%.
Notes: This is essentially Iron Fist, but for blade-like moves.

Suggested Users: Farfetch'd, Scyther, Kabutops, Absol, Kriketune, Leafeon, Gallade, Pawniard, Bisharp, Keldeo, Honedge, Doublade

Installation:
Spoiler:
1) In PokeBattle_Move, search the script for this section:
Code:
def isBombMove?
    return (@flags&0x2000)!=0 # flag n: Is bomb move
  end
2) And paste the following directly below it:
Code:
#=============================================
  # Custom Ability - Sharp Edge
  #=============================================
  def isSwordMove?
    return isConst?(@id,PBMoves,:FURYCUTTER) ||
           isConst?(@id,PBMoves,:XSCISSOR) ||
           isConst?(@id,PBMoves,:NIGHTSLASH) ||
           isConst?(@id,PBMoves,:SACREDSWORD) ||
           isConst?(@id,PBMoves,:SECRETSWORD) ||
           isConst?(@id,PBMoves,:LEAFBLADE) ||
           isConst?(@id,PBMoves,:CUT) ||
           isConst?(@id,PBMoves,:FALSESWIPE) ||
           isConst?(@id,PBMoves,:SLASH) ||
           isConst?(@id,PBMoves,:CROSSPOISON) ||
           isConst?(@id,PBMoves,:PSYCHOCUT) ||
           isConst?(@id,PBMoves,:RAZORSHELL)
  end
  #=============================================
3) Then further down, search the script for this line:
Code:
if attacker.hasWorkingAbility(:IRONFIST) && isPunchingMove?
4) And paste the following directly above it:
Code:
#===========================================================
    # Custom Ability - Sharp Edge
    #===========================================================
    if attacker.hasWorkingAbility(:SHARPEDGE) && isSwordMove?
      damagemult=(damagemult*1.2).round
    end
    #===========================================================




In order for any of these abilities to work, you must add them in the abilities.txt document in the PBS folder. They should look something like this:

Code:
XXX,FANGLEECH,Fang Leech,"HP is healed when using biting moves."
XXX,ARMORPIERCER,Armor Piercer,"The user's contact moves bypass the effects of Protect."
XXX,POUNCE,Pounce,"The user has priority during its first turn."
XXX,HEADACHE,Headache,"Boosts Sp.Atk while confused."
XXX,ICYVEINS,Icy Veins,"Boosts the user's Ice and Water-type moves in hail."
XXX,CRYSTALLIZED,Crystallized,"Reduces damage from supereffective attacks."
XXX,SWEETDREAMS,Sweet Dreams,"Restores the user's HP while asleep."
XXX,ETHEREAL,Ethereal,"Contact moves cannot harm this Pokémon."
XXX,SOLIDARITY,Solidarity,"The user recognizes opponents with the same Nature."
XXX,SHARPEDGE,Sharp Edge,"Boosts the power of slashing moves."
And replace the X's with the appropriate ability numbers that your project would use.

To give these abilities to certain species, you will have to add them to that Pokemon's ability list in the pokemon.txt file in the PBS folder.
Reply With Quote

Relevant Advertising!

  #2    
Old 1 Week Ago (4:41 AM).
HarmonyConcept HarmonyConcept is offline
 
Join Date: Sep 2015
Gender: Female
Posts: 52
Thank you, those abilities look great!
Reply With Quote
  #3    
Old 1 Week Ago (4:59 AM).
Light and Darkness Dragon's Avatar
Light and Darkness Dragon Light and Darkness Dragon is online now
Learning Pokemon Essentials to Assist PC with Fan Games
 
Join Date: Feb 2016
Age: 22
Gender: Male
Nature: Rash
Posts: 137
Send a message via Skype™ to Light and Darkness Dragon
I love a long of these abilities.
Reply With Quote
  #4    
Old 1 Week Ago (8:00 AM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 98
Thanks guys, glad you like them. I'll add any more I make to this thread if I come up with any.
Reply With Quote
  #5    
Old 1 Week Ago (9:10 AM).
Rot8er_ConeX's Avatar
Rot8er_ConeX Rot8er_ConeX is offline
 
Join Date: May 2015
Location: The Dissa Region
Gender: Male
Posts: 456
I ended up taking the Headache ability and applying it as a second HA for the Psyduck line. Debating taking the Pounce one, too.
Features of Pokemon Entropy
Reply With Quote
  #6    
Old 1 Week Ago (12:38 PM).
Light and Darkness Dragon's Avatar
Light and Darkness Dragon Light and Darkness Dragon is online now
Learning Pokemon Essentials to Assist PC with Fan Games
 
Join Date: Feb 2016
Age: 22
Gender: Male
Nature: Rash
Posts: 137
Send a message via Skype™ to Light and Darkness Dragon
Fang Leech, and Sweet Dreams particularly were my favorite.
I also like how in your OP you gave suggestions to what pokemon could have the ability.
Reply With Quote
  #7    
Old 6 Days Ago (11:50 AM). Edited 6 Days Ago by Lucidious89.
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 98
A couple more I made this morning:


Ability: Outbreak
Effect: The user spreads its status conditions on contact.
Info: When the user is suffering from a Burn, Poison, or Paralysis; the status effect is passed on to an attacker who makes physical contact with the user. Toxic poison is not passed, only regular.

Suggested Users: Grimer, Muk, Yamask, Co***rigus, Trubbish, Garbodor, Solosis, Duosion, Reuniclus

Example Images:
Spoiler:




Installation:
Spoiler:
1) In PokeBattle_Battler, search the script for this line:
Code:
if target.hasWorkingAbility(:POISONPOINT,true) && @battle.pbRandom(10)<3 &&
2) And paste the following directly above it:
Code:
#=================================================================================================
        # Custom Ability - Outbreak
        #=================================================================================================
        if target.hasWorkingAbility(:OUTBREAK,true) && !user.isFainted?
          if target.status==PBStatuses::POISON
            if user.pbCanPoison?(nil,false)
              PBDebug.log("[Ability triggered] #{target.pbThis}'s Outbreak poisoned #{user.pbThis(true)}")
              user.pbPoison(target,_INTL("{1}'s {2} poisoned {3}!",target.pbThis,
             PBAbilities.getName(target.ability),user.pbThis(true)))
            end
          elsif target.status==PBStatuses::PARALYSIS
            if user.pbCanParalyze?(nil,false)
              PBDebug.log("[Ability triggered] #{target.pbThis}'s Outbreak paralyzed #{user.pbThis(true)}")
              user.pbParalyze(target,_INTL("{1}'s {2} paralyzed {3}!",target.pbThis,
             PBAbilities.getName(target.ability),user.pbThis(true)))
            end
          elsif target.status==PBStatuses::BURN 
            if user.pbCanBurn?(nil,false)
              PBDebug.log("[Ability triggered] #{target.pbThis}'s Outbreak burned #{user.pbThis(true)}")
              user.pbBurn(target,_INTL("{1}'s {2} burned {3}!",target.pbThis,
             PBAbilities.getName(target.ability),user.pbThis(true)))
            end
          end
        end
        #=================================================================================================



Ability: Numbing Poison & Searing Poison
Effect: (Numbing Poison) Moves that may poison the foe may paralyze instead.
Effect: (Searing Poison) Moves that may poison the foe may burn instead.
Info: Both abilities are tied into the same code, so its easier to list them together.

Suggested Users: Ekans, Arbok, Tentacool, Tentacruel, Spinarak, Ariados, Seviper, Skorupi, Drapion, Joltik, Galvantula

Example Images:
Spoiler:



Installation:
Spoiler:
1) In PokeBattle_MoveEffects, search the script for the section under this heading:
Code:
################################################################################
# Poisons the target.
################################################################################
2) And replace all of the code within this section with this:
Code:
class PokeBattle_Move_005 < PokeBattle_Move
  def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true)
    return super(attacker,opponent,hitnum,alltargets,showanimation) if pbIsDamaging?
    #==========================================================================================================
    # Custom Ability - Numbing Poison & Searing Poison
    #==========================================================================================================
    return -1 if attacker.hasWorkingAbility(:NUMBINGPOISON) && !opponent.pbCanParalyze?(attacker,true,self)
    return -1 if attacker.hasWorkingAbility(:SEARINGPOISON) && !opponent.pbCanBurn?(attacker,true,self)
    return -1 if (!attacker.hasWorkingAbility(:NUMBINGPOISON) || !attacker.hasWorkingAbility(:SEARPOISON)) &&
                 !opponent.pbCanPoison?(attacker,true,self)
    pbShowAnimation(@id,attacker,opponent,hitnum,alltargets,showanimation)
    if attacker.hasWorkingAbility(:NUMBINGPOISON)
      opponent.pbParalyze(attacker)
      return 0
    elsif attacker.hasWorkingAbility(:SEARINGPOISON)
      opponent.pbBurn(attacker)
      return 0
    else
      opponent.pbPoison(attacker)
      return 0
    end
  end

  def pbAdditionalEffect(attacker,opponent)
    #==========================================================================================================
    # Custom Ability - Numbing Poison & Searing Poison
    #==========================================================================================================
    return false if attacker.hasWorkingAbility(:NUMBINGPOISON) && !opponent.pbCanParalyze?(attacker,false,self)
    return false if attacker.hasWorkingAbility(:SEARINGPOISON) && !opponent.pbCanBurn?(attacker,false,self)
    return false if (!attacker.hasWorkingAbility(:NUMBINGPOISON) || !attacker.hasWorkingAbility(:SEARPOISON)) &&
                    !opponent.pbCanPoison?(attacker,false,self)
    if attacker.hasWorkingAbility(:NUMBINGPOISON)
      opponent.pbParalyze(attacker)
      return true
    elsif attacker.hasWorkingAbility(:SEARINGPOISON)
      opponent.pbBurn(attacker)
      return true
    else
      opponent.pbPoison(attacker)
      return true
    end
  end
end




PBS File:
Code:
XXX,OUTBREAK,Outbreak,"The user spreads its status conditions on contact."
XXX,NUMBINGPOISON,Numbing Poison,"Moves that may poison the target may paralyze instead."
XXX,SEARINGPOISON,Searing Poison,"Moves that may poison the target may burn instead."
Reply With Quote
  #8    
Old 5 Days Ago (10:11 PM).
Rot8er_ConeX's Avatar
Rot8er_ConeX Rot8er_ConeX is offline
 
Join Date: May 2015
Location: The Dissa Region
Gender: Male
Posts: 456
Here's a suggested ability:

Ability: Tanooki Tail
Effect: While the Pokemon is frozen, they take no damage
Note: This sounds at first to be quite overpowered, as it effectively turns you being frozen into your opponent wasting PP. But it should be noted that of the volatile statuses, freezing is the only one that lacks any moves specifically designed to freeze. (i.e. Toxic, Will-O-Wisp, Thunder Wave, Hypnosis). This is also how freezing works in the Mystery Dungeon games by default.

Installation:
Spoiler:
Find the following code in PokeBattle_Battler:
Code:
      if target.hasWorkingAbility(:WONDERGUARD) && typemod<=8 && type>=0 &&
              !user.hasBypassingAbility
        if EFFECTMESSAGES
          @battle.pbDisplay(_INTL("It doesn't affect {1}...",target.pbThis))
        else
          @battle.pbDisplay(_INTL("{1} avoided damage with Wonder Guard!",target.pbThis))
        end
        PBDebug.log("[#{user.pbThis}: move thwarted by Wonder Guard]")
        return false
And add the following directly below it:
Code:
      elsif target.hasWorkingAbility(:TANOOKITAIL) && target.status==PBStatuses::FROZEN &&
              !user.hasBypassingAbility
        if EFFECTMESSAGES
          @battle.pbDisplay(_INTL("It doesn't affect {1}...",target.pbThis))
        else
          @battle.pbDisplay(_INTL("{1} avoided damage with Tanooki!",target.pbThis))
        end
        PBDebug.log("[#{user.pbThis}: move thwarted by Tanooki Tail]")
        return false


Sadly, I don't have any suggestions as to who can get this.
Features of Pokemon Entropy
Reply With Quote
  #9    
Old 5 Days Ago (5:10 AM). Edited 5 Days Ago by Light and Darkness Dragon.
Light and Darkness Dragon's Avatar
Light and Darkness Dragon Light and Darkness Dragon is online now
Learning Pokemon Essentials to Assist PC with Fan Games
 
Join Date: Feb 2016
Age: 22
Gender: Male
Nature: Rash
Posts: 137
Send a message via Skype™ to Light and Darkness Dragon
I was hesitant to post this but these were some ideas people came up with I want to say over half of these were designed with the ideas of mega in mind,

Accelerator- User always go first when using non priority moves.
Ancestry: All attacking moves gets a STAB bonus, and STAB modifier becomes 2.5x.

Apple Corps- User regains double the HP from healing items.

Artic Rush: Ice-type and Flying-type moves, are given a 25% boost in power.

Cacophony: Pokémon with this Ability negate the effects of sound-based Moves such as Screech, by drowning them out. This Ability is only available by hacking, and only in the 3rd Generation.

Color Change: When a Pokémon with this Ability is attacked, it will change its type to that of the move it was hit with.

Firewall Policy: A Pokémon with this ability, changes its type depending on opponent's Pokémon. It also raises a stat by 1 stage, depending on opponent's Pokémon. All Normal-Type moves becomes the wielder's new type.

Forecast: Pokémon with this Ability change their type according to the weather.

Fusion Generator: Exclusive to Mega Electrode. If Pokémon is hit with a Water, Flying, or an Electric Type move, its Sp.Att and Speed are raised by 1 stage. In a Double or Triple battle, allies get a 10% at a boost of Speed.

Gem Encrusted- Boost STAB modifier from 1.5x to 2x

Heatproof: Halves damage caused by Fire-type attacks and Burns.

Honey Gather: May pick up honey after battle; likelihood depends on level.

Hyponist- User has a 30% chance to afflict target with sleep or confusion status when they hit wih a non-contact move

Ice Body: Heals some HP every time it hails.

Illusion: Pokémon with this Ability will come out disguised as the final Pokémon in the party until damage is taken.

Immunity: Pokémon with this move have a natural immunity to all forms of Poison.

Iron Fist: Increases power of punch attacks (Ice Punch, Fire Punch, etc.) by 20%.

Molten Rush: Fire-type and Flying-type moves are given a 25% boost in power.

Nervous Rush: If a Pokémon with this ability is faced against a Pokémon, its weak against, the wielder's moves has priority.

Normalize: Changes the type of all moves in battle, including the opponent's moves, to Normal-type.

Ordinary Dash: Pokémon with this ability, gets priority to all Normal-type move and also a 10% power boost to that move.

Ovenbake: All Normal-type attacks becomes Fire-type attacks.

Poison Point: When a Pokémon with this Ability is attacked with a Direct Attack, there is a 30% chance of the attacker becoming Poisoned.

Shadow Boxer- All non-STAB moves get a 1.5x boost in power.

Shield Dust: Pokémon with this Ability are coated in a strange powder that the negates the extra effects of most moves.

Shifting Sands- User gets STAB bonus from Ground type moves, and resist both Ground and Fire-type moves.

Shock Rush: All Electric-type and Flying-type moves are given a 25% boost in power.

Slude Drain: A Pokémon with his ability, negates all Poison-type attacks, and regain 25% of their HP. Black Sludge doesn't hurt the Pokémon, but also heals it. Pokemon gains immunity to Poison status affliment.

Sludge Stick: When an opponent's Pokémon comes in contact with the wielder, the opponent's Pokémon's Speed stat is reduced by 1 stage, and has a 10% chance of Poison affliment.

Stall: Pokémon with this Ability always move after the foe.

Stench (Something for poison types): 10% Chance to flinch.

Post:
Some of those abilities and balancing and others are down right broken.
Reply With Quote
  #10    
Old 5 Days Ago (8:21 AM).
Nickalooose Nickalooose is offline
--------------------
 
Join Date: Mar 2008
Gender: Female
Posts: 1,280
Some of these are interesting... I don't think I like how you've designed some of them though... But it's definitely a nice addition to a game, well done.
Reply With Quote
  #11    
Old 5 Days Ago (11:40 AM).
Super Dedenne's Avatar
Super Dedenne Super Dedenne is offline
 
Join Date: Apr 2014
Gender:
Posts: 32
I'd argue that Big Root, seeing that it affects even Aqua Ring, should still effect Liquid Ooze and that Keldeo is faaaar from a suggestion for an underwhelming Pokemon, but these are very good!
Public Additions/Snippets:
Trainer Outfit: Acro/MachBike Fix
(Needs 15.1 update) Pokemon Summary Add-On: Improved Ribbons + Scroll!
I might release some of my private plug-n'-play scripts in the future.
Reply With Quote
  #12    
Old 5 Days Ago (12:57 PM).
Lucidious89 Lucidious89 is offline
 
Join Date: Apr 2014
Gender: Male
Posts: 98
Quote:
Originally Posted by Super Dedenne View Post
I'd argue that Big Root, seeing that it affects even Aqua Ring, should still effect Liquid Ooze and that Keldeo is faaaar from a suggestion for an underwhelming Pokemon, but these are very good!
I'm torn on Big Root, mostly because the item explicitly says that it works on HP-stealing moves, not on abilities. Big Root does effect Liquid Ooze however, but that's because an HP draining move is still being used and all Liquid Ooze is doing is reversing the effects. In the case of Fang Leech, the healing factor is inherent in the ability itself, not the move being used. Also, Fang Leech isn't technically a "draining" effect, since you aren't being healed relative to the amount of damage done. It's simply a flat heal of 1/8th max HP every time. Semantics I know, but I sided with the line of thought that would be less work to code lol. I could probably give the ability a makeover so that it adds a true draining effect to biting moves, but I feel like in most cases it would be a downgrade for the Pokemon who'd want to be using it.

And yeah, Keldeo's probably not a great choice for Armor Piercer, in terms of balance. I just listed Pokemon that seem to physically match the characteristics of the ability. If people want to make OP Pokemon in their game, that's up to them.
Reply With Quote
Reply Post Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


  All times are GMT -8. The time now is 8:35 PM.


Contact Us Archive Privacy Statement Terms of Service Top