Implemented GameData::Move

This commit is contained in:
Maruno17
2020-11-19 21:00:29 +00:00
parent 52ffae9e8a
commit 3cd8d59918
71 changed files with 1443 additions and 1584 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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."))
})