Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #=====================================================================================
- # * 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
- # * Version: 2.1
- #===================================================================================
- MENUANIMATION = true # true, if you want to keep the Open/Close Animation,
- # false, if you don't want it.
- ICONMENUANIMATION = true # true, if you want to keep the Icon Animation, if an
- # Icon is selected, or false if you don't want it.
- BW2OPTIONSCENE = false # do not change. it's just to bypass an error.
- #===============================================================================
- # * class PokemonMenu_Scene
- #===============================================================================
- class PokemonMenu_Scene
- #===============================================================================
- # * STARTING THE SCENE
- #===============================================================================
- def pbStartScene
- @MenuScene=1; @frame=0; @frame2=0
- pbSetViableDexes
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @sprites={}
- @sprites["bg"]=IconSprite.new(0,0,@viewport)
- @sprites["bg"].setBitmap("Graphics/Pictures/Menu/background")
- @sprites["bg2"]=IconSprite.new(0,0,@viewport)
- @sprites["bg2"].setBitmap("Graphics/Pictures/Menu/background2")
- @sprites["bg2"].y=0
- @sprites["bg2"].y = -32 if MENUANIMATION==true
- @sprites["bg3"]=IconSprite.new(0,0,@viewport)
- @sprites["bg3"].setBitmap("Graphics/Pictures/Menu/background3")
- @sprites["bg3"].y = 384-48
- @sprites["bg3"].y = 336+48 if MENUANIMATION==true
- @sprites["panel_1"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_1"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_1"].x = 3
- @sprites["panel_1"].y = 47
- @sprites["panel_1"].y = 47 +200 if MENUANIMATION==true
- @sprites["panel_2"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_2"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_2"].x = 261
- @sprites["panel_2"].y = 47
- @sprites["panel_2"].y = 47 +200 if MENUANIMATION==true
- @sprites["panel_3"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_3"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_3"].x = 3
- @sprites["panel_3"].y = 143
- @sprites["panel_3"].y = 143 +200 if MENUANIMATION==true
- @sprites["panel_4"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_4"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_4"].x = 261
- @sprites["panel_4"].y = 143
- @sprites["panel_4"].y = 143 +200 if MENUANIMATION==true
- @sprites["panel_5"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_5"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_5"].x = 3
- @sprites["panel_5"].y = 241
- @sprites["panel_5"].y = 241 +200 if MENUANIMATION==true
- @sprites["panel_6"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_6"].setBitmap("Graphics/Pictures/Menu/panel")
- @sprites["panel_6"].x = 261
- @sprites["panel_6"].y = 241
- @sprites["panel_6"].y = 241 +200 if MENUANIMATION==true
- @sprites["panel_select"]=IconSprite.new(0,0,@viewport)
- @sprites["panel_select"].setBitmap("Graphics/Pictures/Menu/panel2")
- @sprites["panel_select"].x = 5000
- @sprites["panel_select"].y = 48
- @sprites["party"]=IconSprite.new(0,0,@viewport)
- @sprites["party"].setBitmap("Graphics/Pictures/Menu/party")
- @sprites["party"].x = 5000
- @sprites["party"].x = 9 if $Trainer.party.length>0
- @sprites["party"].y = 62
- @sprites["pokedex"]=IconSprite.new(0,0,@viewport)
- @sprites["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex")
- @sprites["pokedex"].x = 5000
- @sprites["pokedex"].x = 267 if $Trainer.pokedex
- @sprites["pokedex"].y = 56
- @sprites["bag"]=IconSprite.new(0,0,@viewport)
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag")
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag_f") if $Trainer.isFemale?
- @sprites["bag"].x = 10
- @sprites["bag"].y = 159
- @sprites["trainercard"]=IconSprite.new(0,0,@viewport)
- @sprites["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard")
- @sprites["trainercard"].x = 268
- @sprites["trainercard"].y = 157
- @sprites["save"]=IconSprite.new(0,0,@viewport)
- @sprites["save"].setBitmap("Graphics/Pictures/Menu/save")
- @sprites["save"].x = 10
- @sprites["save"].y = 255
- @sprites["options"]=IconSprite.new(0,0,@viewport)
- @sprites["options"].setBitmap("Graphics/Pictures/Menu/options")
- @sprites["options"].x = 268
- @sprites["options"].y = 253
- @sprites["exit"]=IconSprite.new(0,0,@viewport)
- @sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit")
- @sprites["exit"].x = 459
- @sprites["exit"].y = 346
- @sprites["overlay"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
- @sprites["overlay2"]=BitmapSprite.new(Graphics.width, Graphics.height, @viewport)
- if $Trainer.party.length>0
- @select=1
- end
- if $Trainer.party.length==0 && $Trainer.pokedex
- @select=2
- end
- if $Trainer.party.length==0 && !$Trainer.pokedex
- @select=3
- end
- endscene=true
- pbStartAnimation
- end
- #===============================================================================
- # * MENU TEXT DISPLAYING
- #===============================================================================
- def pbMenuText
- if @MenuScene==1
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- baseColor=Color.new(255, 255, 255)
- shadowColor=Color.new(0,0,0)
- shadowColor2=Color.new(156,156,156)
- pbSetSystemFont(@sprites["overlay"].bitmap)
- textos=[]
- textos.push([_ISPRINTF("{1:02d} {2:02d}", Time.now.hour, Time.now.min),15,-3,false,baseColor,shadowColor])
- textos.push([_INTL("POKÉMON"),98,80,false,baseColor,shadowColor2]) if $Trainer.party.length>0
- textos.push([_INTL("POKÉDEX"),354,80,false,baseColor,shadowColor2]) if $Trainer.pokedex
- textos.push([_INTL("BAG"),98,175,false,baseColor,shadowColor2])
- textos.push([_INTL("{1}", $Trainer.name),354,175,false,baseColor,shadowColor2])
- textos.push([_INTL("SAVE"),98,275,false,baseColor,shadowColor2])
- textos.push([_INTL("OPTIONS"),354,275,false,baseColor,shadowColor2])
- pbDrawTextPositions(overlay,textos)
- overlay2=@sprites["overlay2"].bitmap
- overlay2.clear
- pbSetSystemFont(@sprites["overlay2"].bitmap)
- textos2=[]
- textos2.push([_ISPRINTF(" : "),2,-4,false,baseColor,shadowColor])
- pbDrawTextPositions(overlay2,textos2)
- end
- end
- #===============================================================================
- # * MENU LOOP
- #===============================================================================
- def pbMenuLoop
- while @MenuScene==1
- self.update
- self.pbMenuInput
- self.pbMenuText
- if $MenuClose==true
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- $MenuClose=false
- @MenuScene=2
- end
- end
- end
- #===============================================================================
- # * HIDING THE MENU
- #===============================================================================
- def pbHideMenu
- @viewport.visible=false
- end
- #===============================================================================
- # * SHOWING THE MENU
- #===============================================================================
- def pbShowMenu
- @viewport.visible=true
- end
- #===============================================================================
- # * STARTING THE SCENE
- #===============================================================================
- def pbStartAnimation
- pbSEPlay("BW2OpenMenu")
- if MENUANIMATION==true
- @sprites["overlay"].visible=false
- @sprites["panel_1"].visible=false
- @sprites["panel_2"].visible=false
- @sprites["panel_3"].visible=false
- @sprites["panel_4"].visible=false
- @sprites["panel_5"].visible=false
- @sprites["panel_6"].visible=false
- @sprites["panel_select"].visible=false
- @sprites["party"].visible=false
- @sprites["pokedex"].visible=false
- @sprites["bag"].visible=false
- @sprites["trainercard"].visible=false
- @sprites["save"].visible=false
- @sprites["options"].visible=false
- @sprites["exit"].visible=false
- 10.times do
- @sprites["bg2"].y += 3.2
- @sprites["bg3"].y -= 5.3
- Graphics.update
- Input.update
- end
- @sprites["bg2"].y = 0
- @sprites["bg3"].y = 384-48
- pbWait(5)
- @sprites["panel_1"].visible=true if $Trainer.party.length>0
- @sprites["panel_2"].visible=true if $Trainer.pokedex
- @sprites["panel_3"].visible=true
- @sprites["panel_4"].visible=true
- @sprites["panel_5"].visible=true
- @sprites["panel_6"].visible=true
- 20.times do
- @sprites["panel_1"].y -= 10
- @sprites["panel_2"].y -= 10
- @sprites["panel_3"].y -= 10
- @sprites["panel_4"].y -= 10
- @sprites["panel_5"].y -= 10
- @sprites["panel_6"].y -= 10
- Graphics.update
- Input.update
- end
- pbWait(5)
- @sprites["overlay"].visible=true
- @sprites["panel_select"].visible=true
- @sprites["party"].visible=true if $Trainer.party.length>0
- @sprites["pokedex"].visible=true if $Trainer.pokedex
- @sprites["bag"].visible=true
- @sprites["trainercard"].visible=true
- @sprites["save"].visible=true
- @sprites["options"].visible=true
- @sprites["exit"].visible=true
- end
- self.pbMenuLoop
- end
- #===============================================================================
- # * CLOSING THE SCENE
- #===============================================================================
- def pbEndScene
- @MenuScene=0
- if MENUANIMATION==true
- @sprites["overlay"].visible=false if @sprites["overlay"]
- @sprites["overlay2"].visible=false if @sprites["overlay2"]
- @sprites["panel_select"].visible=false if @sprites["panel_select"]
- @sprites["party"].visible=false if @sprites["party"]
- @sprites["pokedex"].visible=false if @sprites["pokedex"]
- @sprites["bag"].visible=false if @sprites["bag"]
- @sprites["trainercard"].visible=false if @sprites["trainercard"]
- @sprites["save"].visible=false if @sprites["save"]
- @sprites["options"].visible=false if @sprites["options"]
- @sprites["exit"].visible=false if @sprites["exit"]
- pbWait(5)
- 20.times do
- @sprites["panel_1"].y += 10 if @sprites["panel_1"]
- @sprites["panel_2"].y += 10 if @sprites["panel_2"]
- @sprites["panel_3"].y += 10 if @sprites["panel_3"]
- @sprites["panel_4"].y += 10 if @sprites["panel_4"]
- @sprites["panel_5"].y += 10 if @sprites["panel_5"]
- @sprites["panel_6"].y += 10 if @sprites["panel_6"]
- Graphics.update
- Input.update
- end
- @sprites["panel_1"].visible=false if @sprites["panel_1"]
- @sprites["panel_2"].visible=false if @sprites["panel_2"]
- @sprites["panel_3"].visible=false if @sprites["panel_3"]
- @sprites["panel_4"].visible=false if @sprites["panel_4"]
- @sprites["panel_5"].visible=false if @sprites["panel_5"]
- @sprites["panel_6"].visible=false if @sprites["panel_6"]
- 10.times do
- @sprites["bg2"].y -= 3.2 if @sprites["bg2"]
- @sprites["bg3"].y += 5.3 if @sprites["bg3"]
- Graphics.update
- Input.update
- end
- end
- pbSEPlay("BW2CloseMenu")
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- end
- #===============================================================================
- # * Update Method
- #===============================================================================
- def update
- Graphics.update
- Input.update
- @frame+=1
- @sprites["party"].x=12 if $Trainer.party.length>0
- @sprites["pokedex"].x=269 if $Trainer.pokedex
- @frame=0 if @frame>=20
- frame=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]
- @count=frame[@frame]
- if (MENUANIMATION==true) && $PokemonSystem.screensize==1
- @sprites["party"].y-=0.5 if @select==1 && @count==0
- @sprites["party"].y+=0.5 if @select==1 && @count==1
- @sprites["party"].y=62 if @select != 1 && $Trainer.party.length>0
- @sprites["pokedex"].y-=0.5 if @select==2 && @count==0
- @sprites["pokedex"].y+=0.5 if @select==2 && @count==1
- @sprites["pokedex"].y=56 if @select != 2 && $Trainer.pokedex
- @sprites["bag"].y-=0.5 if @select==3 && @count==0
- @sprites["bag"].y+=0.5 if @select==3 && @count==1
- @sprites["bag"].y=159 if @select != 3
- @sprites["trainercard"].y-=0.5 if @select==4 && @count==0
- @sprites["trainercard"].y+=0.5 if @select==4 && @count==1
- @sprites["trainercard"].y=157 if @select != 4
- @sprites["save"].y-=0.5 if @select==5 && @count==0
- @sprites["save"].y+=0.5 if @select==5 && @count==1
- @sprites["save"].y=255 if @select != 5
- @sprites["options"].y-=0.5 if @select==6 && @count==0
- @sprites["options"].y+=0.5 if @select==6 && @count==1
- @sprites["options"].y=253 if @select != 6
- @frame2+=1
- @frame2=0 if @frame2>=40
- @sprites["overlay2"].visible=true if @frame2<=20
- @sprites["overlay2"].visible=false if @frame2>20
- end
- x=[5000,5,263,5,263,5,263,5000]
- y=[5000,49,49,145,145,243,243,5000]
- y=[5000,5000,49,145,145,243,243,5000] if $Trainer.party.length==0 && $Trainer.pokedex
- y=[5000,49,5000,145,145,243,243,5000] if $Trainer.party.length>0 && $Trainer.pokedex
- y=[5000,5000,5000,145,145,243,243,5000] if $Trainer.party.length==0 && !$Trainer.pokedex
- @sprites["panel_select"].x = x[@select]
- @sprites["panel_select"].y = y[@select]
- @sprites["panel_select"].visible=true
- if @select==1
- @sprites["party"].setBitmap("Graphics/Pictures/Menu/party2")
- else
- @sprites["party"].setBitmap("Graphics/Pictures/Menu/party")
- end
- if @select==2
- @sprites["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex2")
- else
- @sprites["pokedex"].setBitmap("Graphics/Pictures/Menu/pokedex")
- end
- if @select==3
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag2")
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag2_f") if $Trainer.isFemale?
- else
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag")
- @sprites["bag"].setBitmap("Graphics/Pictures/Menu/bag_f") if $Trainer.isFemale?
- end
- if @select==4
- @sprites["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard2")
- else
- @sprites["trainercard"].setBitmap("Graphics/Pictures/Menu/trainercard")
- end
- if @select==5
- @sprites["save"].setBitmap("Graphics/Pictures/Menu/save2")
- else
- @sprites["save"].setBitmap("Graphics/Pictures/Menu/save")
- end
- if @select==6
- @sprites["options"].setBitmap("Graphics/Pictures/Menu/options2")
- else
- @sprites["options"].setBitmap("Graphics/Pictures/Menu/options")
- end
- if @select==7
- @sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit2")
- else
- @sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit")
- end
- if $Trainer.party.length>0
- @sprites["panel_1"].visible=true
- @sprites["party"].visible=true
- else
- x[1]=5000
- @select=2 if @select==1
- @sprites["panel_1"].visible=false
- @sprites["party"].visible=false
- end
- if $Trainer.pokedex
- @sprites["panel_2"].visible=true
- @sprites["pokedex"].visible=true
- else
- x[2]=5000
- @select=3 if @select==2
- @sprites["panel_2"].visible=false
- @sprites["pokedex"].visible=false
- end
- end
- #===============================================================================
- # * Menu Left Click Animation
- #===============================================================================
- def pbMenuClick
- pbWait(10)
- @sprites["panel_select"].visible=false
- pbWait(5)
- self.update
- end
- #===============================================================================
- # * Menu Left Click Animation on the Exit Button
- #===============================================================================
- def pbMenuClickExit
- @sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit2")
- pbWait(10)
- @sprites["exit"].setBitmap("Graphics/Pictures/Menu/exit")
- pbWait(5)
- end
- #===============================================================================
- # * Button Inputs
- #===============================================================================
- def pbMenuInput
- if Input.trigger?(Input::RIGHT) && !(@select==7)
- @select+=1; pbSEPlay("BW2MenuSelect")
- end
- if Input.trigger?(Input::LEFT) && !(@select==1)
- @select-=1; pbSEPlay("BW2MenuSelect")
- end
- if Input.trigger?(Input::DOWN) && !(@select>4)
- @select+=2; pbSEPlay("BW2MenuSelect")
- end
- if Input.trigger?(Input::UP) && !(@select<3)
- @select-=2; pbSEPlay("BW2MenuSelect")
- end
- if Input.trigger?(Input::UP) && @select==7
- @select-=1; pbSEPlay("BW2MenuSelect")
- end
- for i in 1..6
- if defined?($mouse)
- if $mouse.leftClick?(@sprites["panel_#{i}"])
- @select=i
- self.update
- self.pbMenuClick
- self.pokemonParty if @select==1
- self.pokeDex if @select==2
- self.bag if @select==3
- self.trainerCard if @select==4
- self.save if @select==5
- self.options if @select==6
- end
- end
- end
- if defined?($mouse)
- if $mouse.leftClick?(@sprites["exit"])
- self.pbMenuClickExit
- pbEndScene
- end
- end
- if Input.trigger?(Input::F9) && $DEBUG
- pbFadeOutIn(99999) {
- pbDebugMenu
- }
- end
- if Input.trigger?(Input::B)
- self.pbMenuClickExit
- pbEndScene
- 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.pbMenuClickExit
- pbEndScene
- end
- end
- end
- #===============================================================================
- # * MENU SCENE'S
- #===============================================================================
- def pokemonParty
- pbSEPlay("BW2MenuChoose")
- sscene=PokemonScreen_Scene.new
- sscreen=PokemonScreen.new(sscene,$Trainer.party)
- hiddenmove=nil
- pbFadeOutIn(99999) {
- hiddenmove=sscreen.pbPokemonScreen
- if hiddenmove
- pbEndScene
- end
- }
- if hiddenmove
- Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
- return
- end
- end
- def pokeDex
- pbSEPlay("BW2MenuChoose")
- if DEXDEPENDSONLOCATION
- pbFadeOutIn(99999) {
- scene=PokemonPokedexScene.new
- screen=PokemonPokedex.new(scene)
- screen.pbStartScreen
- }
- elsif $PokemonGlobal.pokedexViable.length==1
- $PokemonGlobal.pokedexDex=$PokemonGlobal.pokedexViable[0]
- $PokemonGlobal.pokedexDex=-1
- $PokemonGlobal.pokedexDex==$PokemonGlobal.pokedexUnlocked.length-1
- pbFadeOutIn(99999) {
- scene=PokemonPokedexScene.new
- screen=PokemonPokedex.new(scene)
- screen.pbStartScreen
- pbRefresh
- }
- # else
- # pbLoadRpgxpScene(Scene_PokedexMenu.new)
- end
- end
- def bag
- pbSEPlay("BW2MenuChoose")
- item=0
- scene=PokemonBag_Scene.new
- screen=PokemonBagScreen.new(scene,$PokemonBag)
- pbFadeOutIn(99999) {
- item=screen.pbStartScreen
- if item>0
- pbEndScene
- else
- 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
- }
- }
- end
- def save
- pbSEPlay("BW2MenuChoose")
- pbHideMenu
- scene=PokemonSaveScene.new
- screen=PokemonSave.new(scene)
- if screen.pbSaveScreen
- pbShowMenu
- else
- pbShowMenu
- end
- end
- def options
- pbSEPlay("BW2MenuChoose")
- if BW2OPTIONSCENE
- pbFadeOutIn(99999) {
- BW2Options.new
- }
- else
- scene=PokemonOptionScene.new
- screen=PokemonOption.new(scene)
- pbFadeOutIn(99999) {
- screen.pbStartScreen
- pbUpdateSceneMap
- }
- end
- end
- def quit
- pbHideMenu
- if pbInSafari?
- if Kernel.pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?"))
- pbEndScene
- pbSafariState.decision=1
- pbSafariState.pbGoToStart
- return
- else
- pbShowMenu
- end
- end
- if pbInBugContest?
- if Kernel.pbConfirmMessage(_INTL("Would you like to end the Contest now?"))
- pbEndScene
- pbBugContestState.pbStartJudging
- return
- else
- pbShowMenu
- end
- end
- end
- end
- #===============================================================================
- # * class PokemonMenu
- #===============================================================================
- class PokemonMenu
- #===============================================================================
- # * SHOWING THE MENU
- #===============================================================================
- def pbShowMenu
- @scene.pbShowMenu
- end
- #===============================================================================
- # * STARTING THE MENU
- #===============================================================================
- def pbStartPokemonMenu
- @scene.pbStartScene
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement