Fixed incorrect reflection layering, fixed Metal Burst counting damage taken by a substitute, fixed Metal Burst not trying to target all battlers that hit it, fixed Mega Scizor's stats

This commit is contained in:
Maruno17
2024-05-16 19:18:35 +01:00
parent 209a1ff1b3
commit b86d5b5b57
8 changed files with 17 additions and 13 deletions

View File

@@ -382,6 +382,10 @@ class Battle::Move
target.effects[PBEffects::MirrorCoat] = damage
target.effects[PBEffects::MirrorCoatTarget] = user.index
end
if target.opposes?(user)
target.lastHPLostFromFoe = damage # For Metal Burst
target.lastFoeAttacker.push(user.pokemonIndex) # For Metal Burst
end
end
if target.effects[PBEffects::Bide] > 0
target.effects[PBEffects::BideDamage] += damage
@@ -392,10 +396,6 @@ class Battle::Move
target.tookMoveDamageThisRound = true if damage > 0 && !target.damageState.substitute # For Focus Punch
target.tookDamageThisRound = true if damage > 0 # For Assurance
target.lastAttacker.push(user.index) # For Revenge
if target.opposes?(user)
target.lastHPLostFromFoe = damage # For Metal Burst
target.lastFoeAttacker.push(user.index) # For Metal Burst
end
if $game_temp.party_direct_damage_taken &&
$game_temp.party_direct_damage_taken[target.pokemonIndex] &&
target.pbOwnedByPlayer?

View File

@@ -505,9 +505,12 @@ end
class Battle::Move::CounterDamagePlusHalf < Battle::Move::FixedDamageMove
def pbAddTarget(targets, user)
return if user.lastFoeAttacker.length == 0
lastAttacker = user.lastFoeAttacker.last
return if lastAttacker < 0 || !user.opposes?(lastAttacker)
user.pbAddTarget(targets, user, @battle.battlers[lastAttacker], self, false)
user.lastFoeAttacker.reverse_each do |party_index|
battler = @battle.pbFindBattler(party_index, user.index + 1)
next if !battler
user.pbAddTarget(targets, user, battler, self, false)
break
end
end
def pbMoveFailed?(user, targets)