Advertisement
Ulithium_Dragon

Untitled

Jul 26th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 12.12 KB | None | 0 0
  1. class PokemonCatchTutorialScene
  2.  
  3. def update
  4.  pbUpdateSpriteHash(@sprites)
  5. end
  6.  
  7. def pbStartScene
  8.  @select=0
  9.  @var=0
  10.  @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  11.  @viewport.z=99999
  12.  @sprites={}
  13.  @sceneover=false
  14.         @sprites["background"]=IconSprite.new(0,0,@viewport)
  15.         @sprites["background"].setBitmap("Graphics/Battlebacks/battlebgField")
  16.         @sprites["commandwindow"]=CommandMenuDisplay.new(@viewport)
  17.         @sprites["fightwindow"]=FightMenuDisplay.new(nil,@viewport)
  18.         @sprites["fightwindow"].visible=false
  19.         @sprites["playerbase"]=IconSprite.new(-120,224,@viewport)
  20.         @sprites["playerbase"].setBitmap("Graphics/Battlebacks/playerbaseField")
  21.         @sprites["opponentbase"]=IconSprite.new(256,112,@viewport)
  22.         @sprites["opponentbase"].setBitmap("Graphics/Battlebacks/enemybaseField")
  23.         @sprites["player"]=AnimatedSprite.create("Graphics/Characters/trback002",5,128,@viewport)
  24.         @sprites["player"].x=64
  25.         @sprites["player"].y=160
  26.         @sprites["player"].visible=true
  27.         @opponentpoke=PokeBattle_Pokemon.new(PBSpecies::RATTATA,5,$Trainer)
  28.         @playerpoke=PokeBattle_Pokemon.new(PBSpecies::PIDGEY,10,$Trainer)
  29.         @sprites["opponent"]=PokemonSprite.new(@viewport)
  30.         @sprites["opponent"].setPokemonBitmap(@opponentpoke)
  31.         @sprites["opponent"].mirror=false
  32.         @sprites["opponent"].color=Color.new(0,0,0,0)
  33.         @sprites["shadow1"]=IconSprite.new(Graphics.width - 156,92,@viewport)
  34.         @sprites["shadow1"].setBitmap("Graphics/Pictures/battleShadow")
  35.         @sprites["shadow1"].z-=2
  36.         pbPositionPokemonSprite(@sprites["opponent"],Graphics.width - 190,82)
  37.         pbSEPlay("020Cry")
  38.         Kernel.pbMessage("Wild Rattata appeared!")
  39.         #Kernel.pbMessage("Go Pidgey!")
  40.         #@sprites["playerpoke"]=PokemonSprite.new(@viewport)
  41.         #@sprites["playerpoke"].setPokemonBitmap(@playerpoke,true)
  42.         #@sprites["playerpoke"].mirror=false
  43.         #@sprites["playerpoke"].color=Color.new(0,0,0,0)
  44.         #@sprites["playerpoke"].x=64
  45.         #@sprites["playerpoke"].y=160
  46.         #@sprites["playerpoke"].visible=false
  47.         #@sprites["ball"]=IconSprite.new(50,160,@viewport)
  48.         #@sprites["ball"].setBitmap("Graphics/Pictures/ball00")
  49.         #@sprites["ball"].visible=false
  50.         #for i in 1..20
  51.         #   @sprites["player"].x-=4
  52.         #   sleep(1/5)
  53.         #   @sprites["player"].frame=(i/4).floor
  54.         #   @sprites["ball"].visible=true if i==5
  55.         #   if i%2==0
  56.         #     if i<11
  57.         #       @sprites["ball"].y-=20
  58.         #     else
  59.         #       @sprites["ball"].y+=20
  60.         #     end
  61.         #   end
  62.         #   @sprites["ball"].x+=5
  63.         #   Graphics.update
  64.         #end
  65.         #@sprites["ball"].visible=false
  66.         #@sprites["playerpoke"].visible=true
  67.         Graphics.update
  68.         textpos=[
  69.          ["What will",20,306,0,Color.new(64,64,64),Color.new(176,176,176)],
  70.          [(_INTL("Dude do?")),20,336,0,Color.new(64,64,64),Color.new(176,176,176)],
  71.         ]
  72.         @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  73.         pbSetSystemFont(@sprites["overlay"].bitmap)
  74.         pbDrawTextPositions(@sprites["overlay"].bitmap,textpos)
  75.         Graphics.update
  76.         sleep(3/2)
  77.         Graphics.update
  78.         sleep(3/2)
  79.         pbSEPlay("Choose")
  80.         @sprites["commandwindow"].index=1
  81.         @sprites["commandwindow"].refresh
  82.         Graphics.update
  83.         sleep(3/2)
  84.         pbSEPlay("Choose")
  85.         @sprites["background2"]=IconSprite.new(0,0,@viewport)
  86.         @sprites["background2select"]=IconSprite.new(184,5,@viewport)
  87.         @sprites["background2pocket"]=IconSprite.new(30,20,@viewport)
  88.         @sprites["background2icon"]=IconSprite.new(24,784-72,@viewport)
  89.         @sprites["background2select"].setBitmap("Graphics/Pictures/bagSel")
  90.         @sprites["background2pocket"].setBitmap("Graphics/Pictures/bag1")
  91.         @sprites["background2icon"].setBitmap("Graphics/Icons/itemBack")
  92.         @sprites["background2"].setBitmap("Graphics/Pictures/bagbg1")
  93.         @sprites["overlay2"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  94.         pbSetSystemFont(@sprites["overlay2"].bitmap)
  95.         @sprites["overlay2"].bitmap.font.size=35
  96.         textpos2=[
  97.         ["CLOSE BAG",200,10,0,Color.new(88,88,80),Color.new(168,184,184)]
  98.         ]
  99.         pbDrawTextPositions(@sprites["overlay2"].bitmap,textpos2)
  100.         Graphics.update
  101.         sleep(3/2)
  102.         pbSEPlay("Choose")
  103.         @sprites["background2"].setBitmap("Graphics/Pictures/bagbg2")
  104.         Graphics.update
  105.         sleep(3/2)
  106.         pbSEPlay("Choose")
  107.         @sprites["overlay2"].bitmap.clear
  108.         textpos2=[
  109.         ["Poké Ball",200,10,0,Color.new(88,88,80),Color.new(168,184,184)],
  110.         ["CLOSE BAG",200,45,0,Color.new(88,88,80),Color.new(168,184,184)]
  111.         ]
  112.         pbDrawTextPositions(@sprites["overlay2"].bitmap,textpos2)
  113.         @sprites["background2"].setBitmap("Graphics/Pictures/bagbg3")
  114.         @sprites["background2icon"].setBitmap("Graphics/Icons/item267")
  115.         Graphics.update
  116.         sleep(3/2)
  117.         pbSEPlay("Choose")
  118.         pbDisposeSprite(@sprites,"overlay2")
  119.         pbDisposeSprite(@sprites,"background2")
  120.         pbDisposeSprite(@sprites,"background2select")
  121.         pbDisposeSprite(@sprites,"background2pocket")
  122.         pbDisposeSprite(@sprites,"background2icon")
  123.         Graphics.update
  124.         sleep(3/2)
  125.         pbDisposeSprite(@sprites,"overlay")
  126.         #@sprites["playerpoke"].visible=false
  127.         @sprites["player"].frame=1
  128.         10.times do
  129.           #@sprites["player"].x+=5
  130.           Graphics.update
  131.         end
  132.         #@sprites["ball"].visible=true
  133.         pokeballThrow2(4,@sprites["shadow1"],@sprites["opponent"],self)
  134.         10.times do
  135.           #@sprites["player"].x-=5
  136.           Graphics.update
  137.         end
  138.         pbBGMPlay("Fainted")
  139.         pbMEPlay("PkmRS-Caught")
  140.         Kernel.pbMessage("Gotcha! Rattata was caught!")
  141.         @sceneover=true
  142.  
  143.  
  144.  pbFadeInAndShow(@sprites) { update }
  145. end
  146.  
  147. def pbSprite(name,bitmap,x,y,opacity=255)
  148.   @sprites["#{name}"]=Sprite.new(@viewport)
  149.   @sprites["#{name}"].bitmap=BitmapCache.load_bitmap("#{bitmap}")
  150.   @sprites["#{name}"].x=x
  151.   @sprites["#{name}"].y=y
  152.   @sprites["#{name}"].opacity = opacity
  153. end
  154.  
  155. def pbEndScene
  156.   pbFadeOutAndHide(@sprites) { update }
  157.   pbDisposeSpriteHash(@sprites)
  158.   @viewport.dispose
  159. end
  160.  
  161. def pbCatchTutorial
  162.  
  163.  loop do
  164.   Graphics.update
  165.   Input.update
  166.   self.update
  167.  
  168.  
  169.  
  170.      if Input.trigger?(Input::B) ||@sceneover
  171.     pbEndScene
  172.  break
  173.     end
  174.  end
  175. end
  176.  
  177. end
  178.  
  179. class PokemonCatchTutorial
  180.  
  181. def initialize(scene)
  182.  @scene=scene
  183. end
  184.  
  185. def pbStartScreen
  186.  @scene.pbStartScene
  187.  @scene.pbCatchTutorial
  188.  @scene.pbEndScene
  189. end
  190.  
  191. end
  192.  
  193. def pbCatchTutorial
  194.     scene=PokemonCatchTutorialScene.new
  195.      screen=PokemonCatchTutorial.new(scene)
  196.      pbFadeOutIn(99999) {
  197.       screen.pbStartScreen
  198.     }
  199.   end
  200.  
  201.    def pokeballThrow2(shakes,targetshadow,targetpoke,scene,burst=-1)
  202.       ball="Graphics/Pictures/ball00"
  203.       ballopen="Graphics/Pictures/ball00_open"
  204.       oldvisible=targetshadow.visible
  205.       targetshadow.visible=false
  206.       # sprites
  207.       spritePoke=targetpoke
  208.       spriteBall=IconSprite.new(0,100,@viewport)
  209.       #spriteBall.setBitmap(ball)
  210.       # pictures
  211.       pictureBall=PictureEx.new(spriteBall.z+1)
  212.       picturePoke=PictureEx.new(spritePoke.z)
  213.       dims=[spritePoke.x,spritePoke.y]
  214.       center=getSpriteCenter(targetpoke)
  215.       ballendy=PokeBattle_SceneConstants::FOEBATTLER_Y-12
  216.       # starting positions
  217.       pictureBall.moveVisible(1,true)
  218.       pictureBall.moveName(1,ball)
  219.       pictureBall.moveOrigin(1,PictureOrigin::Center)
  220.       pictureBall.moveXY(0,1,10,180)
  221.       picturePoke.moveVisible(1,true)
  222.       picturePoke.moveOrigin(1,PictureOrigin::Center)
  223.       picturePoke.moveXY(0,1,center[0],center[1])
  224.       # directives
  225.       picturePoke.moveSE(1,"Audio/SE/BallToss")
  226.       pictureBall.moveCurve(30,1,150,70,30+Graphics.width/2,10,center[0],center[1])
  227.       pictureBall.moveAngle(30,1,-1080)
  228.       pictureBall.moveAngle(0,pictureBall.totalDuration,0)
  229.       delay=pictureBall.totalDuration+4
  230.       picturePoke.moveTone(10,delay,Tone.new(0,-224,-224,0))
  231.       delay=picturePoke.totalDuration
  232.       picturePoke.moveSE(delay,"Audio/SE/BallLand")
  233.       pictureBall.moveName(delay+4,ballopen)
  234.       i=0
  235.       loop do
  236.         i+=1
  237.         if @sprites["player"].frame<4 && i%3==0
  238.         @sprites["player"].frame+=1
  239.         end
  240.         pictureBall.update
  241.         picturePoke.update
  242.         setPictureIconSprite(spriteBall,pictureBall)
  243.         setPictureSprite(spritePoke,picturePoke)
  244.         Graphics.update
  245.         Input.update
  246.         break if !pictureBall.running? && !picturePoke.running?
  247.       end
  248.       @sprites["player"].frame=0
  249.       # Burst animation here
  250.       if burst>=0
  251.         scene.pbCommonAnimation("BallBurst#{burst}",nil,nil)
  252.       end
  253.       pictureBall.clearProcesses
  254.       picturePoke.clearProcesses
  255.       delay=0
  256.       picturePoke.moveZoom(15,delay,0)
  257.       picturePoke.moveXY(15,delay,center[0],center[1])
  258.       picturePoke.moveSE(delay+10,"Audio/SE/Catch")
  259.       picturePoke.moveVisible(delay+15,false)
  260.       pictureBall.moveName(picturePoke.totalDuration+2,ball)
  261.       delay=picturePoke.totalDuration+6
  262.       pictureBall.moveXY(15,delay,center[0],ballendy)
  263.       pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
  264.       pictureBall.moveXY(10,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*2/3))
  265.       pictureBall.moveXY(10,pictureBall.totalDuration+2,center[0],ballendy)
  266.       pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
  267.       pictureBall.moveXY(6,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*1/3))
  268.       pictureBall.moveXY(6,pictureBall.totalDuration+2,center[0],ballendy)
  269.       pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
  270.       pictureBall.moveXY(3,pictureBall.totalDuration+2,center[0],ballendy-((ballendy-center[1])*1/6))
  271.       pictureBall.moveXY(3,pictureBall.totalDuration+2,center[0],ballendy)
  272.       pictureBall.moveSE(pictureBall.totalDuration,"Audio/SE/BallBounce")
  273.       picturePoke.moveXY(0,pictureBall.totalDuration,center[0],ballendy)
  274.       delay=pictureBall.totalDuration+18# if shakes==0
  275.       [shakes,3].min.times do
  276.         pictureBall.moveSE(delay,"Audio/SE/BallStruggle")
  277.         pictureBall.moveXY(3,delay,center[0]-8,ballendy)
  278.         pictureBall.moveAngle(3,delay,20) # positive means counterclockwise
  279.         delay=pictureBall.totalDuration
  280.         pictureBall.moveXY(6,delay,center[0]+8,ballendy)
  281.         pictureBall.moveAngle(6,delay,-20) # negative means clockwise
  282.         delay=pictureBall.totalDuration
  283.         pictureBall.moveXY(3,delay,center[0],ballendy)
  284.         pictureBall.moveAngle(3,delay,0)
  285.         delay=pictureBall.totalDuration+18
  286.       end
  287.       if shakes<4
  288.         picturePoke.moveSE(delay,"Audio/SE/BallOpen")
  289.         pictureBall.moveName(delay,ballopen)
  290.         pictureBall.moveVisible(delay+10,false)
  291.         picturePoke.moveVisible(delay,true)
  292.         picturePoke.moveZoom(15,delay,100)
  293.         picturePoke.moveXY(15,delay,center[0],center[1])
  294.         picturePoke.moveTone(0,delay,Tone.new(248,248,248,248))
  295.         picturePoke.moveTone(24,delay,Tone.new(0,0,0,0))
  296.         delay=picturePoke.totalDuration
  297.       end
  298.       pictureBall.moveXY(0,delay,center[0],ballendy)
  299.       picturePoke.moveOrigin(picturePoke.totalDuration,PictureOrigin::TopLeft)
  300.       picturePoke.moveXY(0,picturePoke.totalDuration,dims[0],dims[1])
  301.       loop do
  302.         pictureBall.update
  303.         picturePoke.update
  304.         setPictureIconSprite(spriteBall,pictureBall)
  305.         setPictureSprite(spritePoke,picturePoke)
  306.         Graphics.update
  307.         Input.update
  308.         break if !pictureBall.running? && !picturePoke.running?
  309.       end
  310.       if shakes<4
  311.         targetshadow.visible=oldvisible
  312.         spriteBall.dispose
  313.       else
  314.         spriteBall.tone=Tone.new(-64,-64,-64,128)
  315.         pbSEPlay("Caught",100,100)
  316.         @sprites["capture"]=spriteBall
  317.         spritePoke.visible=false
  318.       end
  319.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement