• 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 Conquest 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.

[Scripting Question] Abilities for Dialga, Palkia and Giratina

HeroesFightingFear

"The Champion of Alon"
  • 99
    Posts
    5
    Years
    I had these ability ideas for Dialga and Palkia. If anyone could help me figure out how to program them, it'd be a huge help.

    Dialga Ability
    Temporal Rewind - When Dialga is below half health, its HP will heal back to full.

    Palkia Ability
    Spatial Force - When Palkia is below half health, it'll force the opponent to switch out. (sorta like a reverse Wimp Out)

    Giratina Ability
    Distortion Power - When Giratina is below half health, it'll exude a tremendous power, sharply lowering all the foe's stats.

    And yes, these abilities were inspired by a thread on Relic Castle, so credit to the people from that thread.
     
    Last edited:
    I had these ability ideas for Dialga and Palkia. If anyone could help me figure out how to program them, it'd be a huge help.

    Dialga Ability
    Temporal Rewind - When Dialga is below half health, its HP will heal back to full.

    Palkia Ability
    Spatial Force - When Palkia is below half health, it'll force the opponent to switch out. (sorta like a reverse Wimp Out)

    Giratina Ability
    Distortion Power - When Giratina is below half health, it'll exude a tremendous power, sharply lowering all the foe's stats.

    And yes, these abilities were inspired by a thread on Relic Castle, so credit to the people from that thread.

    These don't seem too difficult, so I can help you program them in. But before I start, doesn't Temporal Rewind seem really really powerful? The only way you could kill it is when dealing damage greater than or equal to half its max HP because it would just keep healing otherwise (also toxic doesn't work on it). I have an idea that would maybe make it a bit more balanced (also fits the name of the ability better):

    When taking damage from an attack that knocks its HP below half, restores half the damage dealt as HP. This cannot be reactivated until the Pokemon switches out.

    If you want me to keep it like you originally said, I can do that too.
     
    These don't seem too difficult, so I can help you program them in. But before I start, doesn't Temporal Rewind seem really really powerful? The only way you could kill it is when dealing damage greater than or equal to half its max HP because it would just keep healing otherwise (also toxic doesn't work on it). I have an idea that would maybe make it a bit more balanced (also fits the name of the ability better):

    When taking damage from an attack that knocks its HP below half, restores half the damage dealt as HP. This cannot be reactivated until the Pokemon switches out.

    If you want me to keep it like you originally said, I can do that too.

    I prefer the more balanced suggestion. Thank you for helping make it more balanced.
     
    Okay, here's all you need to do:
    In Pokebattle_Battler, paste the bolded segment after Justified like this:
    Code:
          if target.hasWorkingAbility(:JUSTIFIED) &&
              isConst?(movetype,PBTypes,:DARK)
            if target.pbCanIncreaseStatStage?(PBStats::ATTACK)
              if $fefieldeffect == 29
                target.pbIncreaseStatBasic(PBStats::ATTACK,2)
              else
                target.pbIncreaseStatBasic(PBStats::ATTACK,1)
              end
              @battle.pbCommonAnimation("StatUp",target,nil)
              @battle.pbDisplay(_INTL("{1}'s {2} raised its Attack!",
                target.pbThis,PBAbilities.getName(target.ability)))
            end
          end
    [B]      if target.hasWorkingAbility(:TEMPORALREWIND) && target.hp+damage>target.totalhp/2 && 
             target.hp<target.totalhp/2 && !target.effects[PBEffects::TRewind]
            PBDebug.log("[Ability triggered] #{target.pbThis}'s Temporal Rewind")
            target.pbRecoverHP((target.lastHPLost/2).round)
            target.effects[PBEffects::TRewind]=true
            @battle.pbDisplay(_INTL("{1}'s {2} rewound time to before full damage was dealt by {2}!",target.pbThis,
                              PBAbilities.getName(target.ability),user.pbThis(true)))
          end     
          if target.hasWorkingAbility(:SPATIALFORCE) && @battle.pbCanSwitch?(user.index,-1,false) && target.hp+damage>target.totalhp/2 && 
             target.hp<target.totalhp/2
            user.effects[PBEffects::Roar]=true
            @battle.pbDisplay(_INTL("{1}'s {2} switched {3} out!",
               target.pbThis,PBAbilities.getName(target.ability),user.pbThis(true)))
            target.pbConsumeItem
          end
          if target.hasWorkingAbility(:DISTORTIONPOWER) && target.hp+damage>target.totalhp/2 && 
             target.hp<target.totalhp/2
            possibleStats=[PBStats::ATTACK,PBStats::DEFENSE,PBStats::SPATK,PBStats::SPDEF,
                           PBStats::SPEED,PBStats::ACCURACY,PBStats::EVASION]
            worked=false
            for i in possibleStats
              if user.pbCanReduceStatStage?(i)
                user.pbReduceStatBasic(i,2)
                worked=true
              end
            end
            if worked
              @battle.pbCommonAnimation("StatDown",user,nil)
              @battle.pbDisplay(_INTL("{1}'s {2} sharply reduced all of {3}'s stats!",
                target.pbThis,PBAbilities.getName(target.ability),user.pbThis(true)))
            end
          end[/B]
    Paste the following after "@effects[PBEffects::WaterSport] = false"
    Code:
    @effects[PBEffects::TRewind]          = false

    In PBEffects, add the new effect under "# These effects apply to a battler" after the last effect in that list (change the number to be 1 greater than the last one in the list):
    Code:
    TRewind            = 135
    There might be some problems because I didn't test this, so let me know if there are. Also note that these abilities will only activate when a damaging move causes HP to drop below half, similar to Berserk.
     
    Hi I quickly put the scripts in my project and quickly tested it. It worked fine, so great job! I will credit Silverlime and HeroesFightingFear.
     
    Back
    Top