#=============================================================================== # New animated Title Screens for Pokemon Essentials # by Luka S.J. # # Adds new visual styles to the Pokemon Essentials title screen, and animates # depending on the style selected #=============================================================================== ###SCRIPTEDIT1 # Config value for selecting title screen style SCREENSTYLE = 1 # 1 - FR/LG # 2 - R/S/E class Scene_Intro alias main_old main def main Graphics.transition(0) # Cycles through the intro pictures @skip=false # Selects title screen style @screen=GenOneStyle.new # Plays the title screen intro (is skippable) @screen.intro # Creates/updates the main title screen loop self.update Graphics.freeze end def update ret=0 loop do @screen.update Graphics.update Input.update if Input.press?(Input::DOWN) && Input.press?(Input::B) && Input.press?(Input::CTRL) ret=1 break end if Input.trigger?(Input::C) ret=2 break end end case ret when 1 closeSplashDelete(scene,args) when 2 closeTitle end end def closeTitle # Play Pokemon cry pbSEPlay("Absorb2",100,100) # Fade out pbBGMStop(1.0) # disposes current title screen disposeTitle # initializes load screen sscene = PokemonLoad_Scene.new sscreen = PokemonLoadScreen.new(sscene) sscreen.pbStartLoadScreen end def closeTitleDelete pbBGMStop(1.0) # disposes current title screen disposeTitle # initializes delete screen sscene=PokemonLoadScene.new sscreen=PokemonLoad.new(sscene) sscreen.pbStartDeleteScreen end # def cyclePics(pics) # sprite=Sprite.new # sprite.opacity=0 # for i in 0...pics.length # bitmap=pbBitmap("Graphics/Titles/#{pics[i]}") # sprite.bitmap=bitmap # 15.times do # sprite.opacity+=17 # pbWait(1) # end # wait(32) # 15.times do # sprite.opacity-=17 # pbWait(1) # end # end # sprite.dispose # end def disposeTitle @screen.dispose end def wait(frames) return if @skip frames.times do Graphics.update Input.update @skip=true if Input.trigger?(Input::C) end end end #=============================================================================== # Styled to look like the FRLG games #=============================================================================== class GenOneStyle def initialize Kernel.pbDisplayText("Version " + Settings::GAME_VERSION_NUMBER,254,308,99999) @maxPoke = 140 #1st gen, pas de legend la premiere fois, graduellement plus de poke @customPokeList = getCustomSpeciesList() #Get random Pokemon (1st gen orandPokenly, pas de legend la prmeiere fois) randPoke = getRandomCustomFusion(true,@customPokeList,@maxPoke) randpoke1 = randPoke[0] #rand(@maxPoke)+1 randpoke2 = randPoke[1] #rand(@maxPoke)+1 randpoke1s = randpoke1.to_s randpoke2s = randpoke2.to_s path_s1 = "Graphics/Battlers/"+ randpoke1s+"/"+randpoke1s +".png" path_s2 = "Graphics/Battlers/"+ randpoke2s+"/"+randpoke2s +".png" path_f = getFusedPath(randpoke1,randpoke2) @prevPoke1 = randpoke1 @prevPoke2 = randpoke2 #Get Fused Poke fusedpoke = (randpoke2*NB_POKEMON)+randpoke1 fusedpoke_s =fusedpoke.to_s # sound file for playing the title screen BGM bgm="Pokemon Red-Blue Opening" @skip=false # speed of the effect movement @speed=16 @opacity=17 @disposed=false @currentFrame=0 # calculates after how many frames the game will reset #@totalFrames=getPlayTime("Audio/BGM/#{bgm}")*Graphics.frame_rate @totalFrames=10*Graphics.frame_rate pbBGMPlay(bgm) # creates all the necessary graphics @viewport=Viewport.new(0,0,Graphics.width,Graphics.height) @viewport.z=99998 @sprites={} @sprites["bars"]=Sprite.new(@viewport) @sprites["bars"].bitmap=pbBitmap("Graphics/Titles/gen1_bars") @sprites["bars"].x=Graphics.width @sprites["bg"]=Sprite.new(@viewport) @sprites["bg"].bitmap=pbBitmap("Graphics/Titles/gen1_bg") @sprites["bg"].x=-Graphics.width #@sprites["bg2"]=Sprite.new(@viewport) #@sprites["bg2"].bitmap=pbBitmap("Graphics/Titles/gen1_bg_litup") #@sprites["bg2"].opacity=0 #@sprites["start"]=Sprite.new(@viewport) #@sprites["start"].bitmap=pbBitmap("Graphics/Titles/pokelogo3") #@sprites["start"].x=138 #@sprites["start"].y=300 #@sprites["start"].opacity=255 @sprites["effect"]=AnimatedPlane.new(@viewport) @sprites["effect"].bitmap=pbBitmap("Graphics/Titles/gen1_effect") @sprites["effect"].opacity=155 @sprites["effect"].visible=false @sprites["poke"]=Sprite.new(@viewport) @sprites["poke"].bitmap=pbBitmap(path_s1) @sprites["poke"].x=400 @sprites["poke"].y=75 @sprites["2poke"]=Sprite.new(@viewport) @sprites["2poke"].bitmap=pbBitmap(path_s2) @sprites["2poke"].x=-150 @sprites["2poke"].y=75 @sprites["fpoke"]=Sprite.new(@viewport) @sprites["fpoke"].bitmap=pbBitmap(path_f) @sprites["fpoke"].x=125 @sprites["fpoke"].y=75 @sprites["fpoke"].z=999 @sprites["fpoke"].opacity=0 @sprites["poke"].tone=Tone.new(0,0,0,255) @sprites["poke"].opacity=0 @sprites["poke2"]=Sprite.new(@viewport) @sprites["poke2"].bitmap=pbBitmap("Graphics/Battlers/21364") @sprites["poke2"].tone=Tone.new(255,255,255,255) @sprites["poke2"].src_rect.set(0,Graphics.height,Graphics.width,48) @sprites["poke2"].y=Graphics.height @sprites["poke2"].y=100 @sprites["2poke"].tone=Tone.new(0,0,0,255) @sprites["2poke"].opacity=0 @sprites["2poke2"]=Sprite.new(@viewport) @sprites["2poke2"].bitmap=pbBitmap("Graphics/Battlers/special/000") @sprites["2poke2"].tone=Tone.new(255,255,255,255) @sprites["2poke2"].src_rect.set(0,Graphics.height,Graphics.width,48) @sprites["2poke2"].y=Graphics.height @sprites["2poke2"].y=100 @sprites["logo"]=Sprite.new(@viewport) #bitmap2=pbBitmap("Graphics/Titles/pokelogo2") bitmap1=pbBitmap("Graphics/Titles/pokelogo") @sprites["logo"].bitmap=Bitmap.new(bitmap1.width,bitmap1.height) @sprites["logo"].bitmap.blt(0,0,bitmap1,Rect.new(0,0,bitmap1.width,bitmap1.height)) #@sprites["logo"].bitmap.blt(0,0,bitmap2,Rect.new(0,40,bitmap2.width,bitmap2.height)) @sprites["logo"].tone=Tone.new(255,255,255,255) @sprites["logo"].x=50 @sprites["logo"].y=-20 @sprites["logo"].opacity=0 @sprites["star"]=Sprite.new(@viewport) @sprites["star"].bitmap=pbBitmap("Graphics/Pictures/darkness") @sprites["star"].opacity=0 @sprites["star"].x=-50 @sprites["star"].y=0 end def intro wait(16) 16.times do end wait(32) 64.times do @sprites["2poke"].opacity+=4 @sprites["poke"].opacity+=4 wait(1) end 8.times do @sprites["bg"].x+=64 wait(1) end wait(8) 8.times do @sprites["bars"].x-=64 wait(1) end wait(8) @sprites["logo"].opacity=255 @sprites["poke2"].opacity=255 @sprites["2poke2"].opacity=255 @sprites["poke"].tone=Tone.new(0,0,0,0) @sprites["2poke"].tone=Tone.new(0,0,0,0) @sprites["effect"].visible=false c=255.0 16.times do @sprites["poke2"].opacity-=255.0/16 @sprites["2poke2"].opacity-=255.0/16 c-=255.0/16 @sprites["logo"].tone=Tone.new(c,c,c) @sprites["effect"].ox+=@speed wait(1) end end TONE_INCR = 15 def makeShineEffect() newColor = @sprites["poke"].tone.red + TONE_INCR newTone =Tone.new(newColor,newColor,newColor,0) @sprites["poke"].tone=newTone @sprites["2poke"].tone=newTone end def introloop @sprites["star"].opacity=0 @sprites["poke"].opacity=255 @sprites["2poke"].opacity=255 @sprites["fpoke"].opacity=0 @sprites["poke"].x=@sprites["poke"].x-1 @sprites["2poke"].x=@sprites["2poke"].x+1 end def update @sprites["effect"].ox+=@speed @currentFrame+=1 @skip =false if @sprites["poke"].x < 175#150 makeShineEffect() end if @sprites["poke"].x > @sprites["2poke"].x @sprites["poke"].x=@sprites["poke"].x-1 @sprites["2poke"].x=@sprites["2poke"].x+1 #@sprites["effect"].opacity-=1 #@sprites["bg"].opacity-=1 #@sprites["bg2"].opacity+=3 end if @sprites["poke"].x <= @sprites["2poke"].x @sprites["poke"].opacity=0 @sprites["2poke"].opacity=0 #16.times do @sprites["fpoke"].opacity=255 #wait(1) #end @sprites["poke"].x=400 @sprites["poke"].tone = Tone.new(0,0,0,0) @sprites["2poke"].x=-150 @sprites["2poke"].tone = Tone.new(0,0,0,0) if @maxPoke < NB_POKEMON-1 @maxPoke += 5 #-1 pour que ca arrive pile. tant pis pour kyurem end randPoke = getRandomCustomFusion(true,@customPokeList,@maxPoke) randpoke1 = randPoke[0] #rand(@maxPoke)+1 randpoke2 = randPoke[1] #rand(@maxPoke)+1 randpoke1s = randpoke1.to_s randpoke2s = randpoke2.to_s path_s1 = "Graphics/Battlers/"+ randpoke1s+"/"+randpoke1s +".png" path_s2 = "Graphics/Battlers/"+ randpoke2s+"/"+randpoke2s + ".png" path_f = getFusedPath(randpoke1,randpoke2) path_fMod = getFusedPath(@prevPoke1,@prevPoke2) @sprites["fpoke"].bitmap=pbBitmap(path_fMod) @prevPoke1 = randpoke1 @prevPoke2 = randpoke2 @sprites["poke"].bitmap=pbBitmap(path_s1) @sprites["2poke"].bitmap=pbBitmap(path_s2) wait(150) # fusedpoke = (randpoke2*151)+randpoke1 #fusedpoke_s =fusedpoke.to_s @sprites["fpoke"].bitmap=pbBitmap(path_f) #@sprites["effect"].opacity=155 #@sprites["bg"].opacity=255 #@sprites["bg2"].opacity=0 end @sprites["fpoke"].opacity-=10 @sprites["effect"].ox+=@speed if @currentFrame>=@totalFrames introloop end end end def getFusedPatho(randpoke1s,randpoke2s) path = rand(2) == 0 ? "Graphics/Battlers/"+ randpoke1s+"/"+randpoke1s+"."+randpoke2s : "Graphics/Battlers/"+ randpoke2s+"/"+randpoke2s+"."+randpoke1s if Input.press?(Input::RIGHT) path = "Graphics/Battlers/"+ randpoke2s+"/"+randpoke2s+"."+randpoke1s elsif Input.press?(Input::LEFT) path = "Graphics/Battlers/"+ randpoke1s+"/"+randpoke1s+"."+randpoke2s end return path end #new version def getFusedPath(randpoke1,randpoke2) path = rand(2) == 0 ? GetSpritePathForced(randpoke1,randpoke2,true) :GetSpritePathForced(randpoke2,randpoke1,true) if Input.press?(Input::RIGHT) path = GetSpritePathForced(randpoke1,randpoke2,true) elsif Input.press?(Input::LEFT) path = GetSpritePathForced(randpoke2,randpoke1,true) end return path end def dispose Kernel.pbClearText() pbFadeOutAndHide(@sprites) pbDisposeSpriteHash(@sprites) @viewport.dispose @disposed=true end def disposed? return @disposed end def wait(frames) return if @skip frames.times do @currentFrame+=1 @sprites["effect"].ox+=@speed Graphics.update Input.update if Input.trigger?(Input::C) @skip = true return end end end #end #=============================================================================== # Styled to look like the gen 3 games #=============================================================================== class GenThreeStyle def initialize # sound file for playing the title screen BGM bgm="rse opening" @skip=false # speed of the effect movement @speed=1 @opacity=2 @frame=0 @disposed=false @currentFrame=0 # calculates after how many frames the game will reset #@totalFrames=getPlayTime("Audio/BGM/#{bgm}")*Graphics.frame_rate @totalFrames=10*Graphics.frame_rate pbBGMPlay(bgm) # creates all the necessary graphics @viewport=Viewport.new(0,0,Graphics.width,Graphics.height) @viewport.z=99999 @sprites={} @sprites["bg"]=Sprite.new(@viewport) @sprites["bg"].bitmap=pbBitmap("Graphics/Titles/gen3_bg") @sprites["bg"].tone=Tone.new(255,255,255) @sprites["bg"].opacity=0 #@sprites["bg2"]=Sprite.new(@viewport) #@sprites["bg2"].bitmap=pbBitmap("Graphics/Titles/gen3_bg") #@sprites["bg2"].tone=Tone.new(255,255,255) #@sprites["bg2"].opacity=0 @sprites["poke1"]=Sprite.new(@viewport) @sprites["poke1"].bitmap=pbBitmap("Graphics/Titles/gen3_poke1") @sprites["poke1"].opacity=0 @sprites["poke2"]=Sprite.new(@viewport) @sprites["poke2"].bitmap=pbBitmap("Graphics/Titles/gen3_poke2") @sprites["poke2"].opacity=0 @sprites["effect"]=AnimatedPlane.new(@viewport) @sprites["effect"].bitmap=pbBitmap("Graphics/Titles/gen3_effect") @sprites["effect"].visible=false @sprites["logo2"]=Sprite.new(@viewport) @sprites["logo2"].bitmap=pbBitmap("Graphics/Titles/pokelogo2") @sprites["logo2"].x=50 @sprites["logo2"].y=24-32 @sprites["logo2"].opacity=0 @sprites["logo1"]=Sprite.new(@viewport) @sprites["logo1"].bitmap=pbBitmap("Graphics/Titles/pokelogo") @sprites["logo1"].x=50 @sprites["logo1"].y=24+64 @sprites["logo1"].opacity=0 @sprites["logo3"]=Sprite.new(@viewport) @sprites["logo3"].bitmap=pbBitmap("Graphics/Titles/pokelogo") @sprites["logo3"].tone=Tone.new(255,255,255) @sprites["logo3"].x=18 @sprites["logo3"].y=24+64 @sprites["logo3"].src_rect.set(-34,0,34,230) @sprites["start"]=Sprite.new(@viewport) @sprites["start"].bitmap=pbBitmap("Graphics/Titles/pokelogo3") @sprites["start"].x=178 @sprites["start"].y=312 @sprites["start"].visible=true end def intro 16.times do @sprites["logo1"].opacity+=16 wait(1) end wait(16) 12.times do @sprites["logo3"].x+=34 @sprites["logo3"].src_rect.x+=34 wait(1) end @sprites["logo3"].x=18 @sprites["logo3"].src_rect.x=-34 wait(32) 2.times do 12.times do @sprites["logo3"].x+=34 @sprites["logo3"].src_rect.x+=34 @sprites["bg"].opacity+=21.5 wait(1) end @sprites["logo3"].x=18 @sprites["logo3"].src_rect.x=-34 wait(4) 16.times do @sprites["bg"].opacity-=16 wait(1) end wait(32) end @sprites["logo3"].visible=false 16.times do @sprites["logo1"].y-=2 wait(1) end 16.times do @sprites["logo2"].y+=2 @sprites["logo2"].opacity+=16 @sprites["logo1"].y-=2 wait(1) end wait(56) @sprites["bg"].tone=Tone.new(0,0,0) @sprites["bg"].opacity=255 @sprites["poke1"].opacity=255 @sprites["effect"].visible=true end def update @currentFrame+=1 @frame+=1 @sprites["effect"].oy+=@speed @sprites["poke2"].opacity+=@opacity @opacity=-2 if @sprites["poke2"].opacity>=255 @opacity=+2 if @sprites["poke2"].opacity<=0 if @frame==8 @sprites["start"].visible=true elsif @frame==24 @sprites["start"].visible=false @frame=0 end if @currentFrame>=@totalFrames raise Reset.new end end def dispose pbFadeOutAndHide(@sprites) pbDisposeSpriteHash(@sprites) @viewport.dispose @disposed=true end def disposed? return @disposed end def wait(frames) return if @skip frames.times do @currentFrame+=1 Graphics.update Input.update @skip=true if Input.trigger?(Input::C) end end end