mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
148 lines
4.5 KiB
Ruby
148 lines
4.5 KiB
Ruby
#===============================================================================
|
|
#
|
|
#===============================================================================
|
|
class PokemonJukebox_Scene
|
|
def pbUpdate
|
|
pbUpdateSpriteHash(@sprites)
|
|
end
|
|
|
|
def pbStartScene(commands)
|
|
@commands = commands
|
|
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
|
@viewport.z = 99999
|
|
@sprites = {}
|
|
@sprites["background"] = IconSprite.new(0, 0, @viewport)
|
|
@sprites["background"].setBitmap("Graphics/UI/jukebox_bg")
|
|
@sprites["header"] = Window_UnformattedTextPokemon.newWithSize(
|
|
_INTL("Jukebox"), 2, -18, 128, 64, @viewport
|
|
)
|
|
@sprites["header"].baseColor = Color.new(248, 248, 248)
|
|
@sprites["header"].shadowColor = Color.black
|
|
@sprites["header"].windowskin = nil
|
|
@sprites["commands"] = Window_CommandPokemon.newWithSize(
|
|
@commands, 94, 92, 324, 224, @viewport
|
|
)
|
|
@sprites["commands"].windowskin = nil
|
|
pbFadeInAndShow(@sprites) { pbUpdate }
|
|
end
|
|
|
|
def pbScene
|
|
ret = -1
|
|
loop do
|
|
Graphics.update
|
|
Input.update
|
|
pbUpdate
|
|
if Input.trigger?(Input::BACK)
|
|
break
|
|
elsif Input.trigger?(Input::USE)
|
|
ret = @sprites["commands"].index
|
|
break
|
|
end
|
|
end
|
|
return ret
|
|
end
|
|
|
|
def pbSetCommands(newcommands, newindex)
|
|
@sprites["commands"].commands = (!newcommands) ? @commands : newcommands
|
|
@sprites["commands"].index = newindex
|
|
end
|
|
|
|
def pbEndScene
|
|
pbFadeOutAndHide(@sprites) { pbUpdate }
|
|
pbDisposeSpriteHash(@sprites)
|
|
@viewport.dispose
|
|
end
|
|
end
|
|
|
|
#===============================================================================
|
|
#
|
|
#===============================================================================
|
|
class PokemonJukeboxScreen
|
|
def initialize(scene)
|
|
@scene = scene
|
|
end
|
|
|
|
def pbStartScreen
|
|
commands = []
|
|
cmdMarch = -1
|
|
cmdLullaby = -1
|
|
cmdOak = -1
|
|
cmdCustom = -1
|
|
cmdTurnOff = -1
|
|
commands[cmdMarch = commands.length] = _INTL("Play: Pokémon March")
|
|
commands[cmdLullaby = commands.length] = _INTL("Play: Pokémon Lullaby")
|
|
commands[cmdOak = commands.length] = _INTL("Play: Oak")
|
|
commands[cmdCustom = commands.length] = _INTL("Play: Custom...")
|
|
commands[cmdTurnOff = commands.length] = _INTL("Stop")
|
|
commands[commands.length] = _INTL("Exit")
|
|
@scene.pbStartScene(commands)
|
|
loop do
|
|
cmd = @scene.pbScene
|
|
if cmd < 0
|
|
pbPlayCloseMenuSE
|
|
break
|
|
elsif cmdMarch >= 0 && cmd == cmdMarch
|
|
pbPlayDecisionSE
|
|
pbBGMPlay("Radio - March", 100, 100)
|
|
if $PokemonMap
|
|
$PokemonMap.lower_encounter_rate = false
|
|
$PokemonMap.higher_encounter_rate = true
|
|
end
|
|
elsif cmdLullaby >= 0 && cmd == cmdLullaby
|
|
pbPlayDecisionSE
|
|
pbBGMPlay("Radio - Lullaby", 100, 100)
|
|
if $PokemonMap
|
|
$PokemonMap.lower_encounter_rate = true
|
|
$PokemonMap.higher_encounter_rate = false
|
|
end
|
|
elsif cmdOak >= 0 && cmd == cmdOak
|
|
pbPlayDecisionSE
|
|
pbBGMPlay("Radio - Oak", 100, 100)
|
|
if $PokemonMap
|
|
$PokemonMap.lower_encounter_rate = false
|
|
$PokemonMap.higher_encounter_rate = false
|
|
end
|
|
elsif cmdCustom >= 0 && cmd == cmdCustom
|
|
pbPlayDecisionSE
|
|
files = []
|
|
Dir.chdir("Audio/BGM/") do
|
|
Dir.glob("*.ogg") { |f| files.push(f) }
|
|
Dir.glob("*.wav") { |f| files.push(f) }
|
|
Dir.glob("*.mid") { |f| files.push(f) }
|
|
Dir.glob("*.midi") { |f| files.push(f) }
|
|
end
|
|
files.map! { |f| File.basename(f, ".*") }
|
|
files.uniq!
|
|
files.sort! { |a, b| a.downcase <=> b.downcase }
|
|
@scene.pbSetCommands(files, 0)
|
|
loop do
|
|
cmd2 = @scene.pbScene
|
|
if cmd2 < 0
|
|
pbPlayCancelSE
|
|
break
|
|
end
|
|
pbPlayDecisionSE
|
|
$game_system.setDefaultBGM(files[cmd2])
|
|
if $PokemonMap
|
|
$PokemonMap.lower_encounter_rate = false
|
|
$PokemonMap.higher_encounter_rate = false
|
|
end
|
|
end
|
|
@scene.pbSetCommands(nil, cmdCustom)
|
|
elsif cmdTurnOff >= 0 && cmd == cmdTurnOff
|
|
pbPlayDecisionSE
|
|
$game_system.setDefaultBGM(nil)
|
|
pbBGMPlay(pbResolveAudioFile($game_map.bgm_name, $game_map.bgm.volume, $game_map.bgm.pitch))
|
|
if $PokemonMap
|
|
$PokemonMap.lower_encounter_rate = false
|
|
$PokemonMap.higher_encounter_rate = false
|
|
end
|
|
else # Exit
|
|
pbPlayCloseMenuSE
|
|
break
|
|
end
|
|
end
|
|
@scene.pbEndScene
|
|
end
|
|
end
|