mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-10 14:44:58 +00:00
Added class GameData::Target
This commit is contained in:
@@ -99,31 +99,31 @@ class PokeBattle_Battle
|
||||
@choices[idxBattler][3] = idxTarget # Set target of move
|
||||
end
|
||||
|
||||
# Returns whether the idxTarget will be targeted by a move with targetType
|
||||
# Returns whether the idxTarget will be targeted by a move with target_data
|
||||
# used by a battler in idxUser.
|
||||
def pbMoveCanTarget?(idxUser,idxTarget,targetType)
|
||||
return false if PBTargets.noTargets?(targetType)
|
||||
case targetType
|
||||
when PBTargets::NearAlly
|
||||
def pbMoveCanTarget?(idxUser,idxTarget,target_data)
|
||||
return false if target_data.num_targets == 0
|
||||
case target_data.id
|
||||
when :NearAlly
|
||||
return false if opposes?(idxUser,idxTarget)
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when PBTargets::UserOrNearAlly
|
||||
when :UserOrNearAlly
|
||||
return true if idxUser==idxTarget
|
||||
return false if opposes?(idxUser,idxTarget)
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when PBTargets::NearFoe, PBTargets::AllNearFoes, PBTargets::RandomNearFoe
|
||||
return false if !opposes?(idxUser,idxTarget)
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when PBTargets::Foe
|
||||
return false if !opposes?(idxUser,idxTarget)
|
||||
when PBTargets::NearOther, PBTargets::AllNearOthers
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when PBTargets::Other
|
||||
return false if idxUser==idxTarget
|
||||
when PBTargets::UserAndAllies
|
||||
when :UserAndAllies
|
||||
return false if opposes?(idxUser,idxTarget)
|
||||
when PBTargets::AllFoes
|
||||
when :NearFoe, :RandomNearFoe, :AllNearFoes
|
||||
return false if !opposes?(idxUser,idxTarget)
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when :Foe
|
||||
return false if !opposes?(idxUser,idxTarget)
|
||||
when :AllFoes
|
||||
return false if !opposes?(idxUser,idxTarget)
|
||||
when :NearOther, :AllNearOthers
|
||||
return false if !nearBattlers?(idxUser,idxTarget)
|
||||
when :Other
|
||||
return false if idxUser==idxTarget
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -90,8 +90,8 @@ class PokeBattle_Battle
|
||||
def pbAutoFightMenu(idxBattler); return false; end
|
||||
|
||||
def pbChooseTarget(battler,move)
|
||||
targetType = move.pbTarget(battler)
|
||||
idxTarget = @scene.pbChooseTarget(battler.index,targetType)
|
||||
target_data = move.pbTarget(battler)
|
||||
idxTarget = @scene.pbChooseTarget(battler.index,target_data)
|
||||
return false if idxTarget<0
|
||||
pbRegisterTarget(battler.index,idxTarget)
|
||||
return true
|
||||
|
||||
@@ -27,7 +27,7 @@ class PokeBattle_Battle
|
||||
next if b.fainted? || !b.opposes?(idxSwitcher) # Shouldn't hit an ally
|
||||
next if b.movedThisRound? || !pbChoseMoveFunctionCode?(b.index,"088") # Pursuit
|
||||
# Check whether Pursuit can be used
|
||||
next unless pbMoveCanTarget?(b.index,idxSwitcher,@choices[b.index][2].target)
|
||||
next unless pbMoveCanTarget?(b.index,idxSwitcher,@choices[b.index][2].pbTarget(b))
|
||||
next unless pbCanChooseMove?(b.index,@choices[b.index][1],false)
|
||||
next if b.status == :SLEEP || b.status == :FROZEN
|
||||
next if b.effects[PBEffects::SkyDrop]>=0
|
||||
|
||||
Reference in New Issue
Block a user