Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===============================================================================
- # Styled to look like the HGSS games
- #===============================================================================
- class GenTwoStyle
- def safe?(path)
- ext = getTSExtension
- if FileTest.exist?(path+ext+".png")
- return path+ext
- else
- return path
- end
- end
- def initialize
- # sound file for playing the title screen BGM
- bgm = GEN_TWO_BGM
- str = "Audio/BGM/"+pbResolveAudioFile(bgm).name
- @mp3 = (File.extname(str)==".ogg") ? true : false
- @skip = false
- # speed of the effect movement
- @speed = 3
- @frame = 0
- @opacity = 17
- @particles = 16
- @effo = 1
- @disposed = false
- @currentFrame = 0
- # calculates after how many frames the game will reset
- @totalFrames=getPlayTime(str).to_i*Graphics.frame_rate - 40
- pbBGMPlay(bgm)
- pbWait(10) if @mp3
- # creates all the necessary graphics
- @viewport = Viewport.new(0,0,Graphics.width,VIEWPORT_HEIGHT)
- @viewport.z = 99999
- @viewport.tone = Tone.new(-255,-255,-255)
- y = DS_STYLE ? VIEWPORT_OFFSET+VIEWPORT_HEIGHT : 0
- @viewport2 = Viewport.new(0,y,Graphics.width,VIEWPORT_HEIGHT)
- @viewport2.z = 99998
- @sprites = {}
- @viewport2.tone = Tone.new(-255,-255,-255) if DS_STYLE
- @sprites["bg"] = Sprite.new(@viewport)
- @sprites["bg2"] = Sprite.new(@viewport2)
- if DS_STYLE
- @sprites["bg"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg")
- @sprites["bg2"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg2")
- else
- @sprites["bg2"].bitmap = pbBitmap("Graphics/Titles/gen_2_bg")
- end
- @sprites["effect2"] = AnimatedPlane.new(@viewport2)
- @sprites["effect2"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect2")
- @sprites["effect"] = Sprite.new(@viewport)
- @sprites["effect"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect")
- @sprites["effect"].ox = @sprites["effect"].bitmap.width/2
- @sprites["effect"].oy = @sprites["effect"].bitmap.height/2
- @sprites["effect"].x = @viewport.rect.width*0.75
- @sprites["effect"].y = @viewport.rect.height/2
- @sprites["effect3"] = Sprite.new(@viewport)
- @sprites["effect3"].bitmap = pbBitmap("Graphics/Titles/gen_2_effect3")
- @sprites["effect3"].ox = @sprites["effect3"].bitmap.width/2
- @sprites["effect3"].oy = @sprites["effect3"].bitmap.height/2
- @sprites["effect3"].x = @sprites["effect"].x
- @sprites["effect3"].y = @sprites["effect"].y
- @sprites["effect3"].opacity = 0
- view = DS_STYLE ? @viewport2 : @viewport
- @sprites["particle"] = Sprite.new(view)
- @sprites["particle"].bitmap = pbBitmap("Graphics/Titles/gen_2_particle")
- @sprites["particle"].src_rect.set(0,0,@sprites["particle"].bitmap.width/2,@sprites["particle"].bitmap.height)
- @sprites["particle"].oy = @sprites["particle"].bitmap.height/2
- @sprites["particle"].x = view.rect.width/2
- @sprites["particle"].y = view.rect.height/2 + 20
- @sprites["particle"].y+=64 if !DS_STYLE
- @sprites["particle"].visible = false
- @sprites["pokemon"] = Sprite.new(view)
- @sprites["pokemon"].bitmap = pbBitmap("Graphics/Titles/gen_2_pokemon")
- @sprites["pokemon"].src_rect.set(0,0,@sprites["pokemon"].bitmap.height,@sprites["pokemon"].bitmap.height)
- @sprites["pokemon"].ox = @sprites["pokemon"].src_rect.width/2
- @sprites["pokemon"].oy = @sprites["pokemon"].src_rect.height/2
- @sprites["pokemon"].x = view.rect.width/2
- @sprites["pokemon"].y = view.rect.height/2
- @sprites["pokemon"].y+=64 if !DS_STYLE
- @sprites["pokemon"].visible = false
- @sprites["start"] = Sprite.new(@viewport)
- @sprites["start"].bitmap = pbBitmap("Graphics/Titles/pokestart")
- @sprites["start"].ox = @sprites["start"].bitmap.width/2
- @sprites["start"].x = @viewport2.rect.width/2
- @sprites["start"].y = @viewport2.rect.height-32
- @sprites["start"].z = 10
- @sprites["start"].opacity = 0
- @sprites["start"].visible = false
- @sprites["logo"] = Sprite.new(@viewport)
- bitmap1=pbBitmap(safe?("Graphics/Titles/pokelogo"))
- bitmap2=pbBitmap(safe?("Graphics/Titles/pokelogo2"))
- @sprites["logo"].bitmap = Bitmap.new(bitmap1.width,bitmap1.height)
- @sprites["logo"].bitmap.blt(0,0,bitmap2,Rect.new(0,0,bitmap2.width,bitmap2.height))
- @sprites["logo"].bitmap.blt(0,0,bitmap1,Rect.new(0,0,bitmap1.width,bitmap1.height))
- @sprites["logo"].ox = @sprites["logo"].bitmap.width/2
- @sprites["logo"].oy = @sprites["logo"].bitmap.height/2
- @sprites["logo"].x = @viewport.rect.width/2
- @sprites["logo"].y = @viewport.rect.height/2
- @sprites["logo"].z = 10
- @sprites["logo"].opacity = 0
- if !DS_STYLE
- @sprites["logo"].y-=58
- @sprites["effect"].y-=58
- @sprites["effect3"].y-=58
- end
- end
- def intro
- @logolock = true
- 10.times do
- @viewport.tone.red+=25.5
- @viewport.tone.green+=25.5
- @viewport.tone.blue+=25.5
- if DS_STYLE
- @viewport2.tone.red+=25.5
- @viewport2.tone.green+=25.5
- @viewport2.tone.blue+=25.5
- end
- self.update
- wait(1,false)
- end
- 22.times do
- self.update
- wait(1,false)
- end
- @sprites["logo"].y+=64
- 64.times do
- @sprites["logo"].y-=1
- @sprites["logo"].opacity+=4
- @sprites["logo"].tone.red+=2
- @sprites["logo"].tone.green+=2
- @sprites["logo"].tone.blue+=2
- self.update
- wait(1,false)
- end
- 16.times do
- @sprites["logo"].tone.red+=8
- @sprites["logo"].tone.green+=8
- @sprites["logo"].tone.blue+=8
- self.update
- wait(1,false)
- end
- @sprites["start"].opacity = 0
- @sprites["start"].visible = true
- @opacity = 17
- @viewport.tone = Tone.new(255,255,255)
- @viewport2.tone = Tone.new(255,255,255) if DS_STYLE
- @logolock = false
- for i in 0...@particles
- @sprites["p#{i}"] = AnimatedSpriteParticle.new(@viewport)
- @sprites["p#{i}"].dx = @sprites["effect"].x
- @sprites["p#{i}"].dy = @sprites["effect"].y
- @sprites["p#{i}"].inverted = false
- @sprites["p#{i}"].repeat = 1
- @sprites["p#{i}"].count = 0
- @sprites["p#{i}"].refresh
- end
- @sprites["pokemon"].visible = true
- @sprites["particle"].visible = true
- 17.times do
- @viewport.tone.red-=15 if @viewport.tone.red > 0
- @viewport.tone.green-=15 if @viewport.tone.green > 0
- @viewport.tone.blue-=15 if @viewport.tone.blue > 0
- if DS_STYLE
- @viewport2.tone.red-=15 if @viewport2.tone.red > 0
- @viewport2.tone.green-=15 if @viewport2.tone.green > 0
- @viewport2.tone.blue-=15 if @viewport2.tone.blue > 0
- end
- self.update
- wait(1,false)
- end
- end
- def update
- @currentFrame+=1 if !@skip
- @frame+=1
- if !@logolock
- @sprites["logo"].tone.red-=15 if @sprites["logo"].tone.red > 0
- @sprites["logo"].tone.green-=15 if @sprites["logo"].tone.green > 0
- @sprites["logo"].tone.blue-=15 if @sprites["logo"].tone.blue > 0
- end
- @sprites["pokemon"].src_rect.x+=@sprites["pokemon"].src_rect.width if @frame > @speed
- @sprites["pokemon"].src_rect.x=0 if @sprites["pokemon"].src_rect.x >= @sprites["pokemon"].bitmap.width
- @sprites["particle"].src_rect.x-=16
- @sprites["particle"].src_rect.x=@sprites["particle"].bitmap.width/2 if @sprites["particle"].src_rect.x <= 0
- @frame = 0 if @frame > @speed
- @sprites["start"].opacity+=@opacity
- @sprites["effect"].angle+=0.4 if $ResizeFactor <= 1
- @sprites["effect2"].ox-=1
- @sprites["effect3"].angle+=0.2 if $ResizeFactor <= 1
- @sprites["effect3"].opacity-=@effo
- if @sprites["effect3"].opacity <= 0
- @effo = -1
- elsif @sprites["effect3"].opacity >= 0255
- @effo = 1
- end
- @opacity=-17 if @sprites["start"].opacity>=255
- @opacity=+17 if @sprites["start"].opacity<=0
- for i in 0...@particles
- @sprites["p#{i}"].update if @sprites["p#{i}"]
- end
- if @currentFrame==@totalFrames
- self.restart if RESTART_TITLE
- end
- end
- def restart
- pbBGMStop(0)
- 51.times do
- @viewport.tone.red-=5
- @viewport.tone.green-=5
- @viewport.tone.blue-=5
- @viewport2.tone.red-=5
- @viewport2.tone.green-=5
- @viewport2.tone.blue-=5
- self.update
- wait(1)
- end
- raise Reset.new
- end
- def dispose
- pbFadeOutAndHide(@sprites)
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- @disposed=true
- end
- def disposed?
- return @disposed
- end
- def wait(frames,advance=true)
- return false if @skip
- frames.times do
- @currentFrame+=1 if advance
- Graphics.update
- Input.update
- @skip=true if Input.trigger?(Input::C)
- end
- return true
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement