Added decent spacing to all scripts thanks to Rubocop

This commit is contained in:
Maruno17
2021-12-18 15:25:40 +00:00
parent f7b76ae62e
commit d17fc40a47
207 changed files with 18577 additions and 18587 deletions

View File

@@ -14,19 +14,19 @@ module ItemHandlers
BattleUseOnPokemon = ItemHandlerHash.new
def self.hasUseText(item)
return UseText[item]!=nil
return UseText[item] != nil
end
def self.hasOutHandler(item) # Shows "Use" option in Bag
return UseFromBag[item]!=nil || UseInField[item]!=nil || UseOnPokemon[item]!=nil
return UseFromBag[item] != nil || UseInField[item] != nil || UseOnPokemon[item] != nil
end
def self.hasUseInFieldHandler(item) # Shows "Register" option in Bag
return UseInField[item]!=nil
return UseInField[item] != nil
end
def self.hasUseOnPokemon(item)
return UseOnPokemon[item]!=nil
return UseOnPokemon[item] != nil
end
def self.hasUseOnPokemonMaximum(item)
@@ -34,15 +34,15 @@ module ItemHandlers
end
def self.hasUseInBattle(item)
return UseInBattle[item]!=nil
return UseInBattle[item] != nil
end
def self.hasBattleUseOnBattler(item)
return BattleUseOnBattler[item]!=nil
return BattleUseOnBattler[item] != nil
end
def self.hasBattleUseOnPokemon(item)
return BattleUseOnPokemon[item]!=nil
return BattleUseOnPokemon[item] != nil
end
# Returns text to display instead of "Use"
@@ -91,25 +91,25 @@ module ItemHandlers
return [UseOnPokemonMaximum.trigger(item, pkmn), 1].max
end
def self.triggerCanUseInBattle(item,pkmn,battler,move,firstAction,battle,scene,showMessages = true)
def self.triggerCanUseInBattle(item, pkmn, battler, move, firstAction, battle, scene, showMessages = true)
return true if !CanUseInBattle[item] # Can use the item by default
return CanUseInBattle.trigger(item,pkmn,battler,move,firstAction,battle,scene,showMessages)
return CanUseInBattle.trigger(item, pkmn, battler, move, firstAction, battle, scene, showMessages)
end
def self.triggerUseInBattle(item,battler,battle)
UseInBattle.trigger(item,battler,battle)
def self.triggerUseInBattle(item, battler, battle)
UseInBattle.trigger(item, battler, battle)
end
# Returns whether item was used
def self.triggerBattleUseOnBattler(item,battler,scene)
def self.triggerBattleUseOnBattler(item, battler, scene)
return false if !BattleUseOnBattler[item]
return BattleUseOnBattler.trigger(item,battler,scene)
return BattleUseOnBattler.trigger(item, battler, scene)
end
# Returns whether item was used
def self.triggerBattleUseOnPokemon(item,pkmn,battler,choices,scene)
def self.triggerBattleUseOnPokemon(item, pkmn, battler, choices, scene)
return false if !BattleUseOnPokemon[item]
return BattleUseOnPokemon.trigger(item,pkmn,battler,choices,scene)
return BattleUseOnPokemon.trigger(item, pkmn, battler, choices, scene)
end
end
@@ -239,7 +239,7 @@ def pbChangeExp(pkmn, new_exp, scene)
old_special_defense = pkmn.spdef
old_speed = pkmn.speed
if pkmn.exp > new_exp # Loses Exp
difference = pkmn.exp - new_exp
difference = pkmn.exp - new_exp
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference))
else
@@ -266,7 +266,7 @@ def pbChangeExp(pkmn, new_exp, scene)
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene)
else # Gains Exp
difference = new_exp - pkmn.exp
difference = new_exp - pkmn.exp
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference))
else
@@ -330,33 +330,33 @@ end
#===============================================================================
# Restore HP
#===============================================================================
def pbItemRestoreHP(pkmn,restoreHP)
newHP = pkmn.hp+restoreHP
newHP = pkmn.totalhp if newHP>pkmn.totalhp
hpGain = newHP-pkmn.hp
def pbItemRestoreHP(pkmn, restoreHP)
newHP = pkmn.hp + restoreHP
newHP = pkmn.totalhp if newHP > pkmn.totalhp
hpGain = newHP - pkmn.hp
pkmn.hp = newHP
return hpGain
end
def pbHPItem(pkmn,restoreHP,scene)
if !pkmn.able? || pkmn.hp==pkmn.totalhp
def pbHPItem(pkmn, restoreHP, scene)
if !pkmn.able? || pkmn.hp == pkmn.totalhp
scene.pbDisplay(_INTL("It won't have any effect."))
return false
end
hpGain = pbItemRestoreHP(pkmn,restoreHP)
hpGain = pbItemRestoreHP(pkmn, restoreHP)
scene.pbRefresh
scene.pbDisplay(_INTL("{1}'s HP was restored by {2} points.",pkmn.name,hpGain))
scene.pbDisplay(_INTL("{1}'s HP was restored by {2} points.", pkmn.name, hpGain))
return true
end
def pbBattleHPItem(pkmn,battler,restoreHP,scene)
def pbBattleHPItem(pkmn, battler, restoreHP, scene)
if battler
if battler.pbRecoverHP(restoreHP)>0
scene.pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
if battler.pbRecoverHP(restoreHP) > 0
scene.pbDisplay(_INTL("{1}'s HP was restored.", battler.pbThis))
end
else
if pbItemRestoreHP(pkmn,restoreHP)>0
scene.pbDisplay(_INTL("{1}'s HP was restored.",pkmn.name))
if pbItemRestoreHP(pkmn, restoreHP) > 0
scene.pbDisplay(_INTL("{1}'s HP was restored.", pkmn.name))
end
end
return true
@@ -365,18 +365,18 @@ end
#===============================================================================
# Restore PP
#===============================================================================
def pbRestorePP(pkmn,idxMove,pp)
def pbRestorePP(pkmn, idxMove, pp)
return 0 if !pkmn.moves[idxMove] || !pkmn.moves[idxMove].id
return 0 if pkmn.moves[idxMove].total_pp<=0
return 0 if pkmn.moves[idxMove].total_pp <= 0
oldpp = pkmn.moves[idxMove].pp
newpp = pkmn.moves[idxMove].pp+pp
newpp = pkmn.moves[idxMove].total_pp if newpp>pkmn.moves[idxMove].total_pp
newpp = pkmn.moves[idxMove].pp + pp
newpp = pkmn.moves[idxMove].total_pp if newpp > pkmn.moves[idxMove].total_pp
pkmn.moves[idxMove].pp = newpp
return newpp-oldpp
return newpp - oldpp
end
def pbBattleRestorePP(pkmn, battler, idxMove, pp)
return if pbRestorePP(pkmn,idxMove,pp) == 0
return if pbRestorePP(pkmn, idxMove, pp) == 0
if battler && !battler.effects[PBEffects::Transform] &&
battler.moves[idxMove] && battler.moves[idxMove].id == pkmn.moves[idxMove].id
battler.pbSetPP(battler.moves[idxMove], pkmn.moves[idxMove].pp)
@@ -464,8 +464,8 @@ def pbMaxUsesOfEVLoweringBerry(stat, pkmn)
end
def pbRaiseHappinessAndLowerEV(pkmn, scene, stat, qty, messages)
h = pkmn.happiness<255
e = pkmn.ev[stat]>0
h = pkmn.happiness < 255
e = pkmn.ev[stat] > 0
if !h && !e
scene.pbDisplay(_INTL("It won't have any effect."))
return false
@@ -475,11 +475,11 @@ def pbRaiseHappinessAndLowerEV(pkmn, scene, stat, qty, messages)
end
if e
pkmn.ev[stat] -= 10 * qty
pkmn.ev[stat] = 0 if pkmn.ev[stat]<0
pkmn.ev[stat] = 0 if pkmn.ev[stat] < 0
pkmn.calc_stats
end
scene.pbRefresh
scene.pbDisplay(messages[2-(h ? 0 : 2)-(e ? 0 : 1)])
scene.pbDisplay(messages[2 - (h ? 0 : 2) - (e ? 0 : 1)])
return true
end
@@ -505,16 +505,16 @@ end
#===============================================================================
# Battle items
#===============================================================================
def pbBattleItemCanCureStatus?(status,pkmn,scene,showMessages)
if !pkmn.able? || pkmn.status!=status
def pbBattleItemCanCureStatus?(status, pkmn, scene, showMessages)
if !pkmn.able? || pkmn.status != status
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
return false
end
return true
end
def pbBattleItemCanRaiseStat?(stat,battler,scene,showMessages)
if !battler || !battler.pbCanRaiseStatStage?(stat,battler)
def pbBattleItemCanRaiseStat?(stat, battler, scene, showMessages)
if !battler || !battler.pbCanRaiseStatStage?(stat, battler)
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
return false
end
@@ -558,17 +558,17 @@ def pbClosestHiddenItem
playerY = $game_player.y
for event in $game_map.events.values
next if !event.name[/hiddenitem/i]
next if (playerX-event.x).abs>=8
next if (playerY-event.y).abs>=6
next if $game_self_switches[[$game_map.map_id,event.id,"A"]]
next if (playerX - event.x).abs >= 8
next if (playerY - event.y).abs >= 6
next if $game_self_switches[[$game_map.map_id, event.id, "A"]]
result.push(event)
end
return nil if result.length==0
return nil if result.length == 0
ret = nil
retmin = 0
for event in result
dist = (playerX-event.x).abs+(playerY-event.y).abs
next if ret && retmin<=dist
dist = (playerX - event.x).abs + (playerY - event.y).abs
next if ret && retmin <= dist
ret = event
retmin = dist
end
@@ -605,10 +605,10 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block)
move_index = pbForgetMove(pkmn, move)
if move_index >= 0
old_move_name = pkmn.moves[move_index].name
oldmovepp = pkmn.moves[move_index].pp
oldmovepp = pkmn.moves[move_index].pp
pkmn.moves[move_index] = Pokemon::Move.new(move) # Replaces current/total PP
if by_machine && Settings::TAUGHT_MACHINES_KEEP_OLD_PP
pkmn.moves[move_index].pp = [oldmovepp,pkmn.moves[move_index].total_pp].min
pkmn.moves[move_index].pp = [oldmovepp, pkmn.moves[move_index].total_pp].min
end
pbMessage(_INTL("1, 2, and...\\wt[16] ...\\wt[16] ...\\wt[16] Ta-da!\\se[Battle ball drop]\1"), &block)
pbMessage(_INTL("{1} forgot how to use {2}.\\nAnd...\1", pkmn_name, old_move_name), &block)
@@ -626,12 +626,12 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block)
return false
end
def pbForgetMove(pkmn,moveToLearn)
def pbForgetMove(pkmn, moveToLearn)
ret = -1
pbFadeOutIn {
scene = PokemonSummary_Scene.new
screen = PokemonSummaryScreen.new(scene)
ret = screen.pbStartForgetScreen([pkmn],0,moveToLearn)
ret = screen.pbStartForgetScreen([pkmn], 0, moveToLearn)
}
return ret
end
@@ -640,7 +640,7 @@ end
# Use an item from the Bag and/or on a Pokémon
#===============================================================================
# @return [Integer] 0 = item wasn't used; 1 = item used; 2 = close Bag to use in field
def pbUseItem(bag,item,bagscene = nil)
def pbUseItem(bag, item, bagscene = nil)
itm = GameData::Item.get(item)
useType = itm.field_use
if itm.is_machine? # TM or TR or HM
@@ -651,15 +651,15 @@ def pbUseItem(bag,item,bagscene = nil)
machine = itm.move
return 0 if !machine
movename = GameData::Move.get(machine).name
pbMessage(_INTL("\\se[PC access]You booted up {1}.\1",itm.name))
if !pbConfirmMessage(_INTL("Do you want to teach {1} to a Pokémon?",movename))
pbMessage(_INTL("\\se[PC access]You booted up {1}.\1", itm.name))
if !pbConfirmMessage(_INTL("Do you want to teach {1} to a Pokémon?", movename))
return 0
elsif pbMoveTutorChoose(machine,nil,true,itm.is_TR?)
elsif pbMoveTutorChoose(machine, nil, true, itm.is_TR?)
bag.remove(item) if itm.consumed_after_use?
return 1
end
return 0
elsif useType==1 # Item is usable on a Pokémon
elsif useType == 1 # Item is usable on a Pokémon
if $player.pokemon_count == 0
pbMessage(_INTL("There is no Pokémon."))
return 0
@@ -675,12 +675,12 @@ def pbUseItem(bag,item,bagscene = nil)
end
pbFadeOutIn {
scene = PokemonParty_Scene.new
screen = PokemonPartyScreen.new(scene,$player.party)
screen.pbStartScene(_INTL("Use on which Pokémon?"),false,annot)
screen = PokemonPartyScreen.new(scene, $player.party)
screen.pbStartScene(_INTL("Use on which Pokémon?"), false, annot)
loop do
scene.pbSetHelpText(_INTL("Use on which Pokémon?"))
chosen = screen.pbChoosePokemon
if chosen<0
if chosen < 0
ret = false
break
end
@@ -709,7 +709,7 @@ def pbUseItem(bag,item,bagscene = nil)
bagscene.pbRefresh if bagscene
}
return (ret) ? 1 : 0
elsif useType==2 # Item is usable from Bag
elsif useType == 2 # Item is usable from Bag
intret = ItemHandlers.triggerUseFromBag(item)
if intret >= 0
bag.remove(item) if intret == 1 && itm.consumed_after_use?
@@ -724,7 +724,7 @@ end
# Only called when in the party screen and having chosen an item to be used on
# the selected Pokémon
def pbUseItemOnPokemon(item,pkmn,scene)
def pbUseItemOnPokemon(item, pkmn, scene)
itm = GameData::Item.get(item)
# TM or HM
if itm.is_machine?
@@ -734,11 +734,11 @@ def pbUseItemOnPokemon(item,pkmn,scene)
if pkmn.shadowPokemon?
pbMessage(_INTL("Shadow Pokémon can't be taught any moves.")) { scene.pbUpdate }
elsif !pkmn.compatible_with_move?(machine)
pbMessage(_INTL("{1} can't learn {2}.",pkmn.name,movename)) { scene.pbUpdate }
pbMessage(_INTL("{1} can't learn {2}.", pkmn.name, movename)) { scene.pbUpdate }
else
pbMessage(_INTL("\\se[PC access]You booted up {1}.\1",itm.name)) { scene.pbUpdate }
if pbConfirmMessage(_INTL("Do you want to teach {1} to {2}?",movename,pkmn.name)) { scene.pbUpdate }
if pbLearnMove(pkmn,machine,false,true) { scene.pbUpdate }
pbMessage(_INTL("\\se[PC access]You booted up {1}.\1", itm.name)) { scene.pbUpdate }
if pbConfirmMessage(_INTL("Do you want to teach {1} to {2}?", movename, pkmn.name)) { scene.pbUpdate }
if pbLearnMove(pkmn, machine, false, true) { scene.pbUpdate }
$bag.remove(item) if itm.consumed_after_use?
return true
end
@@ -762,7 +762,7 @@ def pbUseItemOnPokemon(item,pkmn,scene)
if ret && itm.consumed_after_use?
$bag.remove(item, qty)
if !$bag.has?(item)
pbMessage(_INTL("You used your last {1}.",itm.name)) { scene.pbUpdate }
pbMessage(_INTL("You used your last {1}.", itm.name)) { scene.pbUpdate }
end
end
return ret
@@ -770,7 +770,7 @@ end
def pbUseKeyItemInField(item)
ret = ItemHandlers.triggerUseInField(item)
if ret==-1 # Item effect not found
if ret == -1 # Item effect not found
pbMessage(_INTL("Can't use that here."))
elsif ret > 0 && GameData::Item.get(item).consumed_after_use?
$bag.remove(item)
@@ -781,36 +781,36 @@ end
def pbUseItemMessage(item)
itemname = GameData::Item.get(item).name
if itemname.starts_with_vowel?
pbMessage(_INTL("You used an {1}.",itemname))
pbMessage(_INTL("You used an {1}.", itemname))
else
pbMessage(_INTL("You used a {1}.",itemname))
pbMessage(_INTL("You used a {1}.", itemname))
end
end
def pbCheckUseOnPokemon(_item,pkmn,_screen)
def pbCheckUseOnPokemon(_item, pkmn, _screen)
return pkmn && !pkmn.egg?
end
#===============================================================================
# Give an item to a Pokémon to hold, and take a held item from a Pokémon
#===============================================================================
def pbGiveItemToPokemon(item,pkmn,scene,pkmnid = 0)
def pbGiveItemToPokemon(item, pkmn, scene, pkmnid = 0)
newitemname = GameData::Item.get(item).name
if pkmn.egg?
scene.pbDisplay(_INTL("Eggs can't hold items."))
return false
elsif pkmn.mail
scene.pbDisplay(_INTL("{1}'s mail must be removed before giving it an item.",pkmn.name))
return false if !pbTakeItemFromPokemon(pkmn,scene)
scene.pbDisplay(_INTL("{1}'s mail must be removed before giving it an item.", pkmn.name))
return false if !pbTakeItemFromPokemon(pkmn, scene)
end
if pkmn.hasItem?
olditemname = pkmn.item.name
if pkmn.hasItem?(:LEFTOVERS)
scene.pbDisplay(_INTL("{1} is already holding some {2}.\1",pkmn.name,olditemname))
scene.pbDisplay(_INTL("{1} is already holding some {2}.\1", pkmn.name, olditemname))
elsif newitemname.starts_with_vowel?
scene.pbDisplay(_INTL("{1} is already holding an {2}.\1",pkmn.name,olditemname))
scene.pbDisplay(_INTL("{1} is already holding an {2}.\1", pkmn.name, olditemname))
else
scene.pbDisplay(_INTL("{1} is already holding a {2}.\1",pkmn.name,olditemname))
scene.pbDisplay(_INTL("{1} is already holding a {2}.\1", pkmn.name, olditemname))
end
if scene.pbConfirm(_INTL("Would you like to switch the two items?"))
$bag.remove(item)
@@ -821,9 +821,9 @@ def pbGiveItemToPokemon(item,pkmn,scene,pkmnid = 0)
scene.pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed."))
else
if GameData::Item.get(item).is_mail?
if pbWriteMail(item,pkmn,pkmnid,scene)
if pbWriteMail(item, pkmn, pkmnid, scene)
pkmn.item = item
scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.",olditemname,pkmn.name,newitemname))
scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.", olditemname, pkmn.name, newitemname))
return true
else
if !$bag.add(item)
@@ -832,26 +832,26 @@ def pbGiveItemToPokemon(item,pkmn,scene,pkmnid = 0)
end
else
pkmn.item = item
scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.",olditemname,pkmn.name,newitemname))
scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.", olditemname, pkmn.name, newitemname))
return true
end
end
end
else
if !GameData::Item.get(item).is_mail? || pbWriteMail(item,pkmn,pkmnid,scene)
if !GameData::Item.get(item).is_mail? || pbWriteMail(item, pkmn, pkmnid, scene)
$bag.remove(item)
pkmn.item = item
scene.pbDisplay(_INTL("{1} is now holding the {2}.",pkmn.name,newitemname))
scene.pbDisplay(_INTL("{1} is now holding the {2}.", pkmn.name, newitemname))
return true
end
end
return false
end
def pbTakeItemFromPokemon(pkmn,scene)
def pbTakeItemFromPokemon(pkmn, scene)
ret = false
if !pkmn.hasItem?
scene.pbDisplay(_INTL("{1} isn't holding anything.",pkmn.name))
scene.pbDisplay(_INTL("{1} isn't holding anything.", pkmn.name))
elsif !$bag.can_add?(pkmn.item)
scene.pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed."))
elsif pkmn.mail
@@ -865,14 +865,14 @@ def pbTakeItemFromPokemon(pkmn,scene)
end
elsif scene.pbConfirm(_INTL("If the mail is removed, its message will be lost. OK?"))
$bag.add(pkmn.item)
scene.pbDisplay(_INTL("Received the {1} from {2}.",pkmn.item.name,pkmn.name))
scene.pbDisplay(_INTL("Received the {1} from {2}.", pkmn.item.name, pkmn.name))
pkmn.item = nil
pkmn.mail = nil
ret = true
end
else
$bag.add(pkmn.item)
scene.pbDisplay(_INTL("Received the {1} from {2}.",pkmn.item.name,pkmn.name))
scene.pbDisplay(_INTL("Received the {1} from {2}.", pkmn.item.name, pkmn.name))
pkmn.item = nil
ret = true
end
@@ -934,7 +934,7 @@ def pbChooseItemFromList(message, variable, *args)
commands.push(_INTL("Cancel"))
itemid.push(nil)
ret = pbMessage(message, commands, -1)
if ret < 0 || ret >= commands.length-1
if ret < 0 || ret >= commands.length - 1
$game_variables[variable] = nil
return nil
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,15 @@
#===============================================================================
# CanUseInBattle handlers
#===============================================================================
ItemHandlers::CanUseInBattle.add(:GUARDSPEC,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.pbOwnSide.effects[PBEffects::Mist]>0
ItemHandlers::CanUseInBattle.add(:GUARDSPEC, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.pbOwnSide.effects[PBEffects::Mist] > 0
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:POKEDOLL,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:POKEDOLL, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battle.wildBattle?
if showMessages
scene.pbDisplay(_INTL("Oak's words echoed... There's a time and place for everything! But not now."))
@@ -23,10 +23,10 @@ ItemHandlers::CanUseInBattle.add(:POKEDOLL,proc { |item,pokemon,battler,move,fir
next true
})
ItemHandlers::CanUseInBattle.copy(:POKEDOLL,:FLUFFYTAIL,:POKETOY)
ItemHandlers::CanUseInBattle.copy(:POKEDOLL, :FLUFFYTAIL, :POKETOY)
ItemHandlers::CanUseInBattle.addIf(proc { |item| GameData::Item.get(item).is_poke_ball? }, # Poké Balls
proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if battle.pbPlayer.party_full? && $PokemonStorage.full?
scene.pbDisplay(_INTL("There is no room left in the PC!")) if showMessages
next false
@@ -46,8 +46,8 @@ ItemHandlers::CanUseInBattle.addIf(proc { |item| GameData::Item.get(item).is_pok
# than one unfainted opposing Pokémon. (Snag Balls can be thrown in
# this case, but only in trainer battles, and the trainer will deflect
# them if they are trying to catch a non-Shadow Pokémon.)
if battle.pbOpposingBattlerCount>1 && !(GameData::Item.get(item).is_snag_ball? && battle.trainerBattle?)
if battle.pbOpposingBattlerCount==2
if battle.pbOpposingBattlerCount > 1 && !(GameData::Item.get(item).is_snag_ball? && battle.trainerBattle?)
if battle.pbOpposingBattlerCount == 2
scene.pbDisplay(_INTL("It's no good! It's impossible to aim when there are two Pokémon!")) if showMessages
else
scene.pbDisplay(_INTL("It's no good! It's impossible to aim when there are more than one Pokémon!")) if showMessages
@@ -58,8 +58,8 @@ ItemHandlers::CanUseInBattle.addIf(proc { |item| GameData::Item.get(item).is_pok
}
)
ItemHandlers::CanUseInBattle.add(:POTION,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !pokemon.able? || pokemon.hp==pokemon.totalhp
ItemHandlers::CanUseInBattle.add(:POTION, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pokemon.able? || pokemon.hp == pokemon.totalhp
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
@@ -67,18 +67,18 @@ ItemHandlers::CanUseInBattle.add(:POTION,proc { |item,pokemon,battler,move,first
})
ItemHandlers::CanUseInBattle.copy(:POTION,
:SUPERPOTION,:HYPERPOTION,:MAXPOTION,:BERRYJUICE,:SWEETHEART,:FRESHWATER,
:SODAPOP,:LEMONADE,:MOOMOOMILK,:ORANBERRY,:SITRUSBERRY,:ENERGYPOWDER,
:SUPERPOTION, :HYPERPOTION, :MAXPOTION, :BERRYJUICE, :SWEETHEART, :FRESHWATER,
:SODAPOP, :LEMONADE, :MOOMOOMILK, :ORANBERRY, :SITRUSBERRY, :ENERGYPOWDER,
:ENERGYROOT)
ItemHandlers::CanUseInBattle.copy(:POTION,:RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::CanUseInBattle.copy(:POTION, :RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::CanUseInBattle.add(:AWAKENING,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:AWAKENING, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanCureStatus?(:SLEEP, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:AWAKENING,:CHESTOBERRY)
ItemHandlers::CanUseInBattle.copy(:AWAKENING, :CHESTOBERRY)
ItemHandlers::CanUseInBattle.add(:BLUEFLUTE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:BLUEFLUTE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if battler && battler.hasActiveAbility?(:SOUNDPROOF)
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
@@ -86,34 +86,34 @@ ItemHandlers::CanUseInBattle.add(:BLUEFLUTE,proc { |item,pokemon,battler,move,fi
next pbBattleItemCanCureStatus?(:SLEEP, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.add(:ANTIDOTE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:ANTIDOTE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanCureStatus?(:POISON, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:ANTIDOTE,:PECHABERRY)
ItemHandlers::CanUseInBattle.copy(:ANTIDOTE, :PECHABERRY)
ItemHandlers::CanUseInBattle.add(:BURNHEAL,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:BURNHEAL, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanCureStatus?(:BURN, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:BURNHEAL,:RAWSTBERRY)
ItemHandlers::CanUseInBattle.copy(:BURNHEAL, :RAWSTBERRY)
ItemHandlers::CanUseInBattle.add(:PARALYZEHEAL,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:PARALYZEHEAL, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanCureStatus?(:PARALYSIS, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:PARALYZEHEAL,:PARLYZHEAL,:CHERIBERRY)
ItemHandlers::CanUseInBattle.copy(:PARALYZEHEAL, :PARLYZHEAL, :CHERIBERRY)
ItemHandlers::CanUseInBattle.add(:ICEHEAL,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:ICEHEAL, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanCureStatus?(:FROZEN, pokemon, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:ICEHEAL,:ASPEARBERRY)
ItemHandlers::CanUseInBattle.copy(:ICEHEAL, :ASPEARBERRY)
ItemHandlers::CanUseInBattle.add(:FULLHEAL,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:FULLHEAL, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pokemon.able? ||
(pokemon.status == :NONE &&
(!battler || battler.effects[PBEffects::Confusion]==0))
(!battler || battler.effects[PBEffects::Confusion] == 0))
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
@@ -121,21 +121,21 @@ ItemHandlers::CanUseInBattle.add(:FULLHEAL,proc { |item,pokemon,battler,move,fir
})
ItemHandlers::CanUseInBattle.copy(:FULLHEAL,
:LAVACOOKIE,:OLDGATEAU,:CASTELIACONE,:LUMIOSEGALETTE,:SHALOURSABLE,
:BIGMALASADA,:PEWTERCRUNCHIES,:LUMBERRY,:HEALPOWDER)
ItemHandlers::CanUseInBattle.copy(:FULLHEAL,:RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
:LAVACOOKIE, :OLDGATEAU, :CASTELIACONE, :LUMIOSEGALETTE, :SHALOURSABLE,
:BIGMALASADA, :PEWTERCRUNCHIES, :LUMBERRY, :HEALPOWDER)
ItemHandlers::CanUseInBattle.copy(:FULLHEAL, :RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::CanUseInBattle.add(:FULLRESTORE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:FULLRESTORE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pokemon.able? ||
(pokemon.hp == pokemon.totalhp && pokemon.status == :NONE &&
(!battler || battler.effects[PBEffects::Confusion]==0))
(!battler || battler.effects[PBEffects::Confusion] == 0))
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:REVIVE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:REVIVE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if pokemon.able? || pokemon.egg?
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
@@ -145,27 +145,27 @@ ItemHandlers::CanUseInBattle.add(:REVIVE,proc { |item,pokemon,battler,move,first
ItemHandlers::CanUseInBattle.copy(:REVIVE, :MAXREVIVE, :REVIVALHERB, :MAXHONEY)
ItemHandlers::CanUseInBattle.add(:ETHER,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !pokemon.able? || move<0 ||
pokemon.moves[move].total_pp<=0 ||
pokemon.moves[move].pp==pokemon.moves[move].total_pp
ItemHandlers::CanUseInBattle.add(:ETHER, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pokemon.able? || move < 0 ||
pokemon.moves[move].total_pp <= 0 ||
pokemon.moves[move].pp == pokemon.moves[move].total_pp
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.copy(:ETHER,:MAXETHER,:LEPPABERRY)
ItemHandlers::CanUseInBattle.copy(:ETHER, :MAXETHER, :LEPPABERRY)
ItemHandlers::CanUseInBattle.add(:ELIXIR,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:ELIXIR, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pokemon.able?
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
canRestore = false
for m in pokemon.moves
next if m.id==0
next if m.total_pp<=0 || m.pp==m.total_pp
next if m.id == 0
next if m.total_pp <= 0 || m.pp == m.total_pp
canRestore = true
break
end
@@ -176,10 +176,10 @@ ItemHandlers::CanUseInBattle.add(:ELIXIR,proc { |item,pokemon,battler,move,first
next true
})
ItemHandlers::CanUseInBattle.copy(:ELIXIR,:MAXELIXIR)
ItemHandlers::CanUseInBattle.copy(:ELIXIR, :MAXELIXIR)
ItemHandlers::CanUseInBattle.add(:REDFLUTE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::Attract]<0 ||
ItemHandlers::CanUseInBattle.add(:REDFLUTE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::Attract] < 0 ||
battler.hasActiveAbility?(:SOUNDPROOF)
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
@@ -187,16 +187,16 @@ ItemHandlers::CanUseInBattle.add(:REDFLUTE,proc { |item,pokemon,battler,move,fir
next true
})
ItemHandlers::CanUseInBattle.add(:PERSIMBERRY,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::Confusion]==0
ItemHandlers::CanUseInBattle.add(:PERSIMBERRY, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::Confusion] == 0
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:YELLOWFLUTE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::Confusion]==0 ||
ItemHandlers::CanUseInBattle.add(:YELLOWFLUTE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::Confusion] == 0 ||
battler.hasActiveAbility?(:SOUNDPROOF)
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
@@ -204,43 +204,43 @@ ItemHandlers::CanUseInBattle.add(:YELLOWFLUTE,proc { |item,pokemon,battler,move,
next true
})
ItemHandlers::CanUseInBattle.add(:XATTACK,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:ATTACK,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XATTACK, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:ATTACK, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XATTACK,:XATTACK2,:XATTACK3,:XATTACK6)
ItemHandlers::CanUseInBattle.copy(:XATTACK, :XATTACK2, :XATTACK3, :XATTACK6)
ItemHandlers::CanUseInBattle.add(:XDEFENSE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:DEFENSE,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XDEFENSE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:DEFENSE, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XDEFENSE,
:XDEFENSE2,:XDEFENSE3,:XDEFENSE6,:XDEFEND,:XDEFEND2,:XDEFEND3,:XDEFEND6)
:XDEFENSE2, :XDEFENSE3, :XDEFENSE6, :XDEFEND, :XDEFEND2, :XDEFEND3, :XDEFEND6)
ItemHandlers::CanUseInBattle.add(:XSPATK,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:SPECIAL_ATTACK,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XSPATK, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:SPECIAL_ATTACK, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XSPATK,
:XSPATK2,:XSPATK3,:XSPATK6,:XSPECIAL,:XSPECIAL2,:XSPECIAL3,:XSPECIAL6)
:XSPATK2, :XSPATK3, :XSPATK6, :XSPECIAL, :XSPECIAL2, :XSPECIAL3, :XSPECIAL6)
ItemHandlers::CanUseInBattle.add(:XSPDEF,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:SPECIAL_DEFENSE,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XSPDEF, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:SPECIAL_DEFENSE, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XSPDEF,:XSPDEF2,:XSPDEF3,:XSPDEF6)
ItemHandlers::CanUseInBattle.copy(:XSPDEF, :XSPDEF2, :XSPDEF3, :XSPDEF6)
ItemHandlers::CanUseInBattle.add(:XSPEED,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:SPEED,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XSPEED, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:SPEED, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XSPEED,:XSPEED2,:XSPEED3,:XSPEED6)
ItemHandlers::CanUseInBattle.copy(:XSPEED, :XSPEED2, :XSPEED3, :XSPEED6)
ItemHandlers::CanUseInBattle.add(:XACCURACY,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
next pbBattleItemCanRaiseStat?(:ACCURACY,battler,scene,showMessages)
ItemHandlers::CanUseInBattle.add(:XACCURACY, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
next pbBattleItemCanRaiseStat?(:ACCURACY, battler, scene, showMessages)
})
ItemHandlers::CanUseInBattle.copy(:XACCURACY,:XACCURACY2,:XACCURACY3,:XACCURACY6)
ItemHandlers::CanUseInBattle.copy(:XACCURACY, :XACCURACY2, :XACCURACY3, :XACCURACY6)
ItemHandlers::CanUseInBattle.add(:MAXMUSHROOMS, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !pbBattleItemCanRaiseStat?(:ATTACK, battler, scene, false) &&
@@ -254,31 +254,31 @@ ItemHandlers::CanUseInBattle.add(:MAXMUSHROOMS, proc { |item, pokemon, battler,
next true
})
ItemHandlers::CanUseInBattle.add(:DIREHIT,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy]>=1
ItemHandlers::CanUseInBattle.add(:DIREHIT, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy] >= 1
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:DIREHIT2,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy]>=2
ItemHandlers::CanUseInBattle.add(:DIREHIT2, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy] >= 2
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:DIREHIT3,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy]>=3
ItemHandlers::CanUseInBattle.add(:DIREHIT3, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if !battler || battler.effects[PBEffects::FocusEnergy] >= 3
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
end
next true
})
ItemHandlers::CanUseInBattle.add(:POKEFLUTE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
ItemHandlers::CanUseInBattle.add(:POKEFLUTE, proc { |item, pokemon, battler, move, firstAction, battle, scene, showMessages|
if battle.allBattlers.none? { |b| b.status == :SLEEP && !b.hasActiveAbility?(:SOUNDPROOF) }
scene.pbDisplay(_INTL("It won't have any effect.")) if showMessages
next false
@@ -290,20 +290,20 @@ ItemHandlers::CanUseInBattle.add(:POKEFLUTE,proc { |item,pokemon,battler,move,fi
# UseInBattle handlers
# For items used directly or on an opposing battler
#===============================================================================
ItemHandlers::UseInBattle.add(:GUARDSPEC,proc { |item,battler,battle|
ItemHandlers::UseInBattle.add(:GUARDSPEC, proc { |item, battler, battle|
battler.pbOwnSide.effects[PBEffects::Mist] = 5
battle.pbDisplay(_INTL("{1} became shrouded in mist!",battler.pbTeam))
battle.pbDisplay(_INTL("{1} became shrouded in mist!", battler.pbTeam))
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::UseInBattle.add(:POKEDOLL,proc { |item,battler,battle|
ItemHandlers::UseInBattle.add(:POKEDOLL, proc { |item, battler, battle|
battle.decision = 3
battle.pbDisplayPaused(_INTL("You got away safely!"))
})
ItemHandlers::UseInBattle.copy(:POKEDOLL,:FLUFFYTAIL,:POKETOY)
ItemHandlers::UseInBattle.copy(:POKEDOLL, :FLUFFYTAIL, :POKETOY)
ItemHandlers::UseInBattle.add(:POKEFLUTE,proc { |item,battler,battle|
ItemHandlers::UseInBattle.add(:POKEFLUTE, proc { |item, battler, battle|
battle.allBattlers.each do |b|
b.pbCureStatus(false) if b.status == :SLEEP && !b.hasActiveAbility?(:SOUNDPROOF)
end
@@ -311,8 +311,8 @@ ItemHandlers::UseInBattle.add(:POKEFLUTE,proc { |item,battler,battle|
})
ItemHandlers::UseInBattle.addIf(proc { |item| GameData::Item.get(item).is_poke_ball? }, # Poké Balls
proc { |item,battler,battle|
battle.pbThrowPokeBall(battler.index,item)
proc { |item, battler, battle|
battle.pbThrowPokeBall(battler.index, item)
}
)
@@ -320,197 +320,197 @@ ItemHandlers::UseInBattle.addIf(proc { |item| GameData::Item.get(item).is_poke_b
# BattleUseOnPokemon handlers
# For items used on Pokémon or on a Pokémon's move
#===============================================================================
ItemHandlers::BattleUseOnPokemon.add(:POTION,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,20,scene)
ItemHandlers::BattleUseOnPokemon.add(:POTION, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, 20, scene)
})
ItemHandlers::BattleUseOnPokemon.copy(:POTION,:BERRYJUICE,:SWEETHEART)
ItemHandlers::BattleUseOnPokemon.copy(:POTION,:RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::BattleUseOnPokemon.copy(:POTION, :BERRYJUICE, :SWEETHEART)
ItemHandlers::BattleUseOnPokemon.copy(:POTION, :RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::BattleUseOnPokemon.add(:SUPERPOTION,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:SUPERPOTION, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:HYPERPOTION,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:HYPERPOTION, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:MAXPOTION,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,pokemon.totalhp-pokemon.hp,scene)
ItemHandlers::BattleUseOnPokemon.add(:MAXPOTION, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, pokemon.totalhp - pokemon.hp, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:FRESHWATER,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:FRESHWATER, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 30 : 50, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:SODAPOP,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:SODAPOP, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 50 : 60, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:LEMONADE,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:LEMONADE, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 70 : 80, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:MOOMOOMILK,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,100,scene)
ItemHandlers::BattleUseOnPokemon.add(:MOOMOOMILK, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, 100, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:ORANBERRY,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,10,scene)
ItemHandlers::BattleUseOnPokemon.add(:ORANBERRY, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, 10, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:SITRUSBERRY,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,pokemon.totalhp/4,scene)
ItemHandlers::BattleUseOnPokemon.add(:SITRUSBERRY, proc { |item, pokemon, battler, choices, scene|
pbBattleHPItem(pokemon, battler, pokemon.totalhp / 4, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:AWAKENING,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:AWAKENING, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} woke up.",name))
scene.pbDisplay(_INTL("{1} woke up.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:AWAKENING,:CHESTOBERRY,:BLUEFLUTE)
ItemHandlers::BattleUseOnPokemon.copy(:AWAKENING, :CHESTOBERRY, :BLUEFLUTE)
ItemHandlers::BattleUseOnPokemon.add(:ANTIDOTE,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ANTIDOTE, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} was cured of its poisoning.",name))
scene.pbDisplay(_INTL("{1} was cured of its poisoning.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:ANTIDOTE,:PECHABERRY)
ItemHandlers::BattleUseOnPokemon.copy(:ANTIDOTE, :PECHABERRY)
ItemHandlers::BattleUseOnPokemon.add(:BURNHEAL,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:BURNHEAL, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1}'s burn was healed.",name))
scene.pbDisplay(_INTL("{1}'s burn was healed.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:BURNHEAL,:RAWSTBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:BURNHEAL, :RAWSTBERRY)
ItemHandlers::BattleUseOnPokemon.add(:PARALYZEHEAL,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:PARALYZEHEAL, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} was cured of paralysis.",name))
scene.pbDisplay(_INTL("{1} was cured of paralysis.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:PARALYZEHEAL,:PARLYZHEAL,:CHERIBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:PARALYZEHEAL, :PARLYZHEAL, :CHERIBERRY)
ItemHandlers::BattleUseOnPokemon.add(:ICEHEAL,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ICEHEAL, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} was thawed out.",name))
scene.pbDisplay(_INTL("{1} was thawed out.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:ICEHEAL,:ASPEARBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:ICEHEAL, :ASPEARBERRY)
ItemHandlers::BattleUseOnPokemon.add(:FULLHEAL,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:FULLHEAL, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
battler.pbCureConfusion if battler
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} became healthy.",name))
scene.pbDisplay(_INTL("{1} became healthy.", name))
})
ItemHandlers::BattleUseOnPokemon.copy(:FULLHEAL,
:LAVACOOKIE,:OLDGATEAU,:CASTELIACONE,:LUMIOSEGALETTE,:SHALOURSABLE,
:BIGMALASADA,:PEWTERCRUNCHIES,:LUMBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:FULLHEAL,:RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
:LAVACOOKIE, :OLDGATEAU, :CASTELIACONE, :LUMIOSEGALETTE, :SHALOURSABLE,
:BIGMALASADA, :PEWTERCRUNCHIES, :LUMBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:FULLHEAL, :RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::BattleUseOnPokemon.add(:FULLRESTORE,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:FULLRESTORE, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
battler.pbCureConfusion if battler
name = (battler) ? battler.pbThis : pokemon.name
if pokemon.hp<pokemon.totalhp
pbBattleHPItem(pokemon,battler,pokemon.totalhp,scene)
if pokemon.hp < pokemon.totalhp
pbBattleHPItem(pokemon, battler, pokemon.totalhp, scene)
else
scene.pbRefresh
scene.pbDisplay(_INTL("{1} became healthy.",name))
scene.pbDisplay(_INTL("{1} became healthy.", name))
end
})
ItemHandlers::BattleUseOnPokemon.add(:REVIVE,proc { |item,pokemon,battler,choices,scene|
pokemon.hp = pokemon.totalhp/2
pokemon.hp = 1 if pokemon.hp<=0
ItemHandlers::BattleUseOnPokemon.add(:REVIVE, proc { |item, pokemon, battler, choices, scene|
pokemon.hp = pokemon.totalhp / 2
pokemon.hp = 1 if pokemon.hp <= 0
pokemon.heal_status
scene.pbRefresh
scene.pbDisplay(_INTL("{1} recovered from fainting!",pokemon.name))
scene.pbDisplay(_INTL("{1} recovered from fainting!", pokemon.name))
})
ItemHandlers::BattleUseOnPokemon.add(:MAXREVIVE,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:MAXREVIVE, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_HP
pokemon.heal_status
scene.pbRefresh
scene.pbDisplay(_INTL("{1} recovered from fainting!",pokemon.name))
scene.pbDisplay(_INTL("{1} recovered from fainting!", pokemon.name))
})
ItemHandlers::BattleUseOnPokemon.copy(:MAXREVIVE, :MAXHONEY)
ItemHandlers::BattleUseOnPokemon.add(:ENERGYPOWDER,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ENERGYPOWDER, proc { |item, pokemon, battler, choices, scene|
if pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
pokemon.changeHappiness("powder")
end
})
ItemHandlers::BattleUseOnPokemon.add(:ENERGYROOT,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ENERGYROOT, proc { |item, pokemon, battler, choices, scene|
if pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
pokemon.changeHappiness("energyroot")
end
})
ItemHandlers::BattleUseOnPokemon.add(:HEALPOWDER,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:HEALPOWDER, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_status
battler.pbCureStatus(false) if battler
battler.pbCureConfusion if battler
pokemon.changeHappiness("powder")
name = (battler) ? battler.pbThis : pokemon.name
scene.pbRefresh
scene.pbDisplay(_INTL("{1} became healthy.",name))
scene.pbDisplay(_INTL("{1} became healthy.", name))
})
ItemHandlers::BattleUseOnPokemon.add(:REVIVALHERB,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:REVIVALHERB, proc { |item, pokemon, battler, choices, scene|
pokemon.heal_HP
pokemon.heal_status
pokemon.changeHappiness("revivalherb")
scene.pbRefresh
scene.pbDisplay(_INTL("{1} recovered from fainting!",pokemon.name))
scene.pbDisplay(_INTL("{1} recovered from fainting!", pokemon.name))
})
ItemHandlers::BattleUseOnPokemon.add(:ETHER,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ETHER, proc { |item, pokemon, battler, choices, scene|
idxMove = choices[3]
pbBattleRestorePP(pokemon,battler,idxMove,10)
pbBattleRestorePP(pokemon, battler, idxMove, 10)
scene.pbDisplay(_INTL("PP was restored."))
})
ItemHandlers::BattleUseOnPokemon.copy(:ETHER,:LEPPABERRY)
ItemHandlers::BattleUseOnPokemon.copy(:ETHER, :LEPPABERRY)
ItemHandlers::BattleUseOnPokemon.add(:MAXETHER,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:MAXETHER, proc { |item, pokemon, battler, choices, scene|
idxMove = choices[3]
pbBattleRestorePP(pokemon,battler,idxMove,pokemon.moves[idxMove].total_pp)
pbBattleRestorePP(pokemon, battler, idxMove, pokemon.moves[idxMove].total_pp)
scene.pbDisplay(_INTL("PP was restored."))
})
ItemHandlers::BattleUseOnPokemon.add(:ELIXIR,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:ELIXIR, proc { |item, pokemon, battler, choices, scene|
for i in 0...pokemon.moves.length
pbBattleRestorePP(pokemon,battler,i,10)
pbBattleRestorePP(pokemon, battler, i, 10)
end
scene.pbDisplay(_INTL("PP was restored."))
})
ItemHandlers::BattleUseOnPokemon.add(:MAXELIXIR,proc { |item,pokemon,battler,choices,scene|
ItemHandlers::BattleUseOnPokemon.add(:MAXELIXIR, proc { |item, pokemon, battler, choices, scene|
for i in 0...pokemon.moves.length
pbBattleRestorePP(pokemon,battler,i,pokemon.moves[i].total_pp)
pbBattleRestorePP(pokemon, battler, i, pokemon.moves[i].total_pp)
end
scene.pbDisplay(_INTL("PP was restored."))
})
@@ -520,155 +520,155 @@ ItemHandlers::BattleUseOnPokemon.add(:MAXELIXIR,proc { |item,pokemon,battler,cho
# For items used on a Pokémon in battle
#===============================================================================
ItemHandlers::BattleUseOnBattler.add(:REDFLUTE,proc { |item,battler,scene|
ItemHandlers::BattleUseOnBattler.add(:REDFLUTE, proc { |item, battler, scene|
battler.pbCureAttract
scene.pbDisplay(_INTL("{1} got over its infatuation.",battler.pbThis))
scene.pbDisplay(_INTL("{1} got over its infatuation.", battler.pbThis))
})
ItemHandlers::BattleUseOnBattler.add(:YELLOWFLUTE,proc { |item,battler,scene|
ItemHandlers::BattleUseOnBattler.add(:YELLOWFLUTE, proc { |item, battler, scene|
battler.pbCureConfusion
scene.pbDisplay(_INTL("{1} snapped out of its confusion.",battler.pbThis))
scene.pbDisplay(_INTL("{1} snapped out of its confusion.", battler.pbThis))
})
ItemHandlers::BattleUseOnBattler.copy(:YELLOWFLUTE,:PERSIMBERRY)
ItemHandlers::BattleUseOnBattler.copy(:YELLOWFLUTE, :PERSIMBERRY)
ItemHandlers::BattleUseOnBattler.add(:XATTACK,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ATTACK,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XATTACK, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ATTACK, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XATTACK2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ATTACK,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XATTACK2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ATTACK, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XATTACK3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ATTACK,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XATTACK3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ATTACK, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XATTACK6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ATTACK,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XATTACK6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ATTACK, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE,proc { |item,battler,scene|
battler.pbRaiseStatStage(:DEFENSE,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE, proc { |item, battler, scene|
battler.pbRaiseStatStage(:DEFENSE, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE,:XDEFEND)
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE, :XDEFEND)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:DEFENSE,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:DEFENSE, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE2,:XDEFEND2)
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE2, :XDEFEND2)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:DEFENSE,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:DEFENSE, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE3,:XDEFEND3)
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE3, :XDEFEND3)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:DEFENSE,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XDEFENSE6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:DEFENSE, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE6,:XDEFEND6)
ItemHandlers::BattleUseOnBattler.copy(:XDEFENSE6, :XDEFEND6)
ItemHandlers::BattleUseOnBattler.add(:XSPATK,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPATK, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XSPATK,:XSPECIAL)
ItemHandlers::BattleUseOnBattler.copy(:XSPATK, :XSPECIAL)
ItemHandlers::BattleUseOnBattler.add(:XSPATK2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPATK2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XSPATK2,:XSPECIAL2)
ItemHandlers::BattleUseOnBattler.copy(:XSPATK2, :XSPECIAL2)
ItemHandlers::BattleUseOnBattler.add(:XSPATK3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPATK3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XSPATK3,:XSPECIAL3)
ItemHandlers::BattleUseOnBattler.copy(:XSPATK3, :XSPECIAL3)
ItemHandlers::BattleUseOnBattler.add(:XSPATK6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPATK6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_ATTACK, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.copy(:XSPATK6,:XSPECIAL6)
ItemHandlers::BattleUseOnBattler.copy(:XSPATK6, :XSPECIAL6)
ItemHandlers::BattleUseOnBattler.add(:XSPDEF,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPDEF, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPDEF2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPDEF2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPDEF3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPDEF3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPDEF6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPDEF6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPECIAL_DEFENSE, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPEED,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPEED,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPEED, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPEED, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPEED2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPEED,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPEED2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPEED, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPEED3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPEED,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPEED3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPEED, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XSPEED6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:SPEED,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XSPEED6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:SPEED, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XACCURACY,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ACCURACY,(Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1,battler)
ItemHandlers::BattleUseOnBattler.add(:XACCURACY, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ACCURACY, (Settings::X_STAT_ITEMS_RAISE_BY_TWO_STAGES) ? 2 : 1, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XACCURACY2,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ACCURACY,2,battler)
ItemHandlers::BattleUseOnBattler.add(:XACCURACY2, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ACCURACY, 2, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XACCURACY3,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ACCURACY,3,battler)
ItemHandlers::BattleUseOnBattler.add(:XACCURACY3, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ACCURACY, 3, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:XACCURACY6,proc { |item,battler,scene|
battler.pbRaiseStatStage(:ACCURACY,6,battler)
ItemHandlers::BattleUseOnBattler.add(:XACCURACY6, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ACCURACY, 6, battler)
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:MAXMUSHROOMS,proc { |item, battler, scene|
ItemHandlers::BattleUseOnBattler.add(:MAXMUSHROOMS, proc { |item, battler, scene|
battler.pbRaiseStatStage(:ATTACK, 1, battler) if battler.pbCanRaiseStatStage?(:ATTACK, battler)
battler.pbRaiseStatStage(:DEFENSE, 1, battler) if battler.pbCanRaiseStatStage?(:DEFENSE, battler)
battler.pbRaiseStatStage(:SPECIAL_ATTACK, 1, battler) if battler.pbCanRaiseStatStage?(:SPECIAL_ATTACK, battler)
@@ -677,20 +677,20 @@ ItemHandlers::BattleUseOnBattler.add(:MAXMUSHROOMS,proc { |item, battler, scene|
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:DIREHIT,proc { |item,battler,scene|
ItemHandlers::BattleUseOnBattler.add(:DIREHIT, proc { |item, battler, scene|
battler.effects[PBEffects::FocusEnergy] = 2
scene.pbDisplay(_INTL("{1} is getting pumped!",battler.pbThis))
scene.pbDisplay(_INTL("{1} is getting pumped!", battler.pbThis))
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:DIREHIT2,proc { |item,battler,scene|
ItemHandlers::BattleUseOnBattler.add(:DIREHIT2, proc { |item, battler, scene|
battler.effects[PBEffects::FocusEnergy] = 2
scene.pbDisplay(_INTL("{1} is getting pumped!",battler.pbThis))
scene.pbDisplay(_INTL("{1} is getting pumped!", battler.pbThis))
battler.pokemon.changeHappiness("battleitem")
})
ItemHandlers::BattleUseOnBattler.add(:DIREHIT3,proc { |item,battler,scene|
ItemHandlers::BattleUseOnBattler.add(:DIREHIT3, proc { |item, battler, scene|
battler.effects[PBEffects::FocusEnergy] = 3
scene.pbDisplay(_INTL("{1} is getting pumped!",battler.pbThis))
scene.pbDisplay(_INTL("{1} is getting pumped!", battler.pbThis))
battler.pokemon.changeHappiness("battleitem")
})

View File

@@ -1,22 +1,22 @@
#===============================================================================
# Register contacts
#===============================================================================
def pbPhoneRegisterNPC(ident,name,mapid,showmessage = true)
def pbPhoneRegisterNPC(ident, name, mapid, showmessage = true)
$PokemonGlobal.phoneNumbers = [] if !$PokemonGlobal.phoneNumbers
exists = pbFindPhoneTrainer(ident,name)
exists = pbFindPhoneTrainer(ident, name)
if exists
return if exists[0] # Already visible
exists[0] = true # Make visible
else
phonenum = [true,ident,name,mapid]
phonenum = [true, ident, name, mapid]
$PokemonGlobal.phoneNumbers.push(phonenum)
end
pbMessage(_INTL("\\me[Register phone]Registered {1} in the Pokégear.",name)) if showmessage
pbMessage(_INTL("\\me[Register phone]Registered {1} in the Pokégear.", name)) if showmessage
end
def pbPhoneRegister(event,trainertype,trainername)
def pbPhoneRegister(event, trainertype, trainername)
$PokemonGlobal.phoneNumbers = [] if !$PokemonGlobal.phoneNumbers
return if pbFindPhoneTrainer(trainertype,trainername)
return if pbFindPhoneTrainer(trainertype, trainername)
phonenum = []
phonenum.push(true)
phonenum.push(trainertype)
@@ -33,29 +33,29 @@ end
def pbPhoneDeleteContact(index)
$PokemonGlobal.phoneNumbers[index][0] = false # Remove from contact list
if $PokemonGlobal.phoneNumbers[index].length==8
if $PokemonGlobal.phoneNumbers[index].length == 8
$PokemonGlobal.phoneNumbers[index][3] = 0 # Reset countdown
$PokemonGlobal.phoneNumbers[index][4] = 0 # Reset countdown
end
end
def pbPhoneRegisterBattle(message,event,trainertype,trainername,maxbattles)
def pbPhoneRegisterBattle(message, event, trainertype, trainername, maxbattles)
return if !$player.has_pokegear # Can't register without a Pokégear
return false if !GameData::TrainerType.exists?(trainertype)
trainertype = GameData::TrainerType.get(trainertype).id
contact = pbFindPhoneTrainer(trainertype,trainername)
contact = pbFindPhoneTrainer(trainertype, trainername)
return if contact && contact[0] # Existing contact and is visible
message = _INTL("Let me register you.") if !message
return if !pbConfirmMessage(message)
displayname = _INTL("{1} {2}", GameData::TrainerType.get(trainertype).name,
pbGetMessageFromHash(MessageTypes::TrainerNames,trainername))
pbGetMessageFromHash(MessageTypes::TrainerNames, trainername))
if contact # Previously registered, just make visible
contact[0] = true
else # Add new contact
pbPhoneRegister(event,trainertype,trainername)
pbPhoneIncrement(trainertype,trainername,maxbattles)
pbPhoneRegister(event, trainertype, trainername)
pbPhoneIncrement(trainertype, trainername, maxbattles)
end
pbMessage(_INTL("\\me[Register phone]Registered {1} in the Pokégear.",displayname))
pbMessage(_INTL("\\me[Register phone]Registered {1} in the Pokégear.", displayname))
end
#===============================================================================
@@ -76,7 +76,7 @@ def pbRandomPhoneTrainer
next if caller_map_metadata.town_map_position[0] != currentRegion
temparray.push(num)
end
return nil if temparray.length==0
return nil if temparray.length == 0
return temparray[rand(temparray.length)]
end
@@ -99,7 +99,7 @@ end
def pbPhoneReadyToBattle?(tr_type, tr_name)
trainer = pbFindPhoneTrainer(tr_type, tr_name)
return (trainer && trainer[4]>=2)
return (trainer && trainer[4] >= 2)
end
#===============================================================================
@@ -108,7 +108,7 @@ end
def pbPhoneIncrement(tr_type, tr_name, maxbattles)
trainer = pbFindPhoneTrainer(tr_type, tr_name)
return if !trainer
trainer[5] += 1 if trainer[5]<maxbattles # Increment battle count
trainer[5] += 1 if trainer[5] < maxbattles # Increment battle count
trainer[3] = 0 # reset time to can-battle
trainer[4] = 0 # reset can-battle flag
end
@@ -123,20 +123,20 @@ end
def pbSetReadyToBattle(num)
return if !num[6] || !num[7]
$game_self_switches[[num[6],num[7],"A"]] = false
$game_self_switches[[num[6],num[7],"B"]] = true
$game_self_switches[[num[6], num[7], "A"]] = false
$game_self_switches[[num[6], num[7], "B"]] = true
$game_map.need_refresh = true
end
#===============================================================================
# Phone-related counters
#===============================================================================
Events.onMapUpdate += proc { |_sender,_e|
Events.onMapUpdate += proc { |_sender, _e|
next if !$player || !$player.has_pokegear
# Reset time to next phone call if necessary
if !$PokemonGlobal.phoneTime || $PokemonGlobal.phoneTime<=0
$PokemonGlobal.phoneTime = 20*60*Graphics.frame_rate
$PokemonGlobal.phoneTime += rand(20*60*Graphics.frame_rate)
if !$PokemonGlobal.phoneTime || $PokemonGlobal.phoneTime <= 0
$PokemonGlobal.phoneTime = 20 * 60 * Graphics.frame_rate
$PokemonGlobal.phoneTime += rand(20 * 60 * Graphics.frame_rate)
end
# Don't count down various phone times if other things are happening
$PokemonGlobal.phoneNumbers = [] if !$PokemonGlobal.phoneNumbers
@@ -145,30 +145,30 @@ Events.onMapUpdate += proc { |_sender,_e|
# Count down time to next phone call
$PokemonGlobal.phoneTime -= 1
# Count down time to next can-battle for each trainer contact
if $PokemonGlobal.phoneTime%Graphics.frame_rate==0 # Every second
if $PokemonGlobal.phoneTime % Graphics.frame_rate == 0 # Every second
for num in $PokemonGlobal.phoneNumbers
next if !num[0] || num.length!=8 # if not visible or not a trainer
next if !num[0] || num.length != 8 # if not visible or not a trainer
# Reset time to next can-battle if necessary
if num[4]==0
num[3] = 20*60+rand(20*60) # 20-40 minutes
if num[4] == 0
num[3] = 20 * 60 + rand(20 * 60) # 20-40 minutes
num[4] = 1
end
# Count down time to next can-battle
num[3] -= 1
# Ready to battle
if num[3]<=0 && num[4]==1
if num[3] <= 0 && num[4] == 1
num[4] = 2 # set ready-to-battle flag
pbSetReadyToBattle(num)
end
end
end
# Time for a random phone call; generate one
if $PokemonGlobal.phoneTime<=0
if $PokemonGlobal.phoneTime <= 0
# find all trainer phone numbers
phonenum = pbRandomPhoneTrainer
if phonenum
call = pbPhoneGenerateCall(phonenum)
pbPhoneCall(call,phonenum)
pbPhoneCall(call, phonenum)
end
end
}
@@ -176,18 +176,18 @@ Events.onMapUpdate += proc { |_sender,_e|
#===============================================================================
# Player calls a contact
#===============================================================================
def pbCallTrainer(trtype,trname)
trainer = pbFindPhoneTrainer(trtype,trname)
def pbCallTrainer(trtype, trname)
trainer = pbFindPhoneTrainer(trtype, trname)
return if !trainer
# Special NPC contacts
if trainer.length!=8
if trainer.length != 8
if !pbCommonEvent(trtype)
pbMessage(_INTL("{1}'s messages not defined.\nCouldn't call common event {2}.",trainer[2],trtype))
pbMessage(_INTL("{1}'s messages not defined.\nCouldn't call common event {2}.", trainer[2], trtype))
end
return
end
# Trainer contacts
if $game_map.map_id==trainer[6]
if $game_map.map_id == trainer[6]
pbMessage(_INTL("The Trainer is close by.\nTalk to the Trainer in person!"))
return
end
@@ -200,7 +200,7 @@ def pbCallTrainer(trtype,trname)
return # Can't call if in different region
end
call = pbPhoneGenerateCall(trainer)
pbPhoneCall(call,trainer)
pbPhoneCall(call, trainer)
end
#===============================================================================
@@ -213,18 +213,18 @@ def pbPhoneGenerateCall(phonenum)
time = pbGetTimeNow
if PBDayNight.isMorning?(time)
modcall = pbRandomPhoneItem(phoneData.greetingsMorning)
call = modcall if modcall && modcall!=""
call = modcall if modcall && modcall != ""
elsif PBDayNight.isEvening?(time)
modcall = pbRandomPhoneItem(phoneData.greetingsEvening)
call = modcall if modcall && modcall!=""
call = modcall if modcall && modcall != ""
end
call += "\\m"
if phonenum[4]==2 || (rand(2)==0 && phonenum[4]==3)
if phonenum[4] == 2 || (rand(2) == 0 && phonenum[4] == 3)
# If "can battle" is set, make ready to battle
call += pbRandomPhoneItem(phoneData.battleRequests)
pbSetReadyToBattle(phonenum)
phonenum[4] = 3
elsif rand(4)<3
elsif rand(4) < 3
# Choose random body
call += pbRandomPhoneItem(phoneData.bodies1)
call += "\\m"
@@ -239,7 +239,7 @@ end
def pbRandomPhoneItem(array)
ret = array[rand(array.length)]
ret = "" if !ret
return pbGetMessageFromHash(MessageTypes::PhoneMessages,ret)
return pbGetMessageFromHash(MessageTypes::PhoneMessages, ret)
end
def pbRandomEncounterSpecies(enc_table)
@@ -285,18 +285,18 @@ end
#===============================================================================
# The phone call itself
#===============================================================================
def pbPhoneCall(call,phonenum)
def pbPhoneCall(call, phonenum)
pbMessage(_INTL("......\\wt[5] ......\\1"))
encspecies = pbEncounterSpecies(phonenum)
trainerspecies = pbTrainerSpecies(phonenum)
trainermap = pbTrainerMapName(phonenum)
messages = call.split("\\m")
for i in 0...messages.length
messages[i].gsub!(/\\TN/,phonenum[2])
messages[i].gsub!(/\\TP/,trainerspecies)
messages[i].gsub!(/\\TE/,encspecies)
messages[i].gsub!(/\\TM/,trainermap)
messages[i] += "\\1" if i<messages.length-1
messages[i].gsub!(/\\TN/, phonenum[2])
messages[i].gsub!(/\\TP/, trainerspecies)
messages[i].gsub!(/\\TE/, encspecies)
messages[i].gsub!(/\\TM/, trainermap)
messages[i] += "\\1" if i < messages.length - 1
pbMessage(messages[i])
end
pbMessage(_INTL("Click!\\wt[10]\n......\\wt[5] ......\\1"))

View File

@@ -15,7 +15,7 @@ end
################################################################################
def pbCanUsePokeRadar?
# Can't use Radar if not in tall grass
terrain = $game_map.terrain_tag($game_player.x,$game_player.y)
terrain = $game_map.terrain_tag($game_player.x, $game_player.y)
if !terrain.land_wild_encounters || !terrain.shows_grass_rustle
pbMessage(_INTL("Can't use that here."))
return false
@@ -33,7 +33,7 @@ def pbCanUsePokeRadar?
# Debug
return true if $DEBUG && Input.press?(Input::CTRL)
# Can't use Radar if it isn't fully charged
if $PokemonGlobal.pokeradarBattery && $PokemonGlobal.pokeradarBattery>0
if $PokemonGlobal.pokeradarBattery && $PokemonGlobal.pokeradarBattery > 0
pbMessage(_INTL("The battery has run dry!\nFor it to recharge, you need to walk another {1} steps.",
$PokemonGlobal.pokeradarBattery))
return false
@@ -59,23 +59,23 @@ def pbPokeRadarHighlightGrass(showmessage = true)
grasses = [] # x, y, ring (0-3 inner to outer), rarity
# Choose 1 random tile from each ring around the player
for i in 0...4
r = rand((i+1)*8)
r = rand((i + 1) * 8)
# Get coordinates of randomly chosen tile
x = $game_player.x
y = $game_player.y
if r<=(i+1)*2
x = $game_player.x-i-1+r
y = $game_player.y-i-1
elsif r<=(i+1)*6-2
x = [$game_player.x+i+1,$game_player.x-i-1][r%2]
y = $game_player.y-i+((r-1-(i+1)*2)/2).floor
if r <= (i + 1) * 2
x = $game_player.x - i - 1 + r
y = $game_player.y - i - 1
elsif r <= (i + 1) * 6 - 2
x = [$game_player.x + i + 1, $game_player.x - i - 1][r % 2]
y = $game_player.y - i + ((r - 1 - (i + 1) * 2) / 2).floor
else
x = $game_player.x-i+r-(i+1)*6
y = $game_player.y+i+1
x = $game_player.x - i + r - (i + 1) * 6
y = $game_player.y + i + 1
end
# Add tile to grasses array if it's a valid grass tile
if x>=0 && x<$game_map.width &&
y>=0 && y<$game_map.height
if x >= 0 && x < $game_map.width &&
y >= 0 && y < $game_map.height
terrain = $game_map.terrain_tag(x, y)
if terrain.land_wild_encounters && terrain.shows_grass_rustle
# Choose a rarity for the grass (0=normal, 1=rare, 2=shiny)
@@ -85,11 +85,11 @@ def pbPokeRadarHighlightGrass(showmessage = true)
v = (65536 / v.to_f).ceil
s = 2 if rand(65536) < v
end
grasses.push([x,y,i,s])
grasses.push([x, y, i, s])
end
end
end
if grasses.length==0
if grasses.length == 0
# No shaking grass found, break the chain
pbMessage(_INTL("The grassy patch remained quiet...")) if showmessage
pbPokeRadarCancel
@@ -98,15 +98,15 @@ def pbPokeRadarHighlightGrass(showmessage = true)
for grass in grasses
case grass[3]
when 0 # Normal rustle
$scene.spriteset.addUserAnimation(Settings::RUSTLE_NORMAL_ANIMATION_ID,grass[0],grass[1],true,1)
$scene.spriteset.addUserAnimation(Settings::RUSTLE_NORMAL_ANIMATION_ID, grass[0], grass[1], true, 1)
when 1 # Vigorous rustle
$scene.spriteset.addUserAnimation(Settings::RUSTLE_VIGOROUS_ANIMATION_ID,grass[0],grass[1],true,1)
$scene.spriteset.addUserAnimation(Settings::RUSTLE_VIGOROUS_ANIMATION_ID, grass[0], grass[1], true, 1)
when 2 # Shiny rustle
$scene.spriteset.addUserAnimation(Settings::RUSTLE_SHINY_ANIMATION_ID,grass[0],grass[1],true,1)
$scene.spriteset.addUserAnimation(Settings::RUSTLE_SHINY_ANIMATION_ID, grass[0], grass[1], true, 1)
end
end
$game_temp.poke_radar_data[3] = grasses if $game_temp.poke_radar_data
pbWait(Graphics.frame_rate/2)
pbWait(Graphics.frame_rate / 2)
end
end
@@ -192,23 +192,23 @@ EncounterModifier.register(proc { |encounter|
next encounter
})
Events.onWildPokemonCreate += proc { |_sender,e|
Events.onWildPokemonCreate += proc { |_sender, e|
pokemon = e[0]
next if !$game_temp.poke_radar_data
grasses = $game_temp.poke_radar_data[3]
next if !grasses
for grass in grasses
next if $game_player.x!=grass[0] || $game_player.y!=grass[1]
pokemon.shiny = true if grass[3]==2
next if $game_player.x != grass[0] || $game_player.y != grass[1]
pokemon.shiny = true if grass[3] == 2
break
end
}
Events.onWildBattleEnd += proc { |_sender,e|
Events.onWildBattleEnd += proc { |_sender, e|
species = e[0]
level = e[1]
decision = e[2]
if $game_temp.poke_radar_data && (decision==1 || decision==4) # Defeated/caught
if $game_temp.poke_radar_data && (decision == 1 || decision == 4) # Defeated/caught
$game_temp.poke_radar_data[0] = species
$game_temp.poke_radar_data[1] = level
$game_temp.poke_radar_data[2] += 1
@@ -221,28 +221,28 @@ Events.onWildBattleEnd += proc { |_sender,e|
end
}
Events.onStepTaken += proc { |_sender,_e|
Events.onStepTaken += proc { |_sender, _e|
if $PokemonGlobal.pokeradarBattery && $PokemonGlobal.pokeradarBattery > 0 &&
!$game_temp.poke_radar_data
$PokemonGlobal.pokeradarBattery -= 1
end
terrain = $game_map.terrain_tag($game_player.x,$game_player.y)
terrain = $game_map.terrain_tag($game_player.x, $game_player.y)
if !terrain.land_wild_encounters || !terrain.shows_grass_rustle
pbPokeRadarCancel
end
}
Events.onMapChange += proc { |_sender,_e|
Events.onMapChange += proc { |_sender, _e|
pbPokeRadarCancel
}
################################################################################
# Item handlers
################################################################################
ItemHandlers::UseInField.add(:POKERADAR,proc { |item|
ItemHandlers::UseInField.add(:POKERADAR, proc { |item|
next pbUsePokeRadar
})
ItemHandlers::UseFromBag.add(:POKERADAR,proc { |item|
ItemHandlers::UseFromBag.add(:POKERADAR, proc { |item|
next (pbCanUsePokeRadar?) ? 2 : 0
})

View File

@@ -16,64 +16,64 @@ end
def pbMoveToMailbox(pokemon)
$PokemonGlobal.mailbox = [] if !$PokemonGlobal.mailbox
return false if $PokemonGlobal.mailbox.length>=10
return false if $PokemonGlobal.mailbox.length >= 10
return false if !pokemon.mail
$PokemonGlobal.mailbox.push(pokemon.mail)
pokemon.mail = nil
return true
end
def pbStoreMail(pkmn,item,message,poke1 = nil,poke2 = nil,poke3 = nil)
def pbStoreMail(pkmn, item, message, poke1 = nil, poke2 = nil, poke3 = nil)
raise _INTL("Pokémon already has mail") if pkmn.mail
pkmn.mail = Mail.new(item, message, $player.name, poke1, poke2, poke3)
end
def pbDisplayMail(mail,_bearer = nil)
def pbDisplayMail(mail, _bearer = nil)
sprites = {}
viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
viewport.z = 99999
addBackgroundPlane(sprites,"background","mailbg",viewport)
sprites["card"] = IconSprite.new(0,0,viewport)
addBackgroundPlane(sprites, "background", "mailbg", viewport)
sprites["card"] = IconSprite.new(0, 0, viewport)
sprites["card"].setBitmap(GameData::Item.mail_filename(mail.item))
sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,viewport)
sprites["overlay"] = BitmapSprite.new(Graphics.width, Graphics.height, viewport)
overlay = sprites["overlay"].bitmap
pbSetSystemFont(overlay)
if GameData::Item.get(mail.item).is_icon_mail?
if mail.poke1
sprites["bearer"] = IconSprite.new(64,288,viewport)
sprites["bearer"] = IconSprite.new(64, 288, viewport)
bitmapFileName = GameData::Species.icon_filename(mail.poke1[0],
mail.poke1[3], mail.poke1[1], mail.poke1[2], mail.poke1[4], mail.poke1[5])
sprites["bearer"].setBitmap(bitmapFileName)
sprites["bearer"].src_rect.set(0,0,64,64)
sprites["bearer"].src_rect.set(0, 0, 64, 64)
end
if mail.poke2
sprites["bearer2"] = IconSprite.new(144,288,viewport)
sprites["bearer2"] = IconSprite.new(144, 288, viewport)
bitmapFileName = GameData::Species.icon_filename(mail.poke2[0],
mail.poke2[3], mail.poke2[1], mail.poke2[2], mail.poke2[4], mail.poke2[5])
sprites["bearer2"].setBitmap(bitmapFileName)
sprites["bearer2"].src_rect.set(0,0,64,64)
sprites["bearer2"].src_rect.set(0, 0, 64, 64)
end
if mail.poke3
sprites["bearer3"] = IconSprite.new(224,288,viewport)
sprites["bearer3"] = IconSprite.new(224, 288, viewport)
bitmapFileName = GameData::Species.icon_filename(mail.poke3[0],
mail.poke3[3], mail.poke3[1], mail.poke3[2], mail.poke3[4], mail.poke3[5])
sprites["bearer3"].setBitmap(bitmapFileName)
sprites["bearer3"].src_rect.set(0,0,64,64)
sprites["bearer3"].src_rect.set(0, 0, 64, 64)
end
end
baseForDarkBG = Color.new(248,248,248)
shadowForDarkBG = Color.new(72,80,88)
baseForLightBG = Color.new(80,80,88)
shadowForLightBG = Color.new(168,168,176)
if mail.message && mail.message!=""
isDark = isDarkBackground(sprites["card"].bitmap,Rect.new(48,48,Graphics.width-96,32*7))
drawTextEx(overlay,48,52,Graphics.width-(48*2),7,mail.message,
baseForDarkBG = Color.new(248, 248, 248)
shadowForDarkBG = Color.new(72, 80, 88)
baseForLightBG = Color.new(80, 80, 88)
shadowForLightBG = Color.new(168, 168, 176)
if mail.message && mail.message != ""
isDark = isDarkBackground(sprites["card"].bitmap, Rect.new(48, 48, Graphics.width - 96, 32 * 7))
drawTextEx(overlay, 48, 52, Graphics.width - (48 * 2), 7, mail.message,
(isDark) ? baseForDarkBG : baseForLightBG,
(isDark) ? shadowForDarkBG : shadowForLightBG)
end
if mail.sender && mail.sender!=""
isDark = isDarkBackground(sprites["card"].bitmap,Rect.new(336,322,144,32*1))
drawTextEx(overlay,336,326,144,1,mail.sender,
if mail.sender && mail.sender != ""
isDark = isDarkBackground(sprites["card"].bitmap, Rect.new(336, 322, 144, 32 * 1))
drawTextEx(overlay, 336, 326, 144, 1, mail.sender,
(isDark) ? baseForDarkBG : baseForLightBG,
(isDark) ? shadowForDarkBG : shadowForLightBG)
end
@@ -91,27 +91,27 @@ def pbDisplayMail(mail,_bearer = nil)
viewport.dispose
end
def pbWriteMail(item,pkmn,pkmnid,scene)
def pbWriteMail(item, pkmn, pkmnid, scene)
message = ""
loop do
message = pbMessageFreeText(_INTL("Please enter a message (max. 250 characters)."),
"",false,250,Graphics.width) { scene.pbUpdate }
if message!=""
"", false, 250, Graphics.width) { scene.pbUpdate }
if message != ""
# Store mail if a message was written
poke1 = poke2 = nil
if $player.party[pkmnid+2]
p = $player.party[pkmnid+2]
poke1 = [p.species,p.gender,p.shiny?,p.form,p.shadowPokemon?]
if $player.party[pkmnid + 2]
p = $player.party[pkmnid + 2]
poke1 = [p.species, p.gender, p.shiny?, p.form, p.shadowPokemon?]
poke1.push(true) if p.egg?
end
if $player.party[pkmnid+1]
p = $player.party[pkmnid+1]
poke2 = [p.species,p.gender,p.shiny?,p.form,p.shadowPokemon?]
if $player.party[pkmnid + 1]
p = $player.party[pkmnid + 1]
poke2 = [p.species, p.gender, p.shiny?, p.form, p.shadowPokemon?]
poke2.push(true) if p.egg?
end
poke3 = [pkmn.species,pkmn.gender,pkmn.shiny?,pkmn.form,pkmn.shadowPokemon?]
poke3 = [pkmn.species, pkmn.gender, pkmn.shiny?, pkmn.form, pkmn.shadowPokemon?]
poke3.push(true) if pkmn.egg?
pbStoreMail(pkmn,item,message,poke1,poke2,poke3)
pbStoreMail(pkmn, item, message, poke1, poke2, poke3)
return true
end
return false if scene.pbConfirm(_INTL("Stop giving the Pokémon Mail?"))

View File

@@ -7,7 +7,7 @@ class ItemIconSprite < SpriteWrapper
ANIM_ICON_SIZE = 48
FRAMES_PER_CYCLE = Graphics.frame_rate
def initialize(x,y,item,viewport = nil)
def initialize(x, y, item, viewport = nil)
super(viewport)
@animbitmap = nil
@animframe = 0
@@ -28,7 +28,7 @@ class ItemIconSprite < SpriteWrapper
def width
return 0 if !self.bitmap || self.bitmap.disposed?
return (@numframes==1) ? self.bitmap.width : ANIM_ICON_SIZE
return (@numframes == 1) ? self.bitmap.width : ANIM_ICON_SIZE
end
def height
@@ -53,7 +53,7 @@ class ItemIconSprite < SpriteWrapper
when PictureOrigin::TopLeft, PictureOrigin::Top, PictureOrigin::TopRight
self.oy = 0
when PictureOrigin::Left, PictureOrigin::Center, PictureOrigin::Right
self.oy = self.height/2
self.oy = self.height / 2
when PictureOrigin::BottomLeft, PictureOrigin::Bottom, PictureOrigin::BottomRight
self.oy = self.height
end
@@ -61,26 +61,26 @@ class ItemIconSprite < SpriteWrapper
when PictureOrigin::TopLeft, PictureOrigin::Left, PictureOrigin::BottomLeft
self.ox = 0
when PictureOrigin::Top, PictureOrigin::Center, PictureOrigin::Bottom
self.ox = self.width/2
self.ox = self.width / 2
when PictureOrigin::TopRight, PictureOrigin::Right, PictureOrigin::BottomRight
self.ox = self.width
end
end
def item=(value)
return if @item==value && !@forceitemchange
return if @item == value && !@forceitemchange
@item = value
@animbitmap.dispose if @animbitmap
@animbitmap = nil
if @item || !@blankzero
@animbitmap = AnimatedBitmap.new(GameData::Item.icon_filename(@item))
self.bitmap = @animbitmap.bitmap
if self.bitmap.height==ANIM_ICON_SIZE
@numframes = [(self.bitmap.width/ANIM_ICON_SIZE).floor,1].max
self.src_rect = Rect.new(0,0,ANIM_ICON_SIZE,ANIM_ICON_SIZE)
if self.bitmap.height == ANIM_ICON_SIZE
@numframes = [(self.bitmap.width / ANIM_ICON_SIZE).floor, 1].max
self.src_rect = Rect.new(0, 0, ANIM_ICON_SIZE, ANIM_ICON_SIZE)
else
@numframes = 1
self.src_rect = Rect.new(0,0,self.bitmap.width,self.bitmap.height)
self.src_rect = Rect.new(0, 0, self.bitmap.width, self.bitmap.height)
end
@animframe = 0
@frame = 0
@@ -96,12 +96,12 @@ class ItemIconSprite < SpriteWrapper
if @animbitmap
@animbitmap.update
self.bitmap = @animbitmap.bitmap
if @numframes>1
frameskip = (FRAMES_PER_CYCLE/@numframes).floor
@frame = (@frame+1)%FRAMES_PER_CYCLE
if @frame>=frameskip
@animframe = (@animframe+1)%@numframes
self.src_rect.x = @animframe*ANIM_ICON_SIZE
if @numframes > 1
frameskip = (FRAMES_PER_CYCLE / @numframes).floor
@frame = (@frame + 1) % FRAMES_PER_CYCLE
if @frame >= frameskip
@animframe = (@animframe + 1) % @numframes
self.src_rect.x = @animframe * ANIM_ICON_SIZE
@frame = 0
end
end
@@ -116,7 +116,7 @@ end
# Item held icon (used in the party screen)
#===============================================================================
class HeldItemIconSprite < SpriteWrapper
def initialize(x,y,pokemon,viewport = nil)
def initialize(x, y, pokemon, viewport = nil)
super(viewport)
self.x = x
self.y = y
@@ -136,7 +136,7 @@ class HeldItemIconSprite < SpriteWrapper
end
def item=(value)
return if @item==value
return if @item == value
@item = value
@animbitmap.dispose if @animbitmap
@animbitmap = nil