Added class Data::Ability and made all code use symbols for abilities instead of numbers. Also added class Data::Item but it's unused.

This commit is contained in:
Maruno17
2020-11-01 20:10:28 +00:00
parent c4e69d0a2e
commit 213347b938
34 changed files with 590 additions and 345 deletions

View File

@@ -181,7 +181,7 @@ class PokeBattle_Battler
end
alias owned owned?
def abilityName; return PBAbilities.getName(@ability); end
def abilityName; return Data::Ability.get(@ability).name; end
def itemName; return PBItems.getName(@item); end
def pbThis(lowerCase=false)
@@ -324,17 +324,12 @@ class PokeBattle_Battler
return true
end
def hasActiveAbility?(ability,ignoreFainted=false)
def hasActiveAbility?(check_ability, ignoreFainted = false)
return false if !abilityActive?(ignoreFainted)
if ability.is_a?(Array)
ability.each do |a|
a = getID(PBAbilities,a)
return true if a!=0 && a==@ability
end
return false
if check_ability.is_a?(Array)
return check_ability.any? { |a| a == @ability }
end
ability = getID(PBAbilities,ability)
return ability!=0 && ability==@ability
return check_ability == @ability
end
alias hasWorkingAbility hasActiveAbility?
@@ -358,10 +353,7 @@ class PokeBattle_Battler
:COMATOSE,
:RKSSYSTEM
]
abilityBlacklist.each do |a|
return true if isConst?(abil, PBAbilities, a)
end
return false
return abilityBlacklist.any? { |a| a == abil }
end
# Applies to gaining the ability.
@@ -386,10 +378,7 @@ class PokeBattle_Battler
:COMATOSE,
:RKSSYSTEM
]
abilityBlacklist.each do |a|
return true if isConst?(abil, PBAbilities, a)
end
return false
return abilityBlacklist.any? { |a| a == abil }
end
def itemActive?(ignoreFainted=false)
@@ -459,9 +448,7 @@ class PokeBattle_Battler
end
def canChangeType?
return false if isConst?(@ability,PBAbilities,:MULTITYPE) ||
isConst?(@ability,PBAbilities,:RKSSYSTEM)
return true
return ![:MULTITYPE, :RKSSYSTEM].include?(@ability)
end
def airborne?

View File

@@ -21,7 +21,7 @@ class PokeBattle_Battler
@level = 0
@hp = @totalhp = 0
@type1 = @type2 = 0
@ability = 0
@ability = nil
@item = 0
@gender = 0
@attack = @defense = @spatk = @spdef = @speed = 0
@@ -78,7 +78,7 @@ class PokeBattle_Battler
@totalhp = pkmn.totalhp
@type1 = pkmn.type1
@type2 = pkmn.type2
@ability = pkmn.ability
@ability = pkmn.ability_id
@item = pkmn.item
@gender = pkmn.gender
@attack = pkmn.attack
@@ -297,7 +297,7 @@ class PokeBattle_Battler
if fullChange
@type1 = @pokemon.type1
@type2 = @pokemon.type2
@ability = @pokemon.ability
@ability = @pokemon.ability_id
end
end
end

View File

@@ -209,7 +209,7 @@ class PokeBattle_Battler
# Form changes upon entering battle and when the weather changes
pbCheckFormOnWeatherChange if !endOfRound
# Darmanitan - Zen Mode
if isSpecies?(:DARMANITAN) && isConst?(@ability,PBAbilities,:ZENMODE)
if isSpecies?(:DARMANITAN) && @ability == :ZENMODE
if @hp<=@totalhp/2
if @form!=1
@battle.pbShowAbilitySplash(self,true)
@@ -223,7 +223,7 @@ class PokeBattle_Battler
end
end
# Minior - Shields Down
if isSpecies?(:MINIOR) && isConst?(@ability,PBAbilities,:SHIELDSDOWN)
if isSpecies?(:MINIOR) && @ability == :SHIELDSDOWN
if @hp>@totalhp/2 # Turn into Meteor form
newForm = (@form>=7) ? @form-7 : @form
if @form!=newForm
@@ -240,7 +240,7 @@ class PokeBattle_Battler
end
end
# Wishiwashi - Schooling
if isSpecies?(:WISHIWASHI) && isConst?(@ability,PBAbilities,:SCHOOLING)
if isSpecies?(:WISHIWASHI) && @ability == :SCHOOLING
if @level>=20 && @hp>@totalhp/4
if @form!=1
@battle.pbShowAbilitySplash(self,true)
@@ -254,8 +254,7 @@ class PokeBattle_Battler
end
end
# Zygarde - Power Construct
if isSpecies?(:ZYGARDE) && isConst?(@ability,PBAbilities,:POWERCONSTRUCT) &&
endOfRound
if isSpecies?(:ZYGARDE) && @ability == :POWERCONSTRUCT && endOfRound
if @hp<=@totalhp/2 && @form<2 # Turn into Complete Forme
newForm = @form+2
@battle.pbDisplay(_INTL("You sense the presence of many!"))

View File

@@ -75,9 +75,7 @@ class PokeBattle_Battler
choices = []
@battle.eachOtherSideBattler(@index) do |b|
next if b.ungainableAbility? ||
isConst?(b.ability, PBAbilities, :POWEROFALCHEMY) ||
isConst?(b.ability, PBAbilities, :RECEIVER) ||
isConst?(b.ability, PBAbilities, :TRACE)
[:POWEROFALCHEMY, :RECEIVER, :TRACE].include?(b.ability)
choices.push(b)
end
if choices.length>0
@@ -107,16 +105,16 @@ class PokeBattle_Battler
# Ability change
#=============================================================================
def pbOnAbilityChanged(oldAbil)
if @effects[PBEffects::Illusion] && isConst?(oldAbil,PBAbilities,:ILLUSION)
if @effects[PBEffects::Illusion] && oldAbil == :ILLUSION
@effects[PBEffects::Illusion] = nil
if !@effects[PBEffects::Transform]
@battle.scene.pbChangePokemon(self,@pokemon)
@battle.pbDisplay(_INTL("{1}'s {2} wore off!",pbThis,PBAbilities.getName(oldAbil)))
@battle.scene.pbChangePokemon(self, @pokemon)
@battle.pbDisplay(_INTL("{1}'s {2} wore off!", pbThis, Data::Ability.get(oldAbil).name))
@battle.pbSetSeen(self)
end
end
@effects[PBEffects::GastroAcid] = false if unstoppableAbility?
@effects[PBEffects::SlowStart] = 0 if !isConst?(@ability,PBAbilities,:SLOWSTART)
@effects[PBEffects::SlowStart] = 0 if @ability != :SLOWSTART
# Revert form if Flower Gift/Forecast was lost
pbCheckFormOnWeatherChange
# Check for end of primordial weather

View File

@@ -216,7 +216,7 @@ class PokeBattle_Battler
end
end
# Stance Change
if isSpecies?(:AEGISLASH) && isConst?(@ability,PBAbilities,:STANCECHANGE)
if isSpecies?(:AEGISLASH) && @ability == :STANCECHANGE
if move.damagingMove?
pbChangeForm(1,_INTL("{1} changed to Blade Forme!",pbThis))
elsif isConst?(move.id,PBMoves,:KINGSSHIELD)

View File

@@ -96,8 +96,7 @@ class PokeBattle_Battler
end
# Greninja - Battle Bond
if !user.fainted? && !user.effects[PBEffects::Transform] &&
user.isSpecies?(:GRENINJA) &&
isConst?(user.ability,PBAbilities,:BATTLEBOND)
user.isSpecies?(:GRENINJA) && user.ability == :BATTLEBOND
if !@battle.pbAllFainted?(user.idxOpposingSide) &&
!@battle.battleBond[user.index&1][user.pokemonIndex]
numFainted = 0

View File

@@ -165,7 +165,7 @@ class PokeBattle_Move
end
# Disguise will take the damage
if !@battle.moldBreaker && target.isSpecies?(:MIMIKYU) &&
target.form==0 && isConst?(target.ability,PBAbilities,:DISGUISE)
target.form==0 && target.ability == :DISGUISE
target.damageState.disguise = true
return
end

View File

@@ -1997,7 +1997,7 @@ end
#===============================================================================
class PokeBattle_Move_063 < PokeBattle_Move
def pbMoveFailed?(user,targets)
if !hasConst?(PBAbilities,:SIMPLE) # Ability isn't defined
if !Data::Ability.exists?(:SIMPLE)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2005,9 +2005,7 @@ class PokeBattle_Move_063 < PokeBattle_Move
end
def pbFailsAgainstTarget?(user,target)
if target.unstoppableAbility? ||
isConst?(target.ability, PBAbilities, :TRUANT) || # For some reason
isConst?(target.ability, PBAbilities, :SIMPLE)
if target.unstoppableAbility? || [:TRUANT, :SIMPLE].include?(target.ability)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2017,7 +2015,7 @@ class PokeBattle_Move_063 < PokeBattle_Move
def pbEffectAgainstTarget(user,target)
@battle.pbShowAbilitySplash(target,true,false)
oldAbil = target.ability
target.ability = getConst(PBAbilities,:SIMPLE)
target.ability = :SIMPLE
@battle.pbReplaceAbilitySplash(target)
@battle.pbDisplay(_INTL("{1} acquired {2}!",target.pbThis,target.abilityName))
@battle.pbHideAbilitySplash(target)
@@ -2032,7 +2030,7 @@ end
#===============================================================================
class PokeBattle_Move_064 < PokeBattle_Move
def pbMoveFailed?(user,targets)
if !hasConst?(PBAbilities,:INSOMNIA) # Ability isn't defined
if !Data::Ability.exists?(:INSOMNIA)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2040,9 +2038,7 @@ class PokeBattle_Move_064 < PokeBattle_Move
end
def pbFailsAgainstTarget?(user,target)
if target.unstoppableAbility? ||
isConst?(target.ability, PBAbilities, :TRUANT) || # For some reason
isConst?(target.ability, PBAbilities, :INSOMNIA)
if target.unstoppableAbility? || [:TRUANT, :INSOMNIA].include?(target.ability)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2052,7 +2048,7 @@ class PokeBattle_Move_064 < PokeBattle_Move
def pbEffectAgainstTarget(user,target)
@battle.pbShowAbilitySplash(target,true,false)
oldAbil = target.ability
target.ability = getConst(PBAbilities,:INSOMNIA)
target.ability = :INSOMNIA
@battle.pbReplaceAbilitySplash(target)
@battle.pbDisplay(_INTL("{1} acquired {2}!",target.pbThis,target.abilityName))
@battle.pbHideAbilitySplash(target)
@@ -2082,10 +2078,7 @@ class PokeBattle_Move_065 < PokeBattle_Move
return true
end
if target.ungainableAbility? ||
isConst?(target.ability, PBAbilities, :POWEROFALCHEMY) ||
isConst?(target.ability, PBAbilities, :RECEIVER) ||
isConst?(target.ability, PBAbilities, :TRACE) ||
isConst?(target.ability, PBAbilities, :WONDERGUARD)
[:POWEROFALCHEMY, :RECEIVER, :TRACE, :WONDERGUARD].include?(target.ability)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2117,9 +2110,7 @@ class PokeBattle_Move_066 < PokeBattle_Move
return true
end
if user.ungainableAbility? ||
isConst?(user.ability, PBAbilities, :POWEROFALCHEMY) ||
isConst?(user.ability, PBAbilities, :RECEIVER) ||
isConst?(user.ability, PBAbilities, :TRACE)
[:POWEROFALCHEMY, :RECEIVER, :TRACE].include?(user.ability)
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2127,7 +2118,7 @@ class PokeBattle_Move_066 < PokeBattle_Move
end
def pbFailsAgainstTarget?(user,target)
if target.unstoppableAbility? || isConst?(target.ability, PBAbilities, :TRUANT)
if target.unstoppableAbility? || target.ability == :TRUANT
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2163,7 +2154,7 @@ class PokeBattle_Move_067 < PokeBattle_Move
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
if user.ungainableAbility? || isConst?(user.ability, PBAbilities, :WONDERGUARD)
if user.ungainableAbility? || user.ability == :WONDERGUARD
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
@@ -2180,7 +2171,7 @@ class PokeBattle_Move_067 < PokeBattle_Move
@battle.pbDisplay(_INTL("But it failed!"))
return true
end
if target.ungainableAbility? || isConst?(target.ability, PBAbilities, :WONDERGUARD)
if target.ungainableAbility? || target.ability == :WONDERGUARD
@battle.pbDisplay(_INTL("But it failed!"))
return true
end

View File

@@ -168,7 +168,7 @@ class PokeBattle_Battle
@battlers[0].effects[PBEffects::Outrage]==0
idxPartyForName = idxPartyNew
enemyParty = pbParty(idxBattler)
if isConst?(enemyParty[idxPartyNew].ability,PBAbilities,:ILLUSION)
if enemyParty[idxPartyNew].ability == :ILLUSION
idxPartyForName = pbLastInTeam(idxBattler)
end
if pbDisplayConfirm(_INTL("{1} is about to send in {2}. Will you switch your Pokémon?",
@@ -254,7 +254,7 @@ class PokeBattle_Battle
def pbMessagesOnReplace(idxBattler,idxParty)
party = pbParty(idxBattler)
newPkmnName = party[idxParty].name
if isConst?(party[idxParty].ability,PBAbilities,:ILLUSION)
if party[idxParty].ability == :ILLUSION
newPkmnName = party[pbLastInTeam(idxBattler)].name
end
if pbOwnedByPlayer?(idxBattler)

View File

@@ -1308,8 +1308,7 @@ class PokeBattle_AI
end
#---------------------------------------------------------------------------
when "05E"
if isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM)
if user.ability == :MULTITYPE || user.ability == :RKSSYSTEM
score -= 90
else
types = []
@@ -1323,8 +1322,7 @@ class PokeBattle_AI
end
#---------------------------------------------------------------------------
when "05F"
if isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM)
if user.ability == :MULTITYPE || user.ability == :RKSSYSTEM
score -= 90
elsif target.lastMoveUsed<=0 ||
PBTypes.isPseudoType?(pbGetMoveData(target.lastMoveUsed,MoveData::TYPE))
@@ -1349,8 +1347,7 @@ class PokeBattle_AI
end
#---------------------------------------------------------------------------
when "060"
if isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM)
if user.ability == :MULTITYPE || user.ability == :RKSSYSTEM
score -= 90
elsif skill>=PBTrainerAI.mediumSkill
envtypes = [
@@ -1370,16 +1367,14 @@ class PokeBattle_AI
#---------------------------------------------------------------------------
when "061"
if target.effects[PBEffects::Substitute]>0 ||
isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM)
target.ability == :MULTITYPE || target.ability == :RKSSYSTEM
score -= 90
elsif target.pbHasType?(:WATER)
score -= 90
end
#---------------------------------------------------------------------------
when "062"
if isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM)
if user.ability == :MULTITYPE || user.ability == :RKSSYSTEM
score -= 90
elsif user.pbHasType?(target.type1) &&
user.pbHasType?(target.type2) &&
@@ -1392,10 +1387,7 @@ class PokeBattle_AI
if target.effects[PBEffects::Substitute]>0
score -= 90
elsif skill>=PBTrainerAI.mediumSkill
if isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:SIMPLE) ||
isConst?(target.ability,PBAbilities,:TRUANT)
if [:MULTITYPE, :RKSSYSTEM, :SIMPLE, :TRUANT].include?(target.ability)
score -= 90
end
end
@@ -1404,10 +1396,7 @@ class PokeBattle_AI
if target.effects[PBEffects::Substitute]>0
score -= 90
elsif skill>=PBTrainerAI.mediumSkill
if isConst?(target.ability,PBAbilities,:INSOMNIA) ||
isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:TRUANT)
if [:INSOMNIA, :MULTITYPE, :RKSSYSTEM, :TRUANT].include?(target.ability)
score -= 90
end
end
@@ -1416,26 +1405,16 @@ class PokeBattle_AI
score -= 40 # don't prefer this move
if skill>=PBTrainerAI.mediumSkill
if target.ability==0 || user.ability==target.ability ||
isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:FLOWERGIFT) ||
isConst?(target.ability,PBAbilities,:FORECAST) ||
isConst?(target.ability,PBAbilities,:ILLUSION) ||
isConst?(target.ability,PBAbilities,:IMPOSTER) ||
isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:TRACE) ||
isConst?(target.ability,PBAbilities,:WONDERGUARD) ||
isConst?(target.ability,PBAbilities,:ZENMODE)
[:MULTITYPE, :RKSSYSTEM].include?(user.ability) ||
[:FLOWERGIFT, :FORECAST, :ILLUSION, :IMPOSTER, :MULTITYPE, :RKSSYSTEM,
:TRACE, :WONDERGUARD, :ZENMODE].include?(target.ability)
score -= 90
end
end
if skill>=PBTrainerAI.highSkill
if isConst?(target.ability,PBAbilities,:TRUANT) &&
user.opposes?(target)
if target.ability == :TRUANT && user.opposes?(target)
score -= 90
elsif isConst?(target.ability,PBAbilities,:SLOWSTART) &&
user.opposes?(target)
elsif target.ability == :SLOWSTART && user.opposes?(target)
score -= 90
end
end
@@ -1446,25 +1425,15 @@ class PokeBattle_AI
score -= 90
elsif skill>=PBTrainerAI.mediumSkill
if user.ability==0 || user.ability==target.ability ||
isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:TRUANT) ||
isConst?(user.ability,PBAbilities,:FLOWERGIFT) ||
isConst?(user.ability,PBAbilities,:FORECAST) ||
isConst?(user.ability,PBAbilities,:ILLUSION) ||
isConst?(user.ability,PBAbilities,:IMPOSTER) ||
isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(user.ability,PBAbilities,:TRACE) ||
isConst?(user.ability,PBAbilities,:ZENMODE)
[:MULTITYPE, :RKSSYSTEM, :TRUANT].include?(target.ability) ||
[:FLOWERGIFT, :FORECAST, :ILLUSION, :IMPOSTER, :MULTITYPE, :RKSSYSTEM,
:TRACE, :ZENMODE].include?(user.ability)
score -= 90
end
if skill>=PBTrainerAI.highSkill
if isConst?(user.ability,PBAbilities,:TRUANT) &&
user.opposes?(target)
if user.ability == :TRUANT && user.opposes?(target)
score += 90
elsif isConst?(user.ability,PBAbilities,:SLOWSTART) &&
user.opposes?(target)
elsif user.ability == :SLOWSTART && user.opposes?(target)
score += 90
end
end
@@ -1475,23 +1444,15 @@ class PokeBattle_AI
if skill>=PBTrainerAI.mediumSkill
if (user.ability==0 && target.ability==0) ||
user.ability==target.ability ||
isConst?(user.ability,PBAbilities,:ILLUSION) ||
isConst?(user.ability,PBAbilities,:MULTITYPE) ||
isConst?(user.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(user.ability,PBAbilities,:WONDERGUARD) ||
isConst?(target.ability,PBAbilities,:ILLUSION) ||
isConst?(target.ability,PBAbilities,:MULTITYPE) ||
isConst?(target.ability,PBAbilities,:RKSSYSTEM) ||
isConst?(target.ability,PBAbilities,:WONDERGUARD)
[:ILLUSION, :MULTITYPE, :RKSSYSTEM, :WONDERGUARD].include?(user.ability) ||
[:ILLUSION, :MULTITYPE, :RKSSYSTEM, :WONDERGUARD].include?(target.ability)
score -= 90
end
end
if skill>=PBTrainerAI.highSkill
if isConst?(target.ability,PBAbilities,:TRUANT) &&
user.opposes?(target)
if target.ability == :TRUANT && user.opposes?(target)
score -= 90
elsif isConst?(target.ability,PBAbilities,:SLOWSTART) &&
user.opposes?(target)
elsif target.ability == :SLOWSTART && user.opposes?(target)
score -= 90
end
end
@@ -1501,10 +1462,7 @@ class PokeBattle_AI
target.effects[PBEffects::GastroAcid]
score -= 90
elsif skill>=PBTrainerAI.highSkill
score -= 90 if isConst?(target.ability,PBAbilities,:MULTITYPE)
score -= 90 if isConst?(target.ability,PBAbilities,:RKSSYSTEM)
score -= 90 if isConst?(target.ability,PBAbilities,:SLOWSTART)
score -= 90 if isConst?(target.ability,PBAbilities,:TRUANT)
score -= 90 if [:MULTITYPE, :RKSSYSTEM, :SLOWSTART, :TRUANT].include?(target.ability)
end
#---------------------------------------------------------------------------
when "069"

View File

@@ -2419,10 +2419,7 @@ BattleHandlers::AbilityChangeOnBattlerFainting.add(:POWEROFALCHEMY,
proc { |ability,battler,fainted,battle|
next if battler.opposes?(fainted)
next if fainted.ungainableAbility? ||
isConst?(fainted.ability, PBAbilities, :POWEROFALCHEMY) ||
isConst?(fainted.ability, PBAbilities, :RECEIVER) ||
isConst?(fainted.ability, PBAbilities, :TRACE) ||
isConst?(fainted.ability, PBAbilities, :WONDERGUARD)
[:POWEROFALCHEMY, :RECEIVER, :TRACE, :WONDERGUARD].include?(fainted.ability)
battle.pbShowAbilitySplash(battler,true)
battler.ability = fainted.ability
battle.pbReplaceAbilitySplash(battler)