Moved methods that return item/trainer graphics, refactored evolution helper methods, rearranged some methods

This commit is contained in:
Maruno17
2020-12-13 19:40:17 +00:00
parent d4b5aa0ce7
commit 1ffeddc41c
35 changed files with 582 additions and 548 deletions

View File

@@ -1326,6 +1326,9 @@ end
#===============================================================================
# Open the party screen
#===============================================================================
def pbPokemonScreen
pbFadeOutIn {
sscene = PokemonParty_Scene.new
@@ -1333,3 +1336,67 @@ def pbPokemonScreen
sscreen.pbPokemonScreen
}
end
#===============================================================================
# Choose a Pokémon in the party
#===============================================================================
# Choose a Pokémon/egg from the party.
# Stores result in variable _variableNumber_ and the chosen Pokémon's name in
# variable _nameVarNumber_; result is -1 if no Pokémon was chosen
def pbChoosePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
chosen = 0
pbFadeOutIn {
scene = PokemonParty_Scene.new
screen = PokemonPartyScreen.new(scene,$Trainer.party)
if ableProc
chosen=screen.pbChooseAblePokemon(ableProc,allowIneligible)
else
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
chosen = screen.pbChoosePokemon
screen.pbEndScene
end
}
pbSet(variableNumber,chosen)
if chosen>=0
pbSet(nameVarNumber,$Trainer.party[chosen].name)
else
pbSet(nameVarNumber,"")
end
end
def pbChooseNonEggPokemon(variableNumber,nameVarNumber)
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? })
end
def pbChooseAblePokemon(variableNumber,nameVarNumber)
pbChoosePokemon(variableNumber,nameVarNumber,proc { |pkmn| !pkmn.egg? && pkmn.hp>0 })
end
# Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon.
def pbChooseTradablePokemon(variableNumber,nameVarNumber,ableProc=nil,allowIneligible=false)
chosen = 0
pbFadeOutIn {
scene = PokemonParty_Scene.new
screen = PokemonPartyScreen.new(scene,$Trainer.party)
if ableProc
chosen=screen.pbChooseTradablePokemon(ableProc,allowIneligible)
else
screen.pbStartScene(_INTL("Choose a Pokémon."),false)
chosen = screen.pbChoosePokemon
screen.pbEndScene
end
}
pbSet(variableNumber,chosen)
if chosen>=0
pbSet(nameVarNumber,$Trainer.party[chosen].name)
else
pbSet(nameVarNumber,"")
end
end
def pbChoosePokemonForTrade(variableNumber,nameVarNumber,wanted)
wanted = getID(PBSpecies,wanted)
pbChooseTradablePokemon(variableNumber,nameVarNumber,proc { |pkmn|
next pkmn.species==wanted
})
end

View File

@@ -1346,3 +1346,25 @@ class PokemonSummaryScreen
return ret
end
end
#===============================================================================
#
#===============================================================================
def pbChooseMove(pokemon,variableNumber,nameVarNumber)
return if !pokemon
ret = -1
pbFadeOutIn {
scene = PokemonSummary_Scene.new
screen = PokemonSummaryScreen.new(scene)
ret = screen.pbStartForgetScreen([pokemon],0,nil)
}
$game_variables[variableNumber] = ret
if ret>=0
$game_variables[nameVarNumber] = pokemon.moves[ret].name
else
$game_variables[nameVarNumber] = ""
end
$game_map.need_refresh = true if $game_map
end

View File

@@ -133,7 +133,7 @@ class PokemonRegionMap_Scene
@sprites["mapbottom"].mapdetails = pbGetMapDetails(@mapX,@mapY)
if playerpos && mapindex==playerpos[0]
@sprites["player"] = IconSprite.new(0,0,@viewport)
@sprites["player"].setBitmap(pbPlayerHeadFile($Trainer.trainertype))
@sprites["player"].setBitmap(GameData::TrainerType.player_map_icon_filename($Trainer.trainertype))
@sprites["player"].x = -SQUAREWIDTH/2+(@mapX*SQUAREWIDTH)+(Graphics.width-@sprites["map"].bitmap.width)/2
@sprites["player"].y = -SQUAREHEIGHT/2+(@mapY*SQUAREHEIGHT)+(Graphics.height-@sprites["map"].bitmap.height)/2
end

View File

@@ -54,7 +54,7 @@ class PokemonPhoneScene
addBackgroundPlane(@sprites,"bg","phonebg",@viewport)
@sprites["icon"] = IconSprite.new(70,102,@viewport)
if @trainers[0].length==4
filename = pbTrainerCharFile(@trainers[0][0])
filename = GameData::TrainerType.charset_filename(@trainers[0][0])
else
filename = sprintf("Graphics/Characters/phone%03d",@trainers[0][0])
end
@@ -106,7 +106,7 @@ class PokemonPhoneScene
if @sprites["list"].index!=oldindex
trainer = @trainers[@sprites["list"].index]
if trainer.length==4
filename = pbTrainerCharFile(trainer[0])
filename = GameData::TrainerType.charset_filename(trainer[0])
else
filename = sprintf("Graphics/Characters/phone%03d",trainer[0])
end

View File

@@ -23,7 +23,7 @@ class PokemonTrainerCard_Scene
@sprites["overlay"] = BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
pbSetSystemFont(@sprites["overlay"].bitmap)
@sprites["trainer"] = IconSprite.new(336,112,@viewport)
@sprites["trainer"].setBitmap(pbPlayerSpriteFile($Trainer.trainertype))
@sprites["trainer"].setBitmap(GameData::TrainerType.player_front_sprite_filename($Trainer.trainertype))
@sprites["trainer"].x -= (@sprites["trainer"].bitmap.width-128)/2
@sprites["trainer"].y -= (@sprites["trainer"].bitmap.height-128)
@sprites["trainer"].z = 2

View File

@@ -36,8 +36,7 @@ class PokemonMartAdapter
end
def getItemIcon(item)
return nil if !item
return pbItemIconFile(item)
return (item) ? GameData::Item.icon_filename(item) : nil
end
# Unused

View File

@@ -241,7 +241,7 @@ class HallOfFame_Scene
def createTrainerBattler
@sprites["trainer"]=IconSprite.new(@viewport)
@sprites["trainer"].setBitmap(pbTrainerSpriteFile($Trainer.trainertype))
@sprites["trainer"].setBitmap(GameData::TrainerType.front_sprite_filename($Trainer.trainertype))
if !SINGLEROW
@sprites["trainer"].x=Graphics.width-96
@sprites["trainer"].y=160