Added Eject Pack's effect

This commit is contained in:
Maruno17
2021-09-19 23:04:29 +01:00
parent 1fb3ff5408
commit d4abc6ef2b
18 changed files with 139 additions and 66 deletions

View File

@@ -316,8 +316,9 @@ class PokeBattle_Battle
# in.
def pbOnBattlerEnteringBattle(*battler_indices)
battler_indices.flatten!
pbPriority(true).each do |b|
eachBattler do |b|
b.droppedBelowHalfHP = false
b.statsDropped = false
end
# For each battler that entered battle, in speed order
pbPriority(true).each do |b|
@@ -355,10 +356,12 @@ class PokeBattle_Battle
# Check for triggering of Emergency Exit/Wimp Out/Eject Pack (only one will
# be triggered)
pbPriority(true).each do |b|
break if b.pbItemOnStatDropped
break if b.pbAbilitiesOnDamageTaken
end
pbPriority(true).each do |b|
eachBattler do |b|
b.droppedBelowHalfHP = false
b.statsDropped = false
end
end

View File

@@ -103,6 +103,7 @@ class PokeBattle_Battle
if ItemHandlers.triggerCanUseInBattle(item,battler.pokemon,battler,ch[3],true,self,@scene,false)
ItemHandlers.triggerBattleUseOnBattler(item,battler,@scene)
ch[1] = nil # Delete item from choice
battler.pbItemOnStatDropped
return
else
pbDisplay(_INTL("But it had no effect!"))

View File

@@ -52,6 +52,7 @@ class PokeBattle_Battle
battler.pbCureStatus
elsif battler.pbCanRaiseStatStage?(:ACCURACY,battler)
battler.pbRaiseStatStage(:ACCURACY,1,battler)
battler.pbItemOnStatDropped
else
pbDisplay(_INTL("But nothing happened!"))
end

View File

@@ -350,22 +350,26 @@ class PokeBattle_Battle
pbHideAbilitySplash(b)
end
elsif b.takesIndirectDamage?
b.droppedBelowHalfHP = false
dmg = (b.statusCount==0) ? b.totalhp/8 : b.totalhp*b.effects[PBEffects::Toxic]/16
b.pbContinueStatus { b.pbReduceHP(dmg,false) }
b.pbItemHPHealCheck
b.pbAbilitiesOnDamageTaken
b.pbFaint if b.fainted?
b.droppedBelowHalfHP = false
end
end
# Damage from burn
priority.each do |b|
next if b.status != :BURN || !b.takesIndirectDamage?
b.droppedBelowHalfHP = false
dmg = (Settings::MECHANICS_GENERATION >= 7) ? b.totalhp/16 : b.totalhp/8
dmg = (dmg/2.0).round if b.hasActiveAbility?(:HEATPROOF)
b.pbContinueStatus { b.pbReduceHP(dmg,false) }
b.pbItemHPHealCheck
b.pbAbilitiesOnDamageTaken
b.pbFaint if b.fainted?
b.droppedBelowHalfHP = false
end
# Damage from sleep (Nightmare)
priority.each do |b|
@@ -418,6 +422,7 @@ class PokeBattle_Battle
pbCommonAnimation("Octolock", b)
b.pbLowerStatStage(:DEFENSE, 1, nil) if b.pbCanLowerStatStage?(:DEFENSE)
b.pbLowerStatStage(:SPECIAL_DEFENSE, 1, nil) if b.pbCanLowerStatStage?(:SPECIAL_DEFENSE)
b.pbItemOnStatDropped
end
# Taunt
pbEORCountDownBattlerEffect(priority,PBEffects::Taunt) { |battler|
@@ -631,10 +636,11 @@ class PokeBattle_Battle
b.lastHPLost = 0
b.lastHPLostFromFoe = 0
b.droppedBelowHalfHP = false
b.statsDropped = false
b.tookDamageThisRound = false
b.tookPhysicalHit = false
b.statsRaised = false
b.statsLowered = false
b.statsRaisedThisRound = false
b.statsLoweredThisRound = false
b.canRestoreIceFace = false
b.lastRoundMoveFailed = b.lastMoveFailed
b.lastAttacker.clear