#=====================================================================================
# * Pokémon Menu like in Black and White by shiney570, with Scripting help of Luka S.J
#
# * To get this Script work, but it in a new Script above Main.
#* This Script overwrites some Methods from the Old Menu, and add new ones to it.
# * Put the Graphics in the Graphics/Pictures/menu folder.
# * If you have any questions or found a bug let me know.
# * Contact: Skype: imatrix.wt ; DeviantArt: shiney570
# * The Debug Scene is now accessable with F9
#===================================================================================
class PokemonMenu_Scene
attr_accessor :sprites
def pbStartScene
#=====================================================================================
# * SPRITE SECTION
#=====================================================================================
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
[MENTION=24071]Sprite[/MENTION]s={}
[MENTION=24071]Sprite[/MENTION]s["bg"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["bg"].setBitmap("Graphics/Pictures/Menu/background")
[MENTION=24071]Sprite[/MENTION]s["bg2"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["bg2"].setBitmap("Graphics/Pictures/Menu/background2")
[MENTION=24071]Sprite[/MENTION]s["bg2"].y = -32
[MENTION=24071]Sprite[/MENTION]s["bg3"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["bg3"].setBitmap("Graphics/Pictures/Menu/background3")
[MENTION=24071]Sprite[/MENTION]s["bg3"].y = 336+48
[MENTION=24071]Sprite[/MENTION]s["batery"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["batery"].setBitmap("Graphics/Pictures/Menu/batery")
[MENTION=24071]Sprite[/MENTION]s["batery"].x = 456
[MENTION=24071]Sprite[/MENTION]s["batery"].y = 2
[MENTION=24071]Sprite[/MENTION]s["panel_1"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_1"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_1"].x = 4
[MENTION=24071]Sprite[/MENTION]s["panel_1"].y = 48 +200
[MENTION=24071]Sprite[/MENTION]s["panel_2"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_2"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_2"].x = 260
[MENTION=24071]Sprite[/MENTION]s["panel_2"].y = 48 +200
[MENTION=24071]Sprite[/MENTION]s["panel_3"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_3"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_3"].x = 4
[MENTION=24071]Sprite[/MENTION]s["panel_3"].y = 144 +200
[MENTION=24071]Sprite[/MENTION]s["panel_4"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_4"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_4"].x = 260
[MENTION=24071]Sprite[/MENTION]s["panel_4"].y = 144 +200
[MENTION=24071]Sprite[/MENTION]s["panel_5"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_5"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_5"].x = 4
[MENTION=24071]Sprite[/MENTION]s["panel_5"].y = 240 +200
[MENTION=24071]Sprite[/MENTION]s["panel_6"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_6"].setBitmap("Graphics/Pictures/Menu/panel")
[MENTION=24071]Sprite[/MENTION]s["panel_6"].x = 260
[MENTION=24071]Sprite[/MENTION]s["panel_6"].y = 240 +200
[MENTION=24071]Sprite[/MENTION]s["panel_select"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["panel_select"].setBitmap("Graphics/Pictures/Menu/panel2")
[MENTION=24071]Sprite[/MENTION]s["panel_select"].x = 5000 + 4
[MENTION=24071]Sprite[/MENTION]s["panel_select"].y = 48
[MENTION=24071]Sprite[/MENTION]s["party"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["party"].setBitmap("Graphics/Pictures/Menu/party")
[MENTION=24071]Sprite[/MENTION]s["party"].x = 12
[MENTION=24071]Sprite[/MENTION]s["party"].y = 66
[MENTION=24071]Sprite[/MENTION]s["pokedex"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex")
[MENTION=24071]Sprite[/MENTION]s["pokedex"].x = 268
[MENTION=24071]Sprite[/MENTION]s["pokedex"].y = 56
[MENTION=24071]Sprite[/MENTION]s["bag"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["bag"].setBitmap("Graphics/Pictures/Menu/bag")
[MENTION=24071]Sprite[/MENTION]s["bag"].x = 12
[MENTION=24071]Sprite[/MENTION]s["bag"].y = 160
[MENTION=24071]Sprite[/MENTION]s["trainercard"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard")
[MENTION=24071]Sprite[/MENTION]s["trainercard"].x = 268
[MENTION=24071]Sprite[/MENTION]s["trainercard"].y = 158
[MENTION=24071]Sprite[/MENTION]s["save"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["save"].setBitmap("Graphics/Pictures/Menu/save")
[MENTION=24071]Sprite[/MENTION]s["save"].x = 12
[MENTION=24071]Sprite[/MENTION]s["save"].y = 254
[MENTION=24071]Sprite[/MENTION]s["options"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["options"].setBitmap("Graphics/Pictures/Menu/options")
[MENTION=24071]Sprite[/MENTION]s["options"].x = 268
[MENTION=24071]Sprite[/MENTION]s["options"].y = 252
[MENTION=24071]Sprite[/MENTION]s["exit"]=IconSprite.new(0,0,@viewport)
[MENTION=24071]Sprite[/MENTION]s["exit"].setBitmap("Graphics/Pictures/Menu/exit")
[MENTION=24071]Sprite[/MENTION]s["exit"].x = 458
[MENTION=24071]Sprite[/MENTION]s["exit"].y = 346
[MENTION=24071]Sprite[/MENTION]s["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
#=====================================================================================
# * TEXT SECTION - Edit the names in the "" to change the text.
#=====================================================================================
overlay= [MENTION=24071]Sprite[/MENTION]s["overlay"].bitmap
overlay.clear
baseColor=Color.new(255, 255, 255)
shadowColor=Color.new(0,0,0)
shadowColor2=Color.new(156,156,156)
pbSetSystemFont [MENTION=24071]Sprite[/MENTION]s["overlay"].bitmap)
textos=[]
textos.push([_ISPRINTF("{1:02d} {2:02d}", Time.now.hour, Time.now.min),15,-4,false,baseColor,shadowColor])
textos.push([_ISPRINTF(" : "),0,-6,false,baseColor,shadowColor])
textos.push([_INTL("{1}", $Trainer.name),512/2-20,-4,false,baseColor,shadowColor])
textos.push([_INTL("POKÉMON"),100,75,false,baseColor,shadowColor2]) if $Trainer.party.length>0
textos.push([_INTL("POKÉDEX"),356,75,false,baseColor,shadowColor2]) if $Trainer.pokedex
textos.push([_INTL("BAG"),100,171,false,baseColor,shadowColor2])
textos.push([_INTL("TRAINERCARD"),356,171,false,baseColor,shadowColor2])
textos.push([_INTL("SAVE"),100,268,false,baseColor,shadowColor2])
textos.push([_INTL("OPTIONS"),356,268,false,baseColor,shadowColor2])
pbDrawTextPositions(overlay,textos)
#=====================================================================================
# * ANIMATION IF - if you dont want the Animation, just delete
# THE MENU STARTS these lines below.
#=====================================================================================
pbSEPlay("BW2OpenMenu")
[MENTION=24071]Sprite[/MENTION]s["overlay"].visible=false
[MENTION=24071]Sprite[/MENTION]s["batery"].visible = false
[MENTION=24071]Sprite[/MENTION]s["panel_1"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_2"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_3"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_4"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_5"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_6"].visible=false
[MENTION=24071]Sprite[/MENTION]s["panel_select"].visible=false
[MENTION=24071]Sprite[/MENTION]s["party"].visible=false
[MENTION=24071]Sprite[/MENTION]s["pokedex"].visible=false
[MENTION=24071]Sprite[/MENTION]s["bag"].visible=false
[MENTION=24071]Sprite[/MENTION]s["trainercard"].visible=false
[MENTION=24071]Sprite[/MENTION]s["save"].visible=false
[MENTION=24071]Sprite[/MENTION]s["options"].visible=false
[MENTION=24071]Sprite[/MENTION]s["exit"].visible=false
9.times do
[MENTION=24071]Sprite[/MENTION]s["bg2"].y += 3
[MENTION=24071]Sprite[/MENTION]s["bg3"].y -= 5
Graphics.update
Input.update
end
pbWait(5)
1.times do
[MENTION=24071]Sprite[/MENTION]s["bg2"].y += 5
[MENTION=24071]Sprite[/MENTION]s["bg3"].y -= 3
Graphics.update
Input.update
[MENTION=24071]Sprite[/MENTION]s["panel_1"].visible=true if $Trainer.party.length>0
[MENTION=24071]Sprite[/MENTION]s["panel_2"].visible=true if $Trainer.pokedex
[MENTION=24071]Sprite[/MENTION]s["panel_3"].visible=true
[MENTION=24071]Sprite[/MENTION]s["panel_4"].visible=true
[MENTION=24071]Sprite[/MENTION]s["panel_5"].visible=true
[MENTION=24071]Sprite[/MENTION]s["panel_6"].visible=true
end
20.times do
[MENTION=24071]Sprite[/MENTION]s["panel_1"].y -= 10
[MENTION=24071]Sprite[/MENTION]s["panel_2"].y -= 10
[MENTION=24071]Sprite[/MENTION]s["panel_3"].y -= 10
[MENTION=24071]Sprite[/MENTION]s["panel_4"].y -= 10
[MENTION=24071]Sprite[/MENTION]s["panel_5"].y -= 10
[MENTION=24071]Sprite[/MENTION]s["panel_6"].y -= 10
Graphics.update
Input.update
end
pbWait(5)
[MENTION=24071]Sprite[/MENTION]s["overlay"].visible=true
[MENTION=24071]Sprite[/MENTION]s["panel_select"].visible=true
[MENTION=24071]Sprite[/MENTION]s["party"].visible=true if $Trainer.party.length>0
[MENTION=24071]Sprite[/MENTION]s["pokedex"].visible=true if $Trainer.pokedex
[MENTION=24071]Sprite[/MENTION]s["bag"].visible=true
[MENTION=24071]Sprite[/MENTION]s["trainercard"].visible=true
[MENTION=24071]Sprite[/MENTION]s["save"].visible=true
[MENTION=24071]Sprite[/MENTION]s["options"].visible=true
[MENTION=24071]Sprite[/MENTION]s["exit"].visible=true
[MENTION=24071]Sprite[/MENTION]s["batery"].visible = true
end
#=====================================================================================
# * METHODS FOR HIDING AND SHOWING THE MENU - DONT DELETE/EDIT IF YOU HAVE NO CLUE
#=====================================================================================
def pbHideMenu
@viewport.visible=false
end
def pbShowMenu
Graphics.update
@viewport.visible=true
end
#=====================================================================================
# * ANIMATION IF - if you dont want the Animation, just delete
# THE MENU ENDS these lines below.
#=====================================================================================
def pbEndScene
[MENTION=24071]Sprite[/MENTION]s["overlay"].visible=false if [MENTION=24071]Sprite[/MENTION]s["overlay"]
[MENTION=24071]Sprite[/MENTION]s["panel_select"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_select"]
[MENTION=24071]Sprite[/MENTION]s["party"].visible=false if [MENTION=24071]Sprite[/MENTION]s["party"]
[MENTION=24071]Sprite[/MENTION]s["pokedex"].visible=false if [MENTION=24071]Sprite[/MENTION]s["pokedex"]
[MENTION=24071]Sprite[/MENTION]s["bag"].visible=false if [MENTION=24071]Sprite[/MENTION]s["bag"]
[MENTION=24071]Sprite[/MENTION]s["trainercard"].visible=false if [MENTION=24071]Sprite[/MENTION]s["trainercard"]
[MENTION=24071]Sprite[/MENTION]s["save"].visible=false if [MENTION=24071]Sprite[/MENTION]s["save"]
[MENTION=24071]Sprite[/MENTION]s["options"].visible=false if [MENTION=24071]Sprite[/MENTION]s["options"]
[MENTION=24071]Sprite[/MENTION]s["exit"].visible=false if [MENTION=24071]Sprite[/MENTION]s["exit"]
[MENTION=24071]Sprite[/MENTION]s["batery"].visible = false if [MENTION=24071]Sprite[/MENTION]s["batery"]
pbWait(5)
20.times do
[MENTION=24071]Sprite[/MENTION]s["panel_1"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_1"]
[MENTION=24071]Sprite[/MENTION]s["panel_2"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_2"]
[MENTION=24071]Sprite[/MENTION]s["panel_3"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_3"]
[MENTION=24071]Sprite[/MENTION]s["panel_4"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_4"]
[MENTION=24071]Sprite[/MENTION]s["panel_5"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_5"]
[MENTION=24071]Sprite[/MENTION]s["panel_6"].y += 10 if [MENTION=24071]Sprite[/MENTION]s["panel_6"]
Graphics.update
Input.update
end
[MENTION=24071]Sprite[/MENTION]s["panel_1"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_1"]
[MENTION=24071]Sprite[/MENTION]s["panel_2"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_2"]
[MENTION=24071]Sprite[/MENTION]s["panel_3"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_3"]
[MENTION=24071]Sprite[/MENTION]s["panel_4"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_4"]
[MENTION=24071]Sprite[/MENTION]s["panel_5"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_5"]
[MENTION=24071]Sprite[/MENTION]s["panel_6"].visible=false if [MENTION=24071]Sprite[/MENTION]s["panel_6"]
9.times do
[MENTION=24071]Sprite[/MENTION]s["bg2"].y -= 3 if [MENTION=24071]Sprite[/MENTION]s["bg2"]
[MENTION=24071]Sprite[/MENTION]s["bg3"].y += 5 if [MENTION=24071]Sprite[/MENTION]s["bg3"]
Graphics.update
Input.update
end
1.times do
[MENTION=24071]Sprite[/MENTION]s["bg2"].y += 5 if [MENTION=24071]Sprite[/MENTION]s["bg2"]
[MENTION=24071]Sprite[/MENTION]s["bg3"].y -= 3 if [MENTION=24071]Sprite[/MENTION]s["bg3"]
Graphics.update
Input.update
end
pbDisposeSpriteHash [MENTION=24071]Sprite[/MENTION]s)
@viewport.dispose
pbSEPlay("BW2CloseMenu")
end
end
#===================================================================================
# * Class PokemonMenu
#===================================================================================
class PokemonMenu
attr_accessor :sprite
#===================================================================================
# * SCENE PART
#===================================================================================
def pokemonParty
pbSEPlay("BW2MenuChoose")
sscene=PokemonScreen_Scene.new
sscreen=PokemonScreen.new(sscene,$Trainer.party)
hiddenmove=nil
pbFadeOutIn(99999) {
hiddenmove=sscreen.pbPokemonScreen
if hiddenmove
@scene.pbEndScene
else
@scene.pbRefresh
end
}
end
def pokeDex
pbSEPlay("BW2MenuChoose")
pbFadeOutIn(99999) {
scene=PokemonPokedexScene.new
screen=PokemonPokedex.new(scene)
screen.pbStartScreen
@scene.pbRefresh
}
end
def bag
pbSEPlay("BW2MenuChoose")
item=0
scene=PokemonBag_Scene.new
screen=PokemonBagScreen.new(scene,$PokemonBag)
pbFadeOutIn(99999) {
item=screen.pbStartScreen
if item>0
@scene.pbEndScene
else
@scene.pbRefresh
end
}
if item>0
Kernel.pbUseKeyItemInField(item)
return
end
end
def trainerCard
pbSEPlay("BW2MenuChoose")
PBDebug.logonerr {
scene=PokemonTrainerCardScene.new
screen=PokemonTrainerCard.new(scene)
pbFadeOutIn(99999) {
screen.pbStartScreen
@scene.pbRefresh
}
}
end
def save
pbSEPlay("BW2MenuChoose")
@scene.pbHideMenu
scene=PokemonSaveScene.new
screen=PokemonSave.new(scene)
if screen.pbSaveScreen
@scene.pbShowMenu#pbEndScene
endscene=false
# break
else
pbShowMenu
end
end
def options
pbSEPlay("BW2MenuChoose")
scene=PokemonOptionScene.new
screen=PokemonOption.new(scene)
pbFadeOutIn(99999) {
screen.pbStartScreen
pbUpdateSceneMap
@scene.pbRefresh
}
end
def quit
@scene.pbEndScene
end
#===================================================================================
# * LOOP FOR THE TRIGGERS
#===================================================================================
def pbStartPokemonMenu
@scene.pbStartScene
if $Trainer.party.length>0
@select = 1
end
if $Trainer.party.length==0
if $Trainer.pokedex
@select = 2
end
end
if $Trainer.party.length==0
if $Trainer.pokedex==false
@select = 3
end
end
endscene = true
x=[5000,4,260,4,260,4,260,5000]
y=[5000,48,48,144,144,240,240,5000]
loop do
Graphics.update
Input.update
@scene.sprites["panel_select"].x=x[@select]
@scene.sprites["panel_select"].y=y[@select]
if @select==1
@scene.sprites["party"].setBitmap("Graphics/Pictures/Menu/party2")
else
@scene.sprites["party"].setBitmap("Graphics/Pictures/Menu/party")
end
if @select==2
@scene.sprites["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex2")
else
@scene.sprites["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex")
end
if @select==3
@scene.sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag2")
else
@scene.sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag")
end
if @select==4
@scene.sprites["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard2")
else
@scene.sprites["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard")
end
if @select==5
@scene.sprites["save"].setBitmap("Graphics/Pictures/Menu/save2")
else
@scene.sprites["save"].setBitmap("Graphics/Pictures/Menu/save")
end
if @select==6
@scene.sprites["options"].setBitmap("Graphics/Pictures/Menu/options2")
else
@scene.sprites["options"].setBitmap("Graphics/Pictures/Menu/options")
end
if @select==7
@scene.sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit2")
else
@scene.sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit")
end
if $Trainer.party.length>0
@scene.sprites["panel_1"].visible=true
@scene.sprites["party"].visible=true
else
x[1]=5000
@select=2 if @select==1
@scene.sprites["panel_1"].visible=false
@scene.sprites["party"].visible=false
end
if $Trainer.pokedex
@scene.sprites["panel_2"].visible=true
@scene.sprites["pokedex"].visible=true
else
x[2]=5000
@select=3 if @select==2
@scene.sprites["panel_2"].visible=false
@scene.sprites["pokedex"].visible=false
end
#===================================================#
# * I N P U T S
#===================================================#
if Input.trigger?(Input::RIGHT)
@select+=1 if not @select==7
end
if Input.trigger?(Input::LEFT)
@select-=1 if not @select==1
end
if Input.trigger?(Input::DOWN)
@select+=2 if not @select>4
end
if Input.trigger?(Input::UP)
@select-=2 if not @select<3
end
if Input.trigger?(Input::UP)
@select-=1 if @select==7
end
if Input.trigger?(Input::F9)
if $DEBUG
pbFadeOutIn(99999) {
pbDebugMenu
}
end
end
if Input.trigger?(Input::B)
@scene.pbEndScene
break
end
if Input.trigger?(Input::C)
case @select
when 1 # Party
if $Trainer.party.length>0
self.pokemonParty
end
when 2 #Pokedex
if $Trainer.pokedex
self.pokeDex
end
when 3 #Bag
self.bag
when 4 #Trainercard
self.trainerCard
when 5 #Save
self.save
when 6 #Options
self.options
when 7 #Quit
self.quit
break
end
end
end
@scene.pbEndScene if endscene
end
end