Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PokemonCatchTutorialScene
- def update
- pbUpdateSpriteHash(@sprites)
- end
- def pbStartScene
- @select=0
- @var=0
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @sprites={}
- @sceneover=false
- @sprites["background"]=IconSprite.new(0,0,@viewport)
- @sprites["background"].setBitmap("Graphics/Battlebacks/battlebgField")
- @sprites["commandwindow"]=CommandMenuDisplay.new(@viewport)
- @sprites["fightwindow"]=FightMenuDisplay.new(nil,@viewport)
- @sprites["fightwindow"].visible=false
- @sprites["playerbase"]=IconSprite.new(-120,224,@viewport)
- @sprites["playerbase"].setBitmap("Graphics/Battlebacks/playerbaseField")
- @sprites["opponentbase"]=IconSprite.new(256,112,@viewport)
- @sprites["opponentbase"].setBitmap("Graphics/Battlebacks/enemybaseField")
- @sprites["player"]=AnimatedSprite.create("Graphics/Characters/trback002",5,128,@viewport)
- @sprites["player"].x=64
- @sprites["player"].y=160
- @sprites["player"].visible=true
- @opponentpoke=PokeBattle_Pokemon.new(PBSpecies::RATTATA,5,$Trainer)
- @playerpoke=PokeBattle_Pokemon.new(PBSpecies::PIDGEY,10,$Trainer)
- @sprites["opponent"]=PokemonSprite.new(@viewport)
- @sprites["opponent"].setPokemonBitmap(@opponentpoke)
- @sprites["opponent"].mirror=false
- @sprites["opponent"].color=Color.new(0,0,0,0)
- @sprites["shadow1"]=IconSprite.new(Graphics.width - 156,92,@viewport)
- @sprites["shadow1"].setBitmap("Graphics/Pictures/battleShadow")
- @sprites["shadow1"].z-=2
- pbPositionPokemonSprite(@sprites["opponent"],Graphics.width - 190,82)
- pbSEPlay("020Cry")
- Kernel.pbMessage("Wild Rattata appeared!")
- #Kernel.pbMessage("Go Pidgey!")
- #@sprites["playerpoke"]=PokemonSprite.new(@viewport)
- #@sprites["playerpoke"].setPokemonBitmap(@playerpoke,true)
- #@sprites["playerpoke"].mirror=false
- #@sprites["playerpoke"].color=Color.new(0,0,0,0)
- #@sprites["playerpoke"].x=64
- #@sprites["playerpoke"].y=160
- #@sprites["playerpoke"].visible=false
- #@sprites["ball"]=IconSprite.new(50,160,@viewport)
- #@sprites["ball"].setBitmap("Graphics/Pictures/ball00")
- #@sprites["ball"].visible=false
- #for i in 1..20
- # @sprites["player"].x-=4
- # sleep(1/5)
- # @sprites["player"].frame=(i/4).floor
- # @sprites["ball"].visible=true if i==5
- # if i%2==0
- # if i<11
- # @sprites["ball"].y-=20
- # else
- # @sprites["ball"].y+=20
- # end
- # end
- # @sprites["ball"].x+=5
- # Graphics.update
- #end
- #@sprites["ball"].visible=false
- #@sprites["playerpoke"].visible=true
- Graphics.update
- textpos=[
- ["What will",20,306,0,Color.new(64,64,64),Color.new(176,176,176)],
- [(_INTL("Dude do?")),20,336,0,Color.new(64,64,64),Color.new(176,176,176)],
- ]
- @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- pbSetSystemFont(@sprites["overlay"].bitmap)
- pbDrawTextPositions(@sprites["overlay"].bitmap,textpos)
- Graphics.update
- sleep(3/2)
- Graphics.update
- sleep(3/2)
- pbSEPlay("Choose")
- @sprites["commandwindow"].index=1
- @sprites["commandwindow"].refresh
- Graphics.update
- sleep(3/2)
- pbSEPlay("Choose")
- @sprites["background2"]=IconSprite.new(0,0,@viewport)
- @sprites["background2select"]=IconSprite.new(184,5,@viewport)
- @sprites["background2pocket"]=IconSprite.new(30,20,@viewport)
- @sprites["background2icon"]=IconSprite.new(24,784-72,@viewport)
- @sprites["background2select"].setBitmap("Graphics/Pictures/bagSel")
- @sprites["background2pocket"].setBitmap("Graphics/Pictures/bag1")
- @sprites["background2icon"].setBitmap("Graphics/Icons/itemBack")
- @sprites["background2"].setBitmap("Graphics/Pictures/bagbg1")
- @sprites["overlay2"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- pbSetSystemFont(@sprites["overlay2"].bitmap)
- @sprites["overlay2"].bitmap.font.size=35
- textpos2=[
- ["CLOSE BAG",200,10,0,Color.new(88,88,80),Color.new(168,184,184)]
- ]
- pbDrawTextPositions(@sprites["overlay2"].bitmap,textpos2)
- Graphics.update
- sleep(3/2)
- pbSEPlay("Choose")
- @sprites["background2"].setBitmap("Graphics/Pictures/bagbg2")
- Graphics.update
- sleep(3/2)
- pbSEPlay("Choose")
- @sprites["overlay2"].bitmap.clear
- textpos2=[
- ["Poké Ball",200,10,0,Color.new(88,88,80),Color.new(168,184,184)],
- ["CLOSE BAG",200,45,0,Color.new(88,88,80),Color.new(168,184,184)]
- ]
- pbDrawTextPositions(@sprites["overlay2"].bitmap,textpos2)
- @sprites["background2"].setBitmap("Graphics/Pictures/bagbg3")
- @sprites["background2icon"].setBitmap("Graphics/Icons/item267")
- Graphics.update
- sleep(3/2)
- pbSEPlay("Choose")
- pbDisposeSprite(@sprites,"overlay2")
- pbDisposeSprite(@sprites,"background2")
- pbDisposeSprite(@sprites,"background2select")
- pbDisposeSprite(@sprites,"background2pocket")
- pbDisposeSprite(@sprites,"background2icon")
- Graphics.update
- sleep(3/2)
- pbDisposeSprite(@sprites,"overlay")
- #@sprites["playerpoke"].visible=false
- @sprites["player"].frame=1
- 10.times do
- #@sprites["player"].x+=5
- Graphics.update
- end
- #@sprites["ball"].visible=true
- pokeballThrow2(4,@sprites["shadow1"],@sprites["opponent"],self)
- 10.times do
- #@sprites["player"].x-=5
- Graphics.update
- end
- pbBGMPlay("Fainted")
- pbMEPlay("PkmRS-Caught")
- Kernel.pbMessage("Gotcha! Rattata was caught!")
- @sceneover=true
- pbFadeInAndShow(@sprites) { update }
- end
- def pbSprite(name,bitmap,x,y,opacity=255)
- @sprites["#{name}"]=Sprite.new(@viewport)
- @sprites["#{name}"].bitmap=BitmapCache.load_bitmap("#{bitmap}")
- @sprites["#{name}"].x=x
- @sprites["#{name}"].y=y
- @sprites["#{name}"].opacity = opacity
- end
- def pbEndScene
- pbFadeOutAndHide(@sprites) { update }
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- end
- def pbCatchTutorial
- loop do
- Graphics.update
- Input.update
- self.update
- if Input.trigger?(Input::B) ||@sceneover
- pbEndScene
- break
- end
- end
- end
- end
- class PokemonCatchTutorial
- def initialize(scene)
- @scene=scene
- end
- def pbStartScreen
- @scene.pbStartScene
- @scene.pbCatchTutorial
- @scene.pbEndScene
- end
- end
- def pbCatchTutorial
- scene=PokemonCatchTutorialScene.new
- screen=PokemonCatchTutorial.new(scene)
- pbFadeOutIn(99999) {
- screen.pbStartScreen
- }
- end
- def pokeballThrow2(shakes,targetshadow,targetpoke,scene,burst=-1)
- ball="Graphics/Pictures/ball00"
- ballopen="Graphics/Pictures/ball00_open"
- oldvisible=targetshadow.visible
- targetshadow.visible=false
- # sprites
- spritePoke=targetpoke
- spriteBall=IconSprite.new(0,100,@viewport)
- #spriteBall.setBitmap(ball)
- # pictures
- pictureBall=PictureEx.new(spriteBall.z+1)
- picturePoke=PictureEx.new(spritePoke.z)
- dims=[spritePoke.x,spritePoke.y]
- center=getSpriteCenter(targetpoke)
- ballendy=PokeBattle_SceneConstants::FOEBATTLER_Y-12
- # starting positions
- pictureBall.moveVisible(1,true)
- pictureBall.moveName(1,ball)
- pictureBall.moveOrigin(1,PictureOrigin::Center)
- pictureBall.moveXY(0,1,10,180)
- picturePoke.moveVisible(1,true)
- picturePoke.moveOrigin(1,PictureOrigin::Center)
- picturePoke.moveXY(0,1,center[0],center[1])
- # directives
- picturePoke.moveSE(1,"Audio/SE/BallToss")
- pictureBall.moveCurve(30,1,150,70,30+Graphics.width/2,10,center[0],center[1])
- pictureBall.moveAngle(30,1,-1080)
- pictureBall.moveAngle(0,pictureBall.totalDuration,0)
- delay=pictureBall.totalDuration+4
- picturePoke.moveTone(10,delay,Tone.new(0,-224,-224,0))
- delay=picturePoke.totalDuration
- picturePoke.moveSE(delay,"Audio/SE/BallLand")
- pictureBall.moveName(delay+4,ballopen)
- i=0
- loop do
- i+=1
- if @sprites["player"].frame<4 && i%3==0
- @sprites["player"].frame+=1
- end
- pictureBall.update
- picturePoke.update
- setPictureIconSprite(spriteBall,pictureBall)
- setPictureSprite(spritePoke,picturePoke)
- Graphics.update
- Input.update
- break if !pictureBall.running? && !picturePoke.running?
- end
- @sprites["player"].frame=0
- # Burst animation here
- if burst>=0
- scene.pbCommonAnimation("BallBurst#{burst}",nil,nil)
- end
- pictureBall.clearProcesses
- picturePoke.clearProcesses
- delay=0
- picturePoke.moveZoom(15,delay,0)
- picturePoke.moveXY(15,delay,center[0],center[1])
- picturePoke.moveSE(delay+10,"Audio/SE/Catch")
- picturePoke.moveVisible(delay+15,false)
- pictureBall.moveName(picturePoke.totalDuration+2,ball)
- delay=picturePoke.totalDuration+6
- pictureBall.moveXY(15,delay,center[0],ballendy)
- pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
- pictureBall.moveXY(10,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*2/3))
- pictureBall.moveXY(10,pictureBall.totalDuration+2,center[0],ballendy)
- pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
- pictureBall.moveXY(6,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*1/3))
- pictureBall.moveXY(6,pictureBall.totalDuration+2,center[0],ballendy)
- pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
- pictureBall.moveXY(3,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*1/6))
- pictureBall.moveXY(3,pictureBall.totalDuration+2,center[0],ballendy)
- pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
- picturePoke.moveXY(0,pictureBall.totalDuration,center[0],ballendy)
- delay=pictureBall.totalDuration+18# if shakes==0
- [shakes,3].min.times do
- pictureBall.moveSE(delay,"Audio/SE/BallStruggle")
- pictureBall.moveXY(3,delay,center[0]-8,ballendy)
- pictureBall.moveAngle(3,delay,20) # positive means counterclockwise
- delay=pictureBall.totalDuration
- pictureBall.moveXY(6,delay,center[0]+8,ballendy)
- pictureBall.moveAngle(6,delay,-20) # negative means clockwise
- delay=pictureBall.totalDuration
- pictureBall.moveXY(3,delay,center[0],ballendy)
- pictureBall.moveAngle(3,delay,0)
- delay=pictureBall.totalDuration+18
- end
- if shakes<4
- picturePoke.moveSE(delay,"Audio/SE/BallOpen")
- pictureBall.moveName(delay,ballopen)
- pictureBall.moveVisible(delay+10,false)
- picturePoke.moveVisible(delay,true)
- picturePoke.moveZoom(15,delay,100)
- picturePoke.moveXY(15,delay,center[0],center[1])
- picturePoke.moveTone(0,delay,Tone.new(248,248,248,248))
- picturePoke.moveTone(24,delay,Tone.new(0,0,0,0))
- delay=picturePoke.totalDuration
- end
- pictureBall.moveXY(0,delay,center[0],ballendy)
- picturePoke.moveOrigin(picturePoke.totalDuration,PictureOrigin::TopLeft)
- picturePoke.moveXY(0,picturePoke.totalDuration,dims[0],dims[1])
- loop do
- pictureBall.update
- picturePoke.update
- setPictureIconSprite(spriteBall,pictureBall)
- setPictureSprite(spritePoke,picturePoke)
- Graphics.update
- Input.update
- break if !pictureBall.running? && !picturePoke.running?
- end
- if shakes<4
- targetshadow.visible=oldvisible
- spriteBall.dispose
- else
- spriteBall.tone=Tone.new(-64,-64,-64,128)
- pbSEPlay("Caught",100,100)
- @sprites["capture"]=spriteBall
- spritePoke.visible=false
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement