mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
285 lines
9.0 KiB
Ruby
285 lines
9.0 KiB
Ruby
#===============================================================================
|
|
#
|
|
#===============================================================================
|
|
class PokemonPauseMenu_Scene
|
|
def pbStartScene
|
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
|
@viewport.z = 99999
|
|
@sprites = {}
|
|
@sprites["cmdwindow"] = Window_CommandPokemon.new([])
|
|
@sprites["cmdwindow"].visible = false
|
|
@sprites["cmdwindow"].viewport = @viewport
|
|
@sprites["infowindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport)
|
|
@sprites["infowindow"].visible = false
|
|
@sprites["helpwindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport)
|
|
@sprites["helpwindow"].visible = false
|
|
@infostate = false
|
|
@helpstate = false
|
|
pbSEPlay("GUI menu open")
|
|
end
|
|
|
|
def pbShowInfo(text)
|
|
@sprites["infowindow"].resizeToFit(text, Graphics.height)
|
|
@sprites["infowindow"].text = text
|
|
@sprites["infowindow"].visible = true
|
|
@infostate = true
|
|
end
|
|
|
|
def pbShowHelp(text)
|
|
@sprites["helpwindow"].resizeToFit(text, Graphics.height)
|
|
@sprites["helpwindow"].text = text
|
|
@sprites["helpwindow"].visible = true
|
|
pbBottomLeft(@sprites["helpwindow"])
|
|
@helpstate = true
|
|
end
|
|
|
|
def pbShowMenu
|
|
@sprites["cmdwindow"].visible = true
|
|
@sprites["infowindow"].visible = @infostate
|
|
@sprites["helpwindow"].visible = @helpstate
|
|
end
|
|
|
|
def pbHideMenu
|
|
@sprites["cmdwindow"].visible = false
|
|
@sprites["infowindow"].visible = false
|
|
@sprites["helpwindow"].visible = false
|
|
end
|
|
|
|
def pbShowCommands(commands)
|
|
ret = -1
|
|
cmdwindow = @sprites["cmdwindow"]
|
|
cmdwindow.commands = commands
|
|
cmdwindow.index = $PokemonTemp.menuLastChoice
|
|
cmdwindow.resizeToFit(commands)
|
|
cmdwindow.x = Graphics.width - cmdwindow.width
|
|
cmdwindow.y = 0
|
|
cmdwindow.visible = true
|
|
loop do
|
|
cmdwindow.update
|
|
Graphics.update
|
|
Input.update
|
|
pbUpdateSceneMap
|
|
if Input.trigger?(Input::BACK)
|
|
ret = -1
|
|
break
|
|
elsif Input.trigger?(Input::USE)
|
|
ret = cmdwindow.index
|
|
$PokemonTemp.menuLastChoice = ret
|
|
break
|
|
end
|
|
end
|
|
return ret
|
|
end
|
|
|
|
def pbEndScene
|
|
pbDisposeSpriteHash(@sprites)
|
|
@viewport.dispose
|
|
end
|
|
|
|
def pbRefresh; end
|
|
end
|
|
|
|
#===============================================================================
|
|
#
|
|
#===============================================================================
|
|
class PokemonPauseMenu
|
|
def initialize(scene)
|
|
@scene = scene
|
|
end
|
|
|
|
def pbShowMenu
|
|
@scene.pbRefresh
|
|
@scene.pbShowMenu
|
|
end
|
|
|
|
def pbStartPokemonMenu
|
|
if !$Trainer
|
|
if $DEBUG
|
|
pbMessage(_INTL("The player trainer was not defined, so the pause menu can't be displayed."))
|
|
pbMessage(_INTL("Please see the documentation to learn how to set up the trainer player."))
|
|
end
|
|
return
|
|
end
|
|
@scene.pbStartScene
|
|
endscene = true
|
|
commands = []
|
|
cmdPokedex = -1
|
|
cmdPokemon = -1
|
|
cmdBag = -1
|
|
cmdTrainer = -1
|
|
cmdSave = -1
|
|
cmdOption = -1
|
|
cmdPokegear = -1
|
|
cmdDebug = -1
|
|
cmdQuit = -1
|
|
cmdEndGame = -1
|
|
if $Trainer.has_pokedex && $Trainer.pokedex.accessible_dexes.length > 0
|
|
commands[cmdPokedex = commands.length] = _INTL("Pokédex")
|
|
end
|
|
commands[cmdPokemon = commands.length] = _INTL("Pokémon") if $Trainer.party_count > 0
|
|
commands[cmdBag = commands.length] = _INTL("Bag") if !pbInBugContest?
|
|
commands[cmdPokegear = commands.length] = _INTL("Pokégear") if $Trainer.has_pokegear
|
|
commands[cmdTrainer = commands.length] = $Trainer.name
|
|
if pbInSafari?
|
|
if Settings::SAFARI_STEPS <= 0
|
|
@scene.pbShowInfo(_INTL("Balls: {1}", pbSafariState.ballcount))
|
|
else
|
|
@scene.pbShowInfo(_INTL("Steps: {1}/{2}\nBalls: {3}",
|
|
pbSafariState.steps, Settings::SAFARI_STEPS, pbSafariState.ballcount))
|
|
end
|
|
commands[cmdQuit = commands.length] = _INTL("Quit")
|
|
elsif pbInBugContest?
|
|
if pbBugContestState.lastPokemon
|
|
@scene.pbShowInfo(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}",
|
|
pbBugContestState.lastPokemon.speciesName,
|
|
pbBugContestState.lastPokemon.level,
|
|
pbBugContestState.ballcount))
|
|
else
|
|
@scene.pbShowInfo(_INTL("Caught: None\nBalls: {1}", pbBugContestState.ballcount))
|
|
end
|
|
commands[cmdQuit = commands.length] = _INTL("Quit Contest")
|
|
else
|
|
commands[cmdSave = commands.length] = _INTL("Save") if $game_system && !$game_system.save_disabled
|
|
end
|
|
commands[cmdOption = commands.length] = _INTL("Options")
|
|
commands[cmdDebug = commands.length] = _INTL("Debug") if $DEBUG
|
|
commands[cmdEndGame = commands.length] = _INTL("Quit Game")
|
|
loop do
|
|
command = @scene.pbShowCommands(commands)
|
|
if cmdPokedex >= 0 && command == cmdPokedex
|
|
pbPlayDecisionSE
|
|
if Settings::USE_CURRENT_REGION_DEX
|
|
pbFadeOutIn {
|
|
scene = PokemonPokedex_Scene.new
|
|
screen = PokemonPokedexScreen.new(scene)
|
|
screen.pbStartScreen
|
|
@scene.pbRefresh
|
|
}
|
|
else
|
|
#if $Trainer.pokedex.accessible_dexes.length == 1
|
|
$PokemonGlobal.pokedexDex = $Trainer.pokedex.accessible_dexes[0]
|
|
pbFadeOutIn {
|
|
scene = PokemonPokedex_Scene.new
|
|
screen = PokemonPokedexScreen.new(scene)
|
|
screen.pbStartScreen
|
|
@scene.pbRefresh
|
|
}
|
|
# else
|
|
# pbFadeOutIn {
|
|
# scene = PokemonPokedexMenu_Scene.new
|
|
# screen = PokemonPokedexMenuScreen.new(scene)
|
|
# screen.pbStartScreen
|
|
# @scene.pbRefresh
|
|
# }
|
|
# end
|
|
end
|
|
elsif cmdPokemon >= 0 && command == cmdPokemon
|
|
pbPlayDecisionSE
|
|
hiddenmove = nil
|
|
pbFadeOutIn {
|
|
sscene = PokemonParty_Scene.new
|
|
sscreen = PokemonPartyScreen.new(sscene, $Trainer.party)
|
|
hiddenmove = sscreen.pbPokemonScreen
|
|
(hiddenmove) ? @scene.pbEndScene : @scene.pbRefresh
|
|
}
|
|
if hiddenmove
|
|
$game_temp.in_menu = false
|
|
pbUseHiddenMove(hiddenmove[0], hiddenmove[1])
|
|
return
|
|
end
|
|
elsif cmdBag >= 0 && command == cmdBag
|
|
pbPlayDecisionSE
|
|
item = nil
|
|
pbFadeOutIn {
|
|
scene = PokemonBag_Scene.new
|
|
screen = PokemonBagScreen.new(scene, $PokemonBag)
|
|
item = screen.pbStartScreen
|
|
(item) ? @scene.pbEndScene : @scene.pbRefresh
|
|
}
|
|
if item
|
|
$game_temp.in_menu = false
|
|
pbUseKeyItemInField(item)
|
|
return
|
|
end
|
|
elsif cmdPokegear >= 0 && command == cmdPokegear
|
|
pbPlayDecisionSE
|
|
pbFadeOutIn {
|
|
scene = PokemonPokegear_Scene.new
|
|
screen = PokemonPokegearScreen.new(scene)
|
|
screen.pbStartScreen
|
|
@scene.pbRefresh
|
|
}
|
|
elsif cmdTrainer >= 0 && command == cmdTrainer
|
|
pbPlayDecisionSE
|
|
pbFadeOutIn {
|
|
scene = PokemonTrainerCard_Scene.new
|
|
screen = PokemonTrainerCardScreen.new(scene)
|
|
screen.pbStartScreen
|
|
@scene.pbRefresh
|
|
}
|
|
elsif cmdQuit >= 0 && command == cmdQuit
|
|
@scene.pbHideMenu
|
|
if pbInSafari?
|
|
if pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?"))
|
|
@scene.pbEndScene
|
|
pbSafariState.decision = 1
|
|
pbSafariState.pbGoToStart
|
|
return
|
|
else
|
|
pbShowMenu
|
|
end
|
|
else
|
|
if pbConfirmMessage(_INTL("Would you like to end the Contest now?"))
|
|
@scene.pbEndScene
|
|
pbBugContestState.pbStartJudging
|
|
return
|
|
else
|
|
pbShowMenu
|
|
end
|
|
end
|
|
elsif cmdSave >= 0 && command == cmdSave
|
|
@scene.pbHideMenu
|
|
scene = PokemonSave_Scene.new
|
|
screen = PokemonSaveScreen.new(scene)
|
|
if screen.pbSaveScreen
|
|
@scene.pbEndScene
|
|
endscene = false
|
|
break
|
|
else
|
|
pbShowMenu
|
|
end
|
|
elsif cmdOption >= 0 && command == cmdOption
|
|
pbPlayDecisionSE
|
|
pbFadeOutIn {
|
|
scene = PokemonOption_Scene.new
|
|
screen = PokemonOptionScreen.new(scene)
|
|
screen.pbStartScreen
|
|
pbUpdateSceneMap
|
|
@scene.pbRefresh
|
|
}
|
|
elsif cmdDebug >= 0 && command == cmdDebug
|
|
pbPlayDecisionSE
|
|
pbFadeOutIn {
|
|
pbDebugMenu
|
|
@scene.pbRefresh
|
|
}
|
|
elsif cmdEndGame >= 0 && command == cmdEndGame
|
|
@scene.pbHideMenu
|
|
if pbConfirmMessage(_INTL("Are you sure you want to quit the game and return to the main menu?"))
|
|
scene = PokemonSave_Scene.new
|
|
screen = PokemonSaveScreen.new(scene)
|
|
screen.pbSaveScreen
|
|
$game_temp.to_title = true
|
|
return
|
|
else
|
|
pbShowMenu
|
|
end
|
|
else
|
|
pbPlayCloseMenuSE
|
|
break
|
|
end
|
|
end
|
|
@scene.pbEndScene if endscene
|
|
end
|
|
end
|