More Gen 9 move effects

This commit is contained in:
Maruno17
2024-06-24 21:51:49 +01:00
parent 8e9417c3b7
commit ff2d8e5f55
21 changed files with 673 additions and 55 deletions

View File

@@ -63,8 +63,8 @@ class Battle::Move::HitTwoTimesTargetThenTargetAlly < Battle::Move
end
#===============================================================================
# Hits 3 times. Power is multiplied by the hit number. (Triple Kick)
# An accuracy check is performed for each hit.
# Hits 3 times. Power is multiplied by the hit number. An accuracy check is
# performed for each hit. (Triple Kick)
#===============================================================================
class Battle::Move::HitThreeTimesPowersUpWithEachHit < Battle::Move
def multiHitMove?; return true; end
@@ -95,6 +95,27 @@ class Battle::Move::HitThreeTimesAlwaysCriticalHit < Battle::Move
def pbCritialOverride(user, target); return 1; end
end
#===============================================================================
# Hits 10 times in a row. An accuracy check is performed for each hit.
# (Population Bomb)
#===============================================================================
class Battle::Move::HitThreeTimesAlwaysCriticalHit < Battle::Move
def multiHitMove?; return true; end
def pbNumHits(user, targets)
return 4 + @battle.pbRandom(7) if user.hasActiveItem?(:LOADEDDICE)
return 10
end
def successCheckPerHit?
return @accCheckPerHit
end
def pbOnStartUse(user, targets)
@accCheckPerHit = !user.hasActiveAbility?(:SKILLLINK) && !user.hasActiveItem?(:LOADEDDICE)
end
end
#===============================================================================
# Hits 2-5 times.
#===============================================================================
@@ -317,8 +338,8 @@ class Battle::Move::TwoTurnAttackRaiseUserSpAtkSpDefSpd2 < Battle::Move::TwoTurn
end
#===============================================================================
# Two turn attack. Ups user's Defense by 1 stage first turn, attacks second turn.
# (Skull Bash)
# Two turn attack. On the first turn, increases the user's Defense by 1 stage.
# On the second turn, does damage. (Skull Bash)
#===============================================================================
class Battle::Move::TwoTurnAttackChargeRaiseUserDefense1 < Battle::Move::TwoTurnMove
attr_reader :statUp
@@ -362,6 +383,29 @@ class Battle::Move::TwoTurnAttackChargeRaiseUserSpAtk1 < Battle::Move::TwoTurnMo
end
end
#===============================================================================
# Two turn attack. On the first turn, increases the user's Special Attack by 1
# stage. On the second turn, does damage. In rain, takes 1 turn instead.
# (Electro Shot)
#===============================================================================
class Battle::Move::TwoTurnAttackOneTurnInRainChargeRaiseUserSpAtk1 < Battle::Move::TwoTurnAttackChargeRaiseUserSpAtk1
def pbIsChargingTurn?(user)
ret = super
if !user.effects[PBEffects::TwoTurnAttack] &&
[:Rain, :HeavyRain].include?(user.effectiveWeather)
@powerHerb = false
@chargingTurn = true
@damagingTurn = true
return false
end
return ret
end
def pbChargingTurnMessage(user, targets)
@battle.pbDisplay(_INTL("{1} absorbed electricity!", user.pbThis))
end
end
#===============================================================================
# Two turn attack. Skips first turn, attacks second turn. (Dig)
# (Handled in Battler's pbSuccessCheckPerHit): Is semi-invulnerable during use.
@@ -488,9 +532,11 @@ class Battle::Move::TwoTurnAttackInvulnerableRemoveProtections < Battle::Move::T
def pbAttackingTurnEffect(user, target)
target.effects[PBEffects::BanefulBunker] = false
target.effects[PBEffects::BurningBulwark] = false
target.effects[PBEffects::KingsShield] = false
target.effects[PBEffects::Obstruct] = false
target.effects[PBEffects::Protect] = false
target.effects[PBEffects::SilkTrap] = false
target.effects[PBEffects::SpikyShield] = false
target.pbOwnSide.effects[PBEffects::CraftyShield] = false
target.pbOwnSide.effects[PBEffects::MatBlock] = false