Innate Abilities (Yet Another "All Abilities Mutation" mod)

Resource Innate Abilities (Yet Another "All Abilities Mutation" mod) 1.2

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
Sonicover submitted a new resource:

Innate Abilities (Yet Another "All Abilities Mutation" mod) - Unlock the true potential of a pokemon with more than one ability!

First and foremost: This plugin uses DemIce's All Abilities Mutation plugin as a base. My plugin just updates it a bit and adds some new values in the PBS to make this version work. All credits please go towards him, since I basically just made a copy-paste of what was already on essentials and changed some text, hence why it might be buggy at some places.
Needless to say that if...

Read more about this resource...
 

SomebodyRandom

Trainer
Member
Joined
Feb 13, 2022
Posts
59
This sounds like it's more of what Elite does rather than Exceeded, which has other types of bonus abilities than just innates. Do you think you could look into adding level-up abilities or tutor abilities?
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
63
Ruby:
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    for i in battler.abilityMutationList
      $aamName=GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end  
  end
This should meke Poison Puppeteer work (didnt test).
 
Last edited:

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
This sounds like it's more of what Elite does rather than Exceeded, which has other types of bonus abilities than just innates. Do you think you could look into adding level-up abilities or tutor abilities?
Yes, to be fair I've only played Elite, however I saw that Exceeded also included Innate abilities so I've wanted to mention it as well.

How do Level up or tutor abilities work? I might try to implement them as well
 

SomebodyRandom

Trainer
Member
Joined
Feb 13, 2022
Posts
59
Yes, to be fair I've only played Elite, however I saw that Exceeded also included Innate abilities so I've wanted to mention it as well.

How do Level up or tutor abilities work? I might try to implement them as well
They work exactly like moves, along with being able to replace your abilities. The abilities also stay after evolving, so you could have a truant vigoroth if you really wanted to. Also, you should try exceeded. Elite Redux feels like you're just playing competitive pokemon while exceeded feels more like a regular pokemon game
 

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
Ruby:
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    for i in battler.abilityMutationList
      $aamName=GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end 
  end
This should meke Poison Puppeteer work (didnt test).
Your method does work! Thanks! I'll give you credit when I update the plugins.
However the only drawback making it this way has is that the handler only works with Poison Puppeteer, so I'll still be on the look for making all innates that use the handler work
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
63
Your method does work! Thanks! I'll give you credit when I update the plugins.
However the only drawback making it this way has is that the handler only works with Poison Puppeteer, so I'll still be on the look for making all innates that use the handler work
Ruby:
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    #OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    if user
      for i in user.abilityMutationList
        $aamName = GameData::Ability.get(i).name
        OnInflictingStatus.trigger(i, user, battler, status)
      end
    end
    for i in battler.abilityMutationList
      $aamName = GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end
  end
This should be fine.
And have you been fixed the hasActiveAbility? problem? Check it out.
 

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
They work exactly like moves, along with being able to replace your abilities. The abilities also stay after evolving, so you could have a truant vigoroth if you really wanted to. Also, you should try exceeded. Elite Redux feels like you're just playing competitive pokemon while exceeded feels more like a regular pokemon game
I think thats out of the scope of this project. At least by now, since it'll imply making another property for pokemon to add compatible abilities and a method to know when a pokemon should learn a new one, and then making the AAM plugin read only the active abilities and not the whole property (Like it's doing for the innates)

It's an interesting idea tho, but I feel it will requiere it's own version.

And thanks for the suggestion, I'll play Exceeded. If I like the implementation I'll probably try to make it but can't promise anything rn
 

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
Ruby:
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    #OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    if user
      for i in user.abilityMutationList
        $aamName = GameData::Ability.get(i).name
        OnInflictingStatus.trigger(i, user, battler, status)
      end
    end
    for i in battler.abilityMutationList
      $aamName = GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end
  end
This should be fine.
And have you been fixed the hasActiveAbility? problem? Check it out.
It works wonderfully, thanks a lot!

I haven't got any problems with the "hasActiveAbility?" def but I was aware there was a problem when I saw your port. I've tried implementing your code but that causes some abilities like Guard Dog not working completely (It blocks Intimidate but doesn't raise attack). I'll chek it out
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
63
It works wonderfully, thanks a lot!

I haven't got any problems with the "hasActiveAbility?" def but I was aware there was a problem when I saw your port. I've tried implementing your code but that causes some abilities like Guard Dog not working completely (It blocks Intimidate but doesn't raise attack). I'll chek it out
When hasActiveAbility? checks an array, it can't work. Try Protean and Libero, one of them doesn't work.
I havent touched gen 9 yet, but I remember that Guard Dog checks that ability is Intimidate or not, you may need to change it to check abilityMutationList.include?(:INTIMIDATE).
In ER, players can press a button to open a foe's summary screen, are you going to implement this function?
Nice script! I steal the Innate Summary Page. Lol
 

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
When hasActiveAbility? checks an array, it can't work. Try Protean and Libero, one of them doesn't work.
I havent touched gen 9 yet, but I remember that Guard Dog checks that ability is Intimidate or not, you may need to change it to check abilityMutationList.include?(:INTIMIDATE).
In ER, players can press a button to open a foe's summary screen, are you going to implement this function?
Nice script! I steal the Innate Summary Page. Lol
I will give it a second look. If it's OK with you I'll use the code you fixed in your port, at least for comparison.
Feel free to take from this one whatever you want.

On the ER summary part I don't think I'll implement that because that would be giving the player the entire information about the opponent and I feel it could break some balance.
However, innate abilities are like types, a non variable for the pokemon because all of them are always active, so I can try and show only the innates. Maybe using something like the Enhanced Battle UI plugin to show only the foe's innates, because the player can always check the summary of its own team so for one self its not necessary. But doing so with that plugin will require 2 additional more so I'll see. Maybe yeah an option for a quick look at the Innate page specifically can work. I'll tinker with it, thanks for the suggestion!
 

Sonicover

Novice
Member
Joined
Jan 14, 2022
Posts
42
Sonicover updated Innate Abilities (Yet Another "All Abilities Mutation" mod) with a new update entry:

Small bunch of fixes

This update just fixes some of the faulty code of the previous version, and fixes a couple of handlers:
  • Updated the "hasActiveAbility?" defition (Credits to Penelope for the suggestion and code)
  • Protean and Libero now work as Innates because of this
  • Fixed the handler "ModifyMoveBaseType" so abilities that use it(Like Galvanize or Pixilate) now properly work as Innates
  • Solved Poison Puppeteer working as an Innate now (Credits to...

Read the rest of this update entry...
 
Back
Top