mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-08 05:34:58 +00:00
Implemented GameData::Move
This commit is contained in:
@@ -246,11 +246,11 @@ end
|
||||
# Restore PP
|
||||
#===============================================================================
|
||||
def pbRestorePP(pkmn,idxMove,pp)
|
||||
return 0 if !pkmn.moves[idxMove] || pkmn.moves[idxMove].id==0
|
||||
return 0 if pkmn.moves[idxMove].totalpp<=0
|
||||
return 0 if !pkmn.moves[idxMove] || !pkmn.moves[idxMove].id
|
||||
return 0 if pkmn.moves[idxMove].total_pp<=0
|
||||
oldpp = pkmn.moves[idxMove].pp
|
||||
newpp = pkmn.moves[idxMove].pp+pp
|
||||
newpp = pkmn.moves[idxMove].totalpp if newpp>pkmn.moves[idxMove].totalpp
|
||||
newpp = pkmn.moves[idxMove].total_pp if newpp>pkmn.moves[idxMove].total_pp
|
||||
pkmn.moves[idxMove].pp = newpp
|
||||
return newpp-oldpp
|
||||
end
|
||||
@@ -407,7 +407,7 @@ end
|
||||
#===============================================================================
|
||||
def pbLearnMove(pkmn,move,ignoreifknown=false,bymachine=false,&block)
|
||||
return false if !pkmn
|
||||
movename = PBMoves.getName(move)
|
||||
move = GameData::Move.get(move).id
|
||||
if pkmn.egg? && !$DEBUG
|
||||
pbMessage(_INTL("Eggs can't be taught any moves."),&block)
|
||||
return false
|
||||
@@ -417,11 +417,12 @@ def pbLearnMove(pkmn,move,ignoreifknown=false,bymachine=false,&block)
|
||||
return false
|
||||
end
|
||||
pkmnname = pkmn.name
|
||||
movename = GameData::Move.get(move).name
|
||||
if pkmn.hasMove?(move)
|
||||
pbMessage(_INTL("{1} already knows {2}.",pkmnname,movename),&block) if !ignoreifknown
|
||||
return false
|
||||
end
|
||||
if pkmn.numMoves<4
|
||||
if pkmn.numMoves<Pokemon::MAX_MOVES
|
||||
pkmn.pbLearnMove(move)
|
||||
pbMessage(_INTL("\\se[]{1} learned {2}!\\se[Pkmn move learnt]",pkmnname,movename),&block)
|
||||
return true
|
||||
@@ -431,11 +432,11 @@ def pbLearnMove(pkmn,move,ignoreifknown=false,bymachine=false,&block)
|
||||
pbMessage(_INTL("Please choose a move that will be replaced with {1}.",movename),&block)
|
||||
forgetmove = pbForgetMove(pkmn,move)
|
||||
if forgetmove>=0
|
||||
oldmovename = PBMoves.getName(pkmn.moves[forgetmove].id)
|
||||
oldmovename = pkmn.moves[forgetmove].name
|
||||
oldmovepp = pkmn.moves[forgetmove].pp
|
||||
pkmn.moves[forgetmove] = PBMove.new(move) # Replaces current/total PP
|
||||
if bymachine && !NEWEST_BATTLE_MECHANICS
|
||||
pkmn.moves[forgetmove].pp = [oldmovepp,pkmn.moves[forgetmove].totalpp].min
|
||||
pkmn.moves[forgetmove].pp = [oldmovepp,pkmn.moves[forgetmove].total_pp].min
|
||||
end
|
||||
pbMessage(_INTL("1,\\wt[16] 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",pkmnname,oldmovename),&block)
|
||||
@@ -480,7 +481,7 @@ def pbUseItem(bag,item,bagscene=nil)
|
||||
end
|
||||
machine = itm.move
|
||||
return 0 if !machine
|
||||
movename = PBMoves.getName(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))
|
||||
return 0
|
||||
@@ -554,7 +555,7 @@ def pbUseItemOnPokemon(item,pkmn,scene)
|
||||
if itm.is_machine?
|
||||
machine = itm.move
|
||||
return false if !machine
|
||||
movename = PBMoves.getName(machine)
|
||||
movename = GameData::Move.get(machine).name
|
||||
if pkmn.shadowPokemon?
|
||||
pbMessage(_INTL("Shadow Pokémon can't be taught any moves.")) { scene.pbUpdate }
|
||||
elsif !pkmn.compatibleWithMove?(machine)
|
||||
|
||||
@@ -590,7 +590,7 @@ ItemHandlers::UseOnPokemon.copy(:ETHER,:LEPPABERRY)
|
||||
ItemHandlers::UseOnPokemon.add(:MAXETHER,proc { |item,pkmn,scene|
|
||||
move = scene.pbChooseMove(pkmn,_INTL("Restore which move?"))
|
||||
next false if move<0
|
||||
if pbRestorePP(pkmn,move,pkmn.moves[move].totalpp-pkmn.moves[move].pp)==0
|
||||
if pbRestorePP(pkmn,move,pkmn.moves[move].total_pp-pkmn.moves[move].pp)==0
|
||||
scene.pbDisplay(_INTL("It won't have any effect."))
|
||||
next false
|
||||
end
|
||||
@@ -614,7 +614,7 @@ ItemHandlers::UseOnPokemon.add(:ELIXIR,proc { |item,pkmn,scene|
|
||||
ItemHandlers::UseOnPokemon.add(:MAXELIXIR,proc { |item,pkmn,scene|
|
||||
pprestored = 0
|
||||
for i in 0...pkmn.moves.length
|
||||
pprestored += pbRestorePP(pkmn,i,pkmn.moves[i].totalpp-pkmn.moves[i].pp)
|
||||
pprestored += pbRestorePP(pkmn,i,pkmn.moves[i].total_pp-pkmn.moves[i].pp)
|
||||
end
|
||||
if pprestored==0
|
||||
scene.pbDisplay(_INTL("It won't have any effect."))
|
||||
@@ -627,12 +627,12 @@ ItemHandlers::UseOnPokemon.add(:MAXELIXIR,proc { |item,pkmn,scene|
|
||||
ItemHandlers::UseOnPokemon.add(:PPUP,proc { |item,pkmn,scene|
|
||||
move = scene.pbChooseMove(pkmn,_INTL("Boost PP of which move?"))
|
||||
if move>=0
|
||||
if pkmn.moves[move].totalpp<=1 || pkmn.moves[move].ppup>=3
|
||||
if pkmn.moves[move].total_pp<=1 || pkmn.moves[move].ppup>=3
|
||||
scene.pbDisplay(_INTL("It won't have any effect."))
|
||||
next false
|
||||
end
|
||||
pkmn.moves[move].ppup += 1
|
||||
movename = PBMoves.getName(pkmn.moves[move].id)
|
||||
movename = pkmn.moves[move].name
|
||||
scene.pbDisplay(_INTL("{1}'s PP increased.",movename))
|
||||
next true
|
||||
end
|
||||
@@ -642,12 +642,12 @@ ItemHandlers::UseOnPokemon.add(:PPUP,proc { |item,pkmn,scene|
|
||||
ItemHandlers::UseOnPokemon.add(:PPMAX,proc { |item,pkmn,scene|
|
||||
move = scene.pbChooseMove(pkmn,_INTL("Boost PP of which move?"))
|
||||
if move>=0
|
||||
if pkmn.moves[move].totalpp<=1 || pkmn.moves[move].ppup>=3
|
||||
if pkmn.moves[move].total_pp<=1 || pkmn.moves[move].ppup>=3
|
||||
scene.pbDisplay(_INTL("It won't have any effect."))
|
||||
next false
|
||||
end
|
||||
pkmn.moves[move].ppup = 3
|
||||
movename = PBMoves.getName(pkmn.moves[move].id)
|
||||
movename = pkmn.moves[move].name
|
||||
scene.pbDisplay(_INTL("{1}'s PP increased.",movename))
|
||||
next true
|
||||
end
|
||||
|
||||
@@ -143,8 +143,8 @@ ItemHandlers::CanUseInBattle.copy(:REVIVE,:MAXREVIVE,:REVIVALHERB)
|
||||
|
||||
ItemHandlers::CanUseInBattle.add(:ETHER,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
|
||||
if !pokemon.able? || move<0 ||
|
||||
pokemon.moves[move].totalpp<=0 ||
|
||||
pokemon.moves[move].pp==pokemon.moves[move].totalpp
|
||||
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
|
||||
@@ -161,7 +161,7 @@ ItemHandlers::CanUseInBattle.add(:ELIXIR,proc { |item,pokemon,battler,move,first
|
||||
canRestore = false
|
||||
for m in pokemon.moves
|
||||
next if m.id==0
|
||||
next if m.totalpp<=0 || m.pp==m.totalpp
|
||||
next if m.total_pp<=0 || m.pp==m.total_pp
|
||||
canRestore = true
|
||||
break
|
||||
end
|
||||
@@ -487,7 +487,7 @@ ItemHandlers::BattleUseOnPokemon.copy(:ETHER,:LEPPABERRY)
|
||||
|
||||
ItemHandlers::BattleUseOnPokemon.add(:MAXETHER,proc { |item,pokemon,battler,choices,scene|
|
||||
idxMove = choices[3]
|
||||
pbBattleRestorePP(pokemon,battler,idxMove,pokemon.moves[idxMove].totalpp)
|
||||
pbBattleRestorePP(pokemon,battler,idxMove,pokemon.moves[idxMove].total_pp)
|
||||
scene.pbDisplay(_INTL("PP was restored."))
|
||||
})
|
||||
|
||||
@@ -500,7 +500,7 @@ ItemHandlers::BattleUseOnPokemon.add(:ELIXIR,proc { |item,pokemon,battler,choice
|
||||
|
||||
ItemHandlers::BattleUseOnPokemon.add(:MAXELIXIR,proc { |item,pokemon,battler,choices,scene|
|
||||
for i in 0...pokemon.moves.length
|
||||
pbBattleRestorePP(pokemon,battler,i,pokemon.moves[i].totalpp)
|
||||
pbBattleRestorePP(pokemon,battler,i,pokemon.moves[i].total_pp)
|
||||
end
|
||||
scene.pbDisplay(_INTL("PP was restored."))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user