Coded some Gen 9 ability/item/move effects

This commit is contained in:
Maruno17
2024-06-15 15:58:31 +01:00
parent 454d5a216a
commit 22b33ca6c2
35 changed files with 596 additions and 234 deletions

View File

@@ -9,6 +9,8 @@ module Battle::ItemEffects
OnStatLoss = ItemHandlerHash.new
# Battler's status problem
StatusCure = ItemHandlerHash.new
# Battler's stat stages
StatLossImmunity = ItemHandlerHash.new
# Priority and turn order
PriorityBracketChange = ItemHandlerHash.new
PriorityBracketUse = ItemHandlerHash.new
@@ -83,6 +85,12 @@ module Battle::ItemEffects
#=============================================================================
def self.triggerStatLossImmunity(item, battler, stat, battle, show_messages)
return trigger(StatLossImmunity, item, battler, stat, battle, show_messages)
end
#=============================================================================
def self.triggerPriorityBracketChange(item, battler, battle)
return trigger(PriorityBracketChange, item, battler, battle, ret: 0)
end
@@ -627,6 +635,18 @@ Battle::ItemEffects::StatusCure.add(:RAWSTBERRY,
}
)
#===============================================================================
# StatLossImmunity handlers
#===============================================================================
Battle::ItemEffects::StatLossImmunity.add(:CLEARAMULET,
proc { |item, battler, stat, battle, showMessages|
battle.pbDisplay(_INTL("The effects of {1}'s {2} prevent its stats from being lowered!",
battler.pbThis, GameData::Item.get(item).name)) if showMessages
next true
}
)
#===============================================================================
# PriorityBracketChange handlers
#===============================================================================
@@ -730,6 +750,8 @@ Battle::ItemEffects::DamageCalcFromUser.add(:ADAMANTORB,
}
)
Battle::ItemEffects::DamageCalcFromUser.copy(:ADAMANTORB, :ADAMANTCRYSTAL)
Battle::ItemEffects::DamageCalcFromUser.add(:BLACKBELT,
proc { |item, user, target, move, mults, power, type|
mults[:power_multiplier] *= 1.2 if type == :FIGHTING
@@ -772,6 +794,14 @@ Battle::ItemEffects::DamageCalcFromUser.add(:CHOICESPECS,
}
)
Battle::ItemEffects::DamageCalcFromUser.add(:CORNERSTONEMASK,
proc { |item, user, target, move, mults, power, type|
mults[:power_multiplier] *= 1.2 if user.isSpecies?(:OGERPON)
}
)
Battle::ItemEffects::DamageCalcFromUser.copy(:CORNERSTONEMASK, :HEARTHFLAMEEMASK, :WELLSPRINGMASK)
Battle::ItemEffects::DamageCalcFromUser.add(:DARKGEM,
proc { |item, user, target, move, mults, power, type|
user.pbMoveTypePoweringUpGem(:DARK, move, type, mults)
@@ -858,6 +888,8 @@ Battle::ItemEffects::DamageCalcFromUser.add(:GRISEOUSORB,
}
)
Battle::ItemEffects::DamageCalcFromUser.copy(:GRISEOUSORB, :GRISEOUSCORE)
Battle::ItemEffects::DamageCalcFromUser.add(:GROUNDGEM,
proc { |item, user, target, move, mults, power, type|
user.pbMoveTypePoweringUpGem(:GROUND, move, type, mults)
@@ -900,6 +932,8 @@ Battle::ItemEffects::DamageCalcFromUser.add(:LUSTROUSORB,
}
)
Battle::ItemEffects::DamageCalcFromUser.copy(:LUSTROUSORB, :LUSTROUSGLOBE)
Battle::ItemEffects::DamageCalcFromUser.add(:MAGNET,
proc { |item, user, target, move, mults, power, type|
mults[:power_multiplier] *= 1.2 if type == :ELECTRIC
@@ -987,6 +1021,12 @@ Battle::ItemEffects::DamageCalcFromUser.add(:PSYCHICGEM,
}
)
Battle::ItemEffects::DamageCalcFromUser.add(:PUNCHINGGLOVE,
proc { |item, user, target, move, mults, power, type|
mults[:power_multiplier] *= 1.1 if move.punchingMove?
}
)
Battle::ItemEffects::DamageCalcFromUser.add(:ROCKGEM,
proc { |item, user, target, move, mults, power, type|
user.pbMoveTypePoweringUpGem(:ROCK, move, type, mults)
@@ -1551,7 +1591,7 @@ Battle::ItemEffects::AfterMoveUseFromTarget.add(:REDCARD,
battle.pbDisplay(_INTL("{1} held up its {2} against {3}!",
battler.pbThis, battler.itemName, user.pbThis(true)))
battler.pbConsumeItem
if user.hasActiveAbility?(:SUCTIONCUPS) && !battle.moldBreaker
if user.hasActiveAbility?(:SUCTIONCUPS) && !user.being_mold_broken?
battle.pbShowAbilitySplash(user)
if Battle::Scene::USE_ABILITY_SPLASH
battle.pbDisplay(_INTL("{1} anchors itself!", user.pbThis))