mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 06:04:59 +00:00
Merge branch 'dev' into ai
This commit is contained in:
@@ -461,9 +461,9 @@ class Battle::Battler
|
||||
return if move_type != gem_type
|
||||
@effects[PBEffects::GemConsumed] = @item_id
|
||||
if Settings::MECHANICS_GENERATION >= 6
|
||||
mults[:base_damage_multiplier] *= 1.3
|
||||
mults[:power_multiplier] *= 1.3
|
||||
else
|
||||
mults[:base_damage_multiplier] *= 1.5
|
||||
mults[:power_multiplier] *= 1.5
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ class Battle::Move
|
||||
attr_accessor :id
|
||||
attr_reader :name
|
||||
attr_reader :function
|
||||
attr_reader :baseDamage
|
||||
attr_reader :power
|
||||
attr_reader :type
|
||||
attr_reader :category
|
||||
attr_reader :accuracy
|
||||
@@ -22,6 +22,12 @@ class Battle::Move
|
||||
|
||||
def to_int; return @id; end
|
||||
|
||||
# @deprecated This method is slated to be removed in v22.
|
||||
def baseDamage
|
||||
Deprecation.warn_method("baseDamage", "v22", "power")
|
||||
return @power
|
||||
end
|
||||
|
||||
#=============================================================================
|
||||
# Creating a move
|
||||
#=============================================================================
|
||||
@@ -32,7 +38,7 @@ class Battle::Move
|
||||
@name = move.name # Get the move's name
|
||||
# Get data on the move
|
||||
@function = move.function_code
|
||||
@baseDamage = move.base_damage
|
||||
@power = move.power
|
||||
@type = move.type
|
||||
@category = move.category
|
||||
@accuracy = move.accuracy
|
||||
@@ -173,7 +179,7 @@ class Battle::Move
|
||||
"PowerHigherWithUserHP", "PowerLowerWithUserHP",
|
||||
"PowerHigherWithUserHappiness", "PowerLowerWithUserHappiness",
|
||||
"PowerHigherWithUserPositiveStatStages", "PowerDependsOnUserStockpile"
|
||||
return pbBaseType(@baseDamage, battler, nil)
|
||||
return pbBaseType(@power, battler, nil)
|
||||
end
|
||||
=end
|
||||
return @realMove.display_damage(battler.pokemon)
|
||||
|
||||
@@ -248,7 +248,7 @@ class Battle::Move
|
||||
# Calculate whether this hit deals critical damage
|
||||
target.damageState.critical = pbIsCritical?(user, target)
|
||||
# Calcuate base power of move
|
||||
baseDmg = pbBaseDamage(@baseDamage, user, target)
|
||||
baseDmg = pbBaseDamage(@power, user, target)
|
||||
# Calculate user's attack stat
|
||||
atk, atkStage = pbGetAttackStats(user, target)
|
||||
if !target.hasActiveAbility?(:UNAWARE) || @battle.moldBreaker
|
||||
@@ -263,14 +263,14 @@ class Battle::Move
|
||||
end
|
||||
# Calculate all multiplier effects
|
||||
multipliers = {
|
||||
:base_damage_multiplier => 1.0,
|
||||
:power_multiplier => 1.0,
|
||||
:attack_multiplier => 1.0,
|
||||
:defense_multiplier => 1.0,
|
||||
:final_damage_multiplier => 1.0
|
||||
}
|
||||
pbCalcDamageMultipliers(user, target, numTargets, type, baseDmg, multipliers)
|
||||
# Main damage calculation
|
||||
baseDmg = [(baseDmg * multipliers[:base_damage_multiplier]).round, 1].max
|
||||
baseDmg = [(baseDmg * multipliers[:power_multiplier]).round, 1].max
|
||||
atk = [(atk * multipliers[:attack_multiplier]).round, 1].max
|
||||
defense = [(defense * multipliers[:defense_multiplier]).round, 1].max
|
||||
damage = ((((2.0 * user.level / 5) + 2).floor * baseDmg * atk / defense).floor / 50).floor + 2
|
||||
@@ -283,9 +283,9 @@ class Battle::Move
|
||||
if (@battle.pbCheckGlobalAbility(:DARKAURA) && type == :DARK) ||
|
||||
(@battle.pbCheckGlobalAbility(:FAIRYAURA) && type == :FAIRY)
|
||||
if @battle.pbCheckGlobalAbility(:AURABREAK)
|
||||
multipliers[:base_damage_multiplier] *= 2 / 3.0
|
||||
multipliers[:power_multiplier] *= 2 / 3.0
|
||||
else
|
||||
multipliers[:base_damage_multiplier] *= 4 / 3.0
|
||||
multipliers[:power_multiplier] *= 4 / 3.0
|
||||
end
|
||||
end
|
||||
# Ability effects that alter damage
|
||||
@@ -336,47 +336,47 @@ class Battle::Move
|
||||
end
|
||||
# Parental Bond's second attack
|
||||
if user.effects[PBEffects::ParentalBond] == 1
|
||||
multipliers[:base_damage_multiplier] /= (Settings::MECHANICS_GENERATION >= 7) ? 4 : 2
|
||||
multipliers[:power_multiplier] /= (Settings::MECHANICS_GENERATION >= 7) ? 4 : 2
|
||||
end
|
||||
# Other
|
||||
if user.effects[PBEffects::MeFirst]
|
||||
multipliers[:base_damage_multiplier] *= 1.5
|
||||
multipliers[:power_multiplier] *= 1.5
|
||||
end
|
||||
if user.effects[PBEffects::HelpingHand] && !self.is_a?(Battle::Move::Confusion)
|
||||
multipliers[:base_damage_multiplier] *= 1.5
|
||||
multipliers[:power_multiplier] *= 1.5
|
||||
end
|
||||
if user.effects[PBEffects::Charge] > 0 && type == :ELECTRIC
|
||||
multipliers[:base_damage_multiplier] *= 2
|
||||
multipliers[:power_multiplier] *= 2
|
||||
end
|
||||
# Mud Sport
|
||||
if type == :ELECTRIC
|
||||
if @battle.allBattlers.any? { |b| b.effects[PBEffects::MudSport] }
|
||||
multipliers[:base_damage_multiplier] /= 3
|
||||
multipliers[:power_multiplier] /= 3
|
||||
end
|
||||
if @battle.field.effects[PBEffects::MudSportField] > 0
|
||||
multipliers[:base_damage_multiplier] /= 3
|
||||
multipliers[:power_multiplier] /= 3
|
||||
end
|
||||
end
|
||||
# Water Sport
|
||||
if type == :FIRE
|
||||
if @battle.allBattlers.any? { |b| b.effects[PBEffects::WaterSport] }
|
||||
multipliers[:base_damage_multiplier] /= 3
|
||||
multipliers[:power_multiplier] /= 3
|
||||
end
|
||||
if @battle.field.effects[PBEffects::WaterSportField] > 0
|
||||
multipliers[:base_damage_multiplier] /= 3
|
||||
multipliers[:power_multiplier] /= 3
|
||||
end
|
||||
end
|
||||
# Terrain moves
|
||||
terrain_multiplier = (Settings::MECHANICS_GENERATION >= 8) ? 1.3 : 1.5
|
||||
case @battle.field.terrain
|
||||
when :Electric
|
||||
multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :ELECTRIC && user.affectedByTerrain?
|
||||
multipliers[:power_multiplier] *= terrain_multiplier if type == :ELECTRIC && user.affectedByTerrain?
|
||||
when :Grassy
|
||||
multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :GRASS && user.affectedByTerrain?
|
||||
multipliers[:power_multiplier] *= terrain_multiplier if type == :GRASS && user.affectedByTerrain?
|
||||
when :Psychic
|
||||
multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :PSYCHIC && user.affectedByTerrain?
|
||||
multipliers[:power_multiplier] *= terrain_multiplier if type == :PSYCHIC && user.affectedByTerrain?
|
||||
when :Misty
|
||||
multipliers[:base_damage_multiplier] /= 2 if type == :DRAGON && target.affectedByTerrain?
|
||||
multipliers[:power_multiplier] /= 2 if type == :DRAGON && target.affectedByTerrain?
|
||||
end
|
||||
# Badge multipliers
|
||||
if @battle.internalBattle
|
||||
@@ -476,7 +476,7 @@ class Battle::Move
|
||||
multipliers[:final_damage_multiplier] *= 2
|
||||
end
|
||||
# Move-specific base damage modifiers
|
||||
multipliers[:base_damage_multiplier] = pbBaseDamageMultiplier(multipliers[:base_damage_multiplier], user, target)
|
||||
multipliers[:power_multiplier] = pbBaseDamageMultiplier(multipliers[:power_multiplier], user, target)
|
||||
# Move-specific final damage modifiers
|
||||
multipliers[:final_damage_multiplier] = pbModifyDamage(multipliers[:final_damage_multiplier], user, target)
|
||||
end
|
||||
|
||||
@@ -27,7 +27,7 @@ class Battle::Move::Confusion < Battle::Move
|
||||
@id = :CONFUSEDAMAGE
|
||||
@name = ""
|
||||
@function = "None"
|
||||
@baseDamage = 40
|
||||
@power = 40
|
||||
@type = nil
|
||||
@category = 0
|
||||
@accuracy = 100
|
||||
@@ -56,7 +56,7 @@ class Battle::Move::Struggle < Battle::Move
|
||||
@id = (move) ? move.id : :STRUGGLE
|
||||
@name = (move) ? move.name : _INTL("Struggle")
|
||||
@function = "Struggle"
|
||||
@baseDamage = 50
|
||||
@power = 50
|
||||
@type = nil
|
||||
@category = 0
|
||||
@accuracy = 0
|
||||
|
||||
@@ -331,7 +331,7 @@ class Battle::Move::PowerHigherWithConsecutiveUse < Battle::Move
|
||||
oldVal = user.effects[PBEffects::FuryCutter]
|
||||
super
|
||||
maxMult = 1
|
||||
while (@baseDamage << (maxMult - 1)) < 160
|
||||
while (@power << (maxMult - 1)) < 160
|
||||
maxMult += 1 # 1-4 for base damage of 20, 1-3 for base damage of 40
|
||||
end
|
||||
user.effects[PBEffects::FuryCutter] = (oldVal >= maxMult) ? maxMult : oldVal + 1
|
||||
|
||||
@@ -185,24 +185,24 @@ module Battle::AbilityEffects
|
||||
|
||||
#=============================================================================
|
||||
|
||||
def self.triggerDamageCalcFromUser(ability, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromUser.trigger(ability, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromUser(ability, user, target, move, mults, power, type)
|
||||
DamageCalcFromUser.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerDamageCalcFromAlly(ability, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromAlly.trigger(ability, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromAlly(ability, user, target, move, mults, power, type)
|
||||
DamageCalcFromAlly.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerDamageCalcFromTarget(ability, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromTarget.trigger(ability, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromTarget(ability, user, target, move, mults, power, type)
|
||||
DamageCalcFromTarget.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerDamageCalcFromTargetNonIgnorable(ability, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromTargetNonIgnorable.trigger(ability, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromTargetNonIgnorable(ability, user, target, move, mults, power, type)
|
||||
DamageCalcFromTargetNonIgnorable.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerDamageCalcFromTargetAlly(ability, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromTargetAlly.trigger(ability, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromTargetAlly(ability, user, target, move, mults, power, type)
|
||||
DamageCalcFromTargetAlly.trigger(ability, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromUser(ability, user, target, crit_stage)
|
||||
@@ -1195,15 +1195,15 @@ Battle::AbilityEffects::AccuracyCalcFromTarget.add(:WONDERSKIN,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:AERILATE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if move.powerBoost
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if move.powerBoost
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.copy(:AERILATE, :PIXILATE, :REFRIGERATE, :GALVANIZE, :NORMALIZE)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:ANALYTIC,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
# NOTE: In the official games, if another battler faints earlier in the
|
||||
# round but it would have moved after the user, then Analytic does not
|
||||
# power up the move. However, this makes the determination so much
|
||||
@@ -1213,13 +1213,13 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:ANALYTIC,
|
||||
# "power up the move if all other battlers on the field right now have
|
||||
# already moved".
|
||||
if move.pbMoveFailedLastInRound?(user, false)
|
||||
mults[:base_damage_multiplier] *= 1.3
|
||||
mults[:power_multiplier] *= 1.3
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:BLAZE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.hp <= user.totalhp / 3 && type == :FIRE
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1227,25 +1227,25 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:BLAZE,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:DEFEATIST,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] /= 2 if user.hp <= user.totalhp / 2
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:DRAGONSMAW,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.5 if type == :DRAGON
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:FLAREBOOST,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.5 if user.burned? && move.specialMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.5 if user.burned? && move.specialMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:FLASHFIRE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.effects[PBEffects::FlashFire] && type == :FIRE
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1253,7 +1253,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:FLASHFIRE,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:FLOWERGIFT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if move.physicalMove? && [:Sun, :HarshSun].include?(user.effectiveWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1261,13 +1261,13 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:FLOWERGIFT,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:GORILLATACTICS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.5 if move.physicalMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:GUTS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.pbHasAnyStatus? && move.physicalMove?
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1275,7 +1275,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:GUTS,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:HUGEPOWER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 2 if move.physicalMove?
|
||||
}
|
||||
)
|
||||
@@ -1283,25 +1283,25 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:HUGEPOWER,
|
||||
Battle::AbilityEffects::DamageCalcFromUser.copy(:HUGEPOWER, :PUREPOWER)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:HUSTLE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.5 if move.physicalMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:IRONFIST,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if move.punchingMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if move.punchingMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:MEGALAUNCHER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.5 if move.pulseMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.5 if move.pulseMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:MINUS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
next if !move.specialMove?
|
||||
if user.allAllies.any? { |b| b.hasActiveAbility?([:MINUS, :PLUS]) }
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
@@ -1312,7 +1312,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:MINUS,
|
||||
Battle::AbilityEffects::DamageCalcFromUser.copy(:MINUS, :PLUS)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:NEUROFORCE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if Effectiveness.super_effective?(target.damageState.typeMod)
|
||||
mults[:final_damage_multiplier] *= 1.25
|
||||
end
|
||||
@@ -1320,7 +1320,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:NEUROFORCE,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:OVERGROW,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.hp <= user.totalhp / 3 && type == :GRASS
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1328,52 +1328,52 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:OVERGROW,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:PUNKROCK,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.3 if move.soundMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:RECKLESS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if move.recoilMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if move.recoilMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:RIVALRY,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.gender != 2 && target.gender != 2
|
||||
if user.gender == target.gender
|
||||
mults[:base_damage_multiplier] *= 1.25
|
||||
mults[:power_multiplier] *= 1.25
|
||||
else
|
||||
mults[:base_damage_multiplier] *= 0.75
|
||||
mults[:power_multiplier] *= 0.75
|
||||
end
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SANDFORCE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.effectiveWeather == :Sandstorm &&
|
||||
[:ROCK, :GROUND, :STEEL].include?(type)
|
||||
mults[:base_damage_multiplier] *= 1.3
|
||||
mults[:power_multiplier] *= 1.3
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SHEERFORCE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.3 if move.addlEffect > 0
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.3 if move.addlEffect > 0
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SLOWSTART,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] /= 2 if user.effects[PBEffects::SlowStart] > 0 && move.physicalMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SOLARPOWER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(user.effectiveWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1381,37 +1381,37 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:SOLARPOWER,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SNIPER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 1.5 if target.damageState.critical
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:STAKEOUT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 2 if target.battle.choices[target.index][0] == :SwitchOut
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:STEELWORKER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.5 if type == :STEEL
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:STEELYSPIRIT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 1.5 if type == :STEEL
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:STRONGJAW,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.5 if move.bitingMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.5 if move.bitingMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:SWARM,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.hp <= user.totalhp / 3 && type == :BUG
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1419,22 +1419,22 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:SWARM,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TECHNICIAN,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.index != target.index && move && move.id != :STRUGGLE &&
|
||||
baseDmg * mults[:base_damage_multiplier] <= 60
|
||||
mults[:base_damage_multiplier] *= 1.5
|
||||
power * mults[:power_multiplier] <= 60
|
||||
mults[:power_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TINTEDLENS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 2 if Effectiveness.resistant?(target.damageState.typeMod)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TORRENT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.hp <= user.totalhp / 3 && type == :WATER
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1442,27 +1442,27 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:TORRENT,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TOUGHCLAWS,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 4 / 3.0 if move.contactMove?
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 4 / 3.0 if move.contactMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TOXICBOOST,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if user.poisoned? && move.physicalMove?
|
||||
mults[:base_damage_multiplier] *= 1.5
|
||||
mults[:power_multiplier] *= 1.5
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:TRANSISTOR,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 1.5 if type == :ELECTRIC
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromUser.add(:WATERBUBBLE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 2 if type == :WATER
|
||||
}
|
||||
)
|
||||
@@ -1472,14 +1472,14 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:WATERBUBBLE,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromAlly.add(:BATTERY,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
next if !move.specialMove?
|
||||
mults[:final_damage_multiplier] *= 1.3
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromAlly.add(:FLOWERGIFT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if move.physicalMove? && [:Sun, :HarshSun].include?(user.effectiveWeather)
|
||||
mults[:attack_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1487,13 +1487,13 @@ Battle::AbilityEffects::DamageCalcFromAlly.add(:FLOWERGIFT,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromAlly.add(:POWERSPOT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 1.3
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromAlly.add(:STEELYSPIRIT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 1.5 if type == :STEEL
|
||||
}
|
||||
)
|
||||
@@ -1503,13 +1503,13 @@ Battle::AbilityEffects::DamageCalcFromAlly.add(:STEELYSPIRIT,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:DRYSKIN,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.25 if type == :FIRE
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.25 if type == :FIRE
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:FILTER,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if Effectiveness.super_effective?(target.damageState.typeMod)
|
||||
mults[:final_damage_multiplier] *= 0.75
|
||||
end
|
||||
@@ -1519,7 +1519,7 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:FILTER,
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.copy(:FILTER, :SOLIDROCK)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:FLOWERGIFT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(target.effectiveWeather)
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1527,39 +1527,39 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:FLOWERGIFT,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:FLUFFY,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 2 if move.calcType == :FIRE
|
||||
mults[:final_damage_multiplier] /= 2 if move.pbContactMove?(user)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:FURCOAT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:defense_multiplier] *= 2 if move.physicalMove? ||
|
||||
move.function == "UseTargetDefenseInsteadOfTargetSpDef" # Psyshock
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:GRASSPELT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:defense_multiplier] *= 1.5 if user.battle.field.terrain == :Grassy
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:HEATPROOF,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] /= 2 if type == :FIRE
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] /= 2 if type == :FIRE
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:ICESCALES,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] /= 2 if move.specialMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:MARVELSCALE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if target.pbHasAnyStatus? && move.physicalMove?
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1567,25 +1567,25 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:MARVELSCALE,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:MULTISCALE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] /= 2 if target.hp == target.totalhp
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:PUNKROCK,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] /= 2 if move.soundMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:THICKFAT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] /= 2 if [:FIRE, :ICE].include?(type)
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] /= 2 if [:FIRE, :ICE].include?(type)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTarget.add(:WATERBUBBLE,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] /= 2 if type == :FIRE
|
||||
}
|
||||
)
|
||||
@@ -1595,7 +1595,7 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:WATERBUBBLE,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:PRISMARMOR,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if Effectiveness.super_effective?(target.damageState.typeMod)
|
||||
mults[:final_damage_multiplier] *= 0.75
|
||||
end
|
||||
@@ -1603,7 +1603,7 @@ Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:PRISMARMOR,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:SHADOWSHIELD,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] /= 2 if target.hp == target.totalhp
|
||||
}
|
||||
)
|
||||
@@ -1613,7 +1613,7 @@ Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:SHADOWSHIELD,
|
||||
#===============================================================================
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FLOWERGIFT,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
if move.specialMove? && [:Sun, :HarshSun].include?(target.effectiveWeather)
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1621,7 +1621,7 @@ Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FLOWERGIFT,
|
||||
)
|
||||
|
||||
Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FRIENDGUARD,
|
||||
proc { |ability, user, target, move, mults, baseDmg, type|
|
||||
proc { |ability, user, target, move, mults, power, type|
|
||||
mults[:final_damage_multiplier] *= 0.75
|
||||
}
|
||||
)
|
||||
@@ -2739,7 +2739,7 @@ Battle::AbilityEffects::OnSwitchIn.add(:FOREWARN,
|
||||
forewarnMoves = []
|
||||
battle.allOtherSideBattlers(battler.index).each do |b|
|
||||
b.eachMove do |m|
|
||||
power = m.baseDamage
|
||||
power = m.power
|
||||
power = 160 if ["OHKO", "OHKOIce", "OHKOHitsUndergroundTarget"].include?(m.function)
|
||||
power = 150 if ["PowerHigherWithUserHP"].include?(m.function) # Eruption
|
||||
# Counter, Mirror Coat, Metal Burst
|
||||
|
||||
@@ -109,12 +109,12 @@ module Battle::ItemEffects
|
||||
|
||||
#=============================================================================
|
||||
|
||||
def self.triggerDamageCalcFromUser(item, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromUser.trigger(item, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromUser(item, user, target, move, mults, power, type)
|
||||
DamageCalcFromUser.trigger(item, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerDamageCalcFromTarget(item, user, target, move, mults, base_damage, type)
|
||||
DamageCalcFromTarget.trigger(item, user, target, move, mults, base_damage, type)
|
||||
def self.triggerDamageCalcFromTarget(item, user, target, move, mults, power, type)
|
||||
DamageCalcFromTarget.trigger(item, user, target, move, mults, power, type)
|
||||
end
|
||||
|
||||
def self.triggerCriticalCalcFromUser(item, user, target, crit_stage)
|
||||
@@ -724,63 +724,63 @@ Battle::ItemEffects::AccuracyCalcFromTarget.copy(:BRIGHTPOWDER, :LAXINCENSE)
|
||||
#===============================================================================
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:ADAMANTORB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if user.isSpecies?(:DIALGA) && [:DRAGON, :STEEL].include?(type)
|
||||
mults[:base_damage_multiplier] *= 1.2
|
||||
mults[:power_multiplier] *= 1.2
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:BLACKBELT,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :FIGHTING
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :FIGHTING
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:BLACKBELT, :FISTPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:BLACKGLASSES,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :DARK
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :DARK
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:BLACKGLASSES, :DREADPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:BUGGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:BUG, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:CHARCOAL,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :FIRE
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :FIRE
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:CHARCOAL, :FLAMEPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:CHOICEBAND,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.5 if move.physicalMove?
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.5 if move.physicalMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:CHOICESPECS,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.5 if move.specialMove?
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.5 if move.specialMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:DARKGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:DARK, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:DEEPSEATOOTH,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if user.isSpecies?(:CLAMPERL) && move.specialMove?
|
||||
mults[:attack_multiplier] *= 2
|
||||
end
|
||||
@@ -788,27 +788,27 @@ Battle::ItemEffects::DamageCalcFromUser.add(:DEEPSEATOOTH,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:DRAGONFANG,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :DRAGON
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :DRAGON
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:DRAGONFANG, :DRACOPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:DRAGONGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:DRAGON, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:ELECTRICGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:ELECTRIC, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:EXPERTBELT,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if Effectiveness.super_effective?(target.damageState.typeMod)
|
||||
mults[:final_damage_multiplier] *= 1.2
|
||||
end
|
||||
@@ -816,71 +816,71 @@ Battle::ItemEffects::DamageCalcFromUser.add(:EXPERTBELT,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:FAIRYGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:FAIRY, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:FIGHTINGGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:FIGHTING, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:FIREGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:FIRE, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:FLYINGGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:FLYING, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:GHOSTGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:GHOST, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:GRASSGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:GRASS, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:GRISEOUSORB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if user.isSpecies?(:GIRATINA) && [:DRAGON, :GHOST].include?(type)
|
||||
mults[:base_damage_multiplier] *= 1.2
|
||||
mults[:power_multiplier] *= 1.2
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:GROUNDGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:GROUND, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:HARDSTONE,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :ROCK
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :ROCK
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:HARDSTONE, :STONEPLATE, :ROCKINCENSE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:ICEGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:ICE, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:LIFEORB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if !move.is_a?(Battle::Move::Confusion)
|
||||
mults[:final_damage_multiplier] *= 1.3
|
||||
end
|
||||
@@ -888,142 +888,142 @@ Battle::ItemEffects::DamageCalcFromUser.add(:LIFEORB,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:LIGHTBALL,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:attack_multiplier] *= 2 if user.isSpecies?(:PIKACHU)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:LUSTROUSORB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if user.isSpecies?(:PALKIA) && [:DRAGON, :WATER].include?(type)
|
||||
mults[:base_damage_multiplier] *= 1.2
|
||||
mults[:power_multiplier] *= 1.2
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:MAGNET,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :ELECTRIC
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :ELECTRIC
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:MAGNET, :ZAPPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:METALCOAT,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :STEEL
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :STEEL
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:METALCOAT, :IRONPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:METRONOME,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
met = 1 + (0.2 * [user.effects[PBEffects::Metronome], 5].min)
|
||||
mults[:final_damage_multiplier] *= met
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:MIRACLESEED,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :GRASS
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :GRASS
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:MIRACLESEED, :MEADOWPLATE, :ROSEINCENSE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:MUSCLEBAND,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.1 if move.physicalMove?
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.1 if move.physicalMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:MYSTICWATER,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :WATER
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :WATER
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:MYSTICWATER, :SPLASHPLATE, :SEAINCENSE, :WAVEINCENSE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:NEVERMELTICE,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :ICE
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :ICE
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:NEVERMELTICE, :ICICLEPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:NORMALGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:NORMAL, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:PIXIEPLATE,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :FAIRY
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :FAIRY
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:POISONBARB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :POISON
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :POISON
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:POISONBARB, :TOXICPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:POISONGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:POISON, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:PSYCHICGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:PSYCHIC, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:ROCKGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:ROCK, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SHARPBEAK,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :FLYING
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :FLYING
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:SHARPBEAK, :SKYPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SILKSCARF,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :NORMAL
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :NORMAL
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SILVERPOWDER,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :BUG
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :BUG
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:SILVERPOWDER, :INSECTPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SOFTSAND,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :GROUND
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :GROUND
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:SOFTSAND, :EARTHPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SOULDEW,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
next if !user.isSpecies?(:LATIAS) && !user.isSpecies?(:LATIOS)
|
||||
if Settings::SOUL_DEW_POWERS_UP_TYPES
|
||||
mults[:final_damage_multiplier] *= 1.2 if [:DRAGON, :PSYCHIC].include?(type)
|
||||
@@ -1034,21 +1034,21 @@ Battle::ItemEffects::DamageCalcFromUser.add(:SOULDEW,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:SPELLTAG,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :GHOST
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :GHOST
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:SPELLTAG, :SPOOKYPLATE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:STEELGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:STEEL, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:THICKCLUB,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if (user.isSpecies?(:CUBONE) || user.isSpecies?(:MAROWAK)) && move.physicalMove?
|
||||
mults[:attack_multiplier] *= 2
|
||||
end
|
||||
@@ -1056,22 +1056,22 @@ Battle::ItemEffects::DamageCalcFromUser.add(:THICKCLUB,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:TWISTEDSPOON,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.2 if type == :PSYCHIC
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.2 if type == :PSYCHIC
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.copy(:TWISTEDSPOON, :MINDPLATE, :ODDINCENSE)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:WATERGEM,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
user.pbMoveTypePoweringUpGem(:WATER, move, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromUser.add(:WISEGLASSES,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
mults[:base_damage_multiplier] *= 1.1 if move.specialMove?
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:power_multiplier] *= 1.1 if move.specialMove?
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1083,49 +1083,49 @@ Battle::ItemEffects::DamageCalcFromUser.add(:WISEGLASSES,
|
||||
#===============================================================================
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:ASSAULTVEST,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
mults[:defense_multiplier] *= 1.5 if move.specialMove?
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:BABIRIBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:STEEL, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:CHARTIBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:ROCK, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:CHILANBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:NORMAL, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:CHOPLEBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:FIGHTING, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:COBABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:FLYING, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:COLBURBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:DARK, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:DEEPSEASCALE,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if target.isSpecies?(:CLAMPERL) && move.specialMove?
|
||||
mults[:defense_multiplier] *= 2
|
||||
end
|
||||
@@ -1133,7 +1133,7 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:DEEPSEASCALE,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:EVIOLITE,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
# NOTE: Eviolite cares about whether the Pokémon itself can evolve, which
|
||||
# means it also cares about the Pokémon's form. Some forms cannot
|
||||
# evolve even if the species generally can, and such forms are not
|
||||
@@ -1145,25 +1145,25 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:EVIOLITE,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:HABANBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:DRAGON, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:KASIBBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:GHOST, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:KEBIABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:POISON, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:METALPOWDER,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
if target.isSpecies?(:DITTO) && !target.effects[PBEffects::Transform]
|
||||
mults[:defense_multiplier] *= 1.5
|
||||
end
|
||||
@@ -1171,43 +1171,43 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:METALPOWDER,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:OCCABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:FIRE, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:PASSHOBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:WATER, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:PAYAPABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:PSYCHIC, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:RINDOBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:GRASS, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:ROSELIBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:FAIRY, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:SHUCABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:GROUND, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:SOULDEW,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
next if Settings::SOUL_DEW_POWERS_UP_TYPES
|
||||
next if !target.isSpecies?(:LATIAS) && !target.isSpecies?(:LATIOS)
|
||||
if move.specialMove? && !user.battle.rules["souldewclause"]
|
||||
@@ -1217,19 +1217,19 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:SOULDEW,
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:TANGABERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:BUG, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:WACANBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:ELECTRIC, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Battle::ItemEffects::DamageCalcFromTarget.add(:YACHEBERRY,
|
||||
proc { |item, user, target, move, mults, baseDmg, type|
|
||||
proc { |item, user, target, move, mults, power, type|
|
||||
target.pbMoveTypeWeakeningBerry(:ICE, type, mults)
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user