diff --git a/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb b/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb index d79509bc7..9c9cf37ef 100644 --- a/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb +++ b/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb @@ -3,7 +3,7 @@ class PokeBattle_Battle # Choosing to use an item #============================================================================= def pbCanUseItemOnPokemon?(item,pkmn,battler,scene,showMessages=true) - if pkmn.egg? + if !pkmn || pkmn.egg? scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages return false end @@ -101,18 +101,22 @@ class PokeBattle_Battle end # Uses an item on a Pokémon in battle that belongs to the trainer. - def pbUseItemOnBattler(item,idxBattler,userBattler) + def pbUseItemOnBattler(item,idxParty,userBattler) trainerName = pbGetOwnerName(userBattler.index) pbUseItemMessage(item,trainerName) - idxBattler = userBattler.index if idxBattler<0 - battler = @battlers[idxBattler] + battler = pbFindBattler(idxParty,userBattler.index) ch = @choices[userBattler.index] - if ItemHandlers.triggerCanUseInBattle(item,battler.pokemon,battler,ch[3],true,self,@scene,false) - ItemHandlers.triggerBattleUseOnBattler(item,battler,@scene) - ch[1] = 0 # Delete item from choice - return + if battler + if ItemHandlers.triggerCanUseInBattle(item,battler.pokemon,battler,ch[3],true,self,@scene,false) + ItemHandlers.triggerBattleUseOnBattler(item,battler,@scene) + ch[1] = 0 # Delete item from choice + return + else + pbDisplay(_INTL("But it had no effect!")) + end + else + pbDisplay(_INTL("But it's not where this item can be used!")) end - pbDisplay(_INTL("But it's not where this item can be used!")) # Return unused item to Bag pbReturnUnusedItemToBag(item,userBattler.index) end diff --git a/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb b/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb index ba83512d1..e7707f90b 100644 --- a/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb +++ b/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb @@ -8,7 +8,7 @@ class PokeBattle_AI return false if item==0 # Determine target of item (always the Pokémon choosing the action) useType = pbGetItemData(item,ITEM_BATTLE_USE) - if useType && (useType==1 || useType==6) # Use on Pokémon + if useType && [1, 2, 3, 6, 7, 8].include?(useType) # Use on Pokémon idxTarget = @battle.battlers[idxTarget].pokemonIndex # Party Pokémon end # Register use of item