mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-08 21:54:58 +00:00
Fixed error in Powder's backfire message, fixed move disruption affecting recharge moves when it shouldn't, fixed error when Shell Side Arm has no targets, fixed AI not unregistering Mega Evolution if it won't do so after all
This commit is contained in:
@@ -345,16 +345,16 @@ Battle::AI::Handlers::ShouldSwitch.add(:yawning,
|
||||
end
|
||||
trapping = false
|
||||
ai.each_foe_battler(battler.side) do |b, i|
|
||||
next if b.ability_active? && Battle::AbilityEffects.triggerCertainSwitching(b.ability, b, battle)
|
||||
next if b.item_active? && Battle::ItemEffects.triggerCertainSwitching(b.item, b, battle)
|
||||
next if b.ability_active? && Battle::AbilityEffects.triggerCertainSwitching(b.ability, b.battler, battle)
|
||||
next if b.item_active? && Battle::ItemEffects.triggerCertainSwitching(b.item, b.battler, battle)
|
||||
next if Settings::MORE_TYPE_EFFECTS && b.has_type?(:GHOST)
|
||||
next if b.battler.trappedInBattle? # Relevant trapping effects are checked above
|
||||
if battler.ability_active?
|
||||
trapping = Battle::AbilityEffects.triggerTrappingByTarget(battler.ability, b, battler.battler, battle)
|
||||
trapping = Battle::AbilityEffects.triggerTrappingByTarget(battler.ability, b.battler, battler.battler, battle)
|
||||
break if trapping
|
||||
end
|
||||
if battler.item_active?
|
||||
trapping = Battle::ItemEffects.triggerTrappingByTarget(battler.item, b, battler.battler, battle)
|
||||
trapping = Battle::ItemEffects.triggerTrappingByTarget(battler.item, b.battler, battler.battler, battle)
|
||||
break if trapping
|
||||
end
|
||||
end
|
||||
@@ -390,16 +390,16 @@ Battle::AI::Handlers::ShouldSwitch.add(:asleep,
|
||||
end
|
||||
trapping = false
|
||||
ai.each_foe_battler(battler.side) do |b, i|
|
||||
next if b.ability_active? && Battle::AbilityEffects.triggerCertainSwitching(b.ability, b, battle)
|
||||
next if b.item_active? && Battle::ItemEffects.triggerCertainSwitching(b.item, b, battle)
|
||||
next if b.ability_active? && Battle::AbilityEffects.triggerCertainSwitching(b.ability, b.battler, battle)
|
||||
next if b.item_active? && Battle::ItemEffects.triggerCertainSwitching(b.item, b.battler, battle)
|
||||
next if Settings::MORE_TYPE_EFFECTS && b.has_type?(:GHOST)
|
||||
next if b.battler.trappedInBattle? # Relevant trapping effects are checked above
|
||||
if battler.ability_active?
|
||||
trapping = Battle::AbilityEffects.triggerTrappingByTarget(battler.ability, b, battler.battler, battle)
|
||||
trapping = Battle::AbilityEffects.triggerTrappingByTarget(battler.ability, b.battler, battler.battler, battle)
|
||||
break if trapping
|
||||
end
|
||||
if battler.item_active?
|
||||
trapping = Battle::ItemEffects.triggerTrappingByTarget(battler.item, b, battler.battler, battle)
|
||||
trapping = Battle::ItemEffects.triggerTrappingByTarget(battler.item, b.battler, battler.battler, battle)
|
||||
break if trapping
|
||||
end
|
||||
end
|
||||
|
||||
@@ -22,25 +22,7 @@ class Battle::AI
|
||||
# against it.
|
||||
def pbGetMoveScores
|
||||
choices = []
|
||||
|
||||
# TODO: Delete this after testing AI.
|
||||
if $tested_abilities && @user.ability_id
|
||||
$tested_abilities[@user.ability_id] ||= 0
|
||||
$tested_abilities[@user.ability_id] += 1
|
||||
end
|
||||
if $tested_items && @user.item_id
|
||||
$tested_items[@user.item_id] ||= 0
|
||||
$tested_items[@user.item_id] += 1
|
||||
end
|
||||
|
||||
@user.battler.eachMoveWithIndex do |orig_move, idxMove|
|
||||
|
||||
# TODO: Delete this after testing AI.
|
||||
if $tested_moves
|
||||
$tested_moves[orig_move.id] ||= 0
|
||||
$tested_moves[orig_move.id] += 1
|
||||
end
|
||||
|
||||
# Unchoosable moves aren't considered
|
||||
if !@battle.pbCanChooseMove?(@user.index, idxMove, false)
|
||||
if orig_move.pp == 0 && orig_move.total_pp > 0
|
||||
@@ -366,7 +348,10 @@ class Battle::AI
|
||||
end
|
||||
if badMoves
|
||||
PBDebug.log_ai("#{@user.name} wants to switch due to terrible moves")
|
||||
return if pbChooseToSwitchOut(true)
|
||||
if pbChooseToSwitchOut(true)
|
||||
@battle.pbUnregisterMegaEvolution(@user.index)
|
||||
return
|
||||
end
|
||||
PBDebug.log_ai("#{@user.name} won't switch after all")
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user