title screen

This commit is contained in:
infinitefusion
2021-07-02 21:48:03 -04:00
parent 500edeca7d
commit 8cae8fb8da
6 changed files with 675 additions and 0 deletions

View File

@@ -252,4 +252,15 @@ def isHoennPokemon(species)
341,342,355,356,357,378,379,380,381,382,385,386,387,390,
391,392,393,394,395,396,401,404,405]
return list.include?(species)
end
def pbBitmap(path)
if !pbResolveBitmap(path).nil?
bmp = RPG::Cache.load_bitmap_path(path)
bmp.storedPath = path
else
p "Image located at '#{path}' was not found!" if $DEBUG
bmp = Bitmap.new(1, 1)
end
return bmp
end

View File

@@ -0,0 +1,630 @@
#===============================================================================
# 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
#currently unused
def getRandomCustomFusion()
randPoke = []
if @customPokeList.length >= 5000
chosen=false
i=0 #loop pas plus que 3 fois pour pas lag
while chosen == false
fusedPoke = @customPokeList[rand(@customPokeList.length)]
poke1 = getBasePokemonID(fusedPoke,false)
poke2 = getBasePokemonID(fusedPoke,true)
if ((poke1 <= @maxPoke && poke2 <= @maxPoke) || i >= 3)
randPoke << getBasePokemonID(fusedPoke,false)
randPoke << getBasePokemonID(fusedPoke,true)
chosen = true
end
end
else
randPoke << rand(@maxPoke)+1
randPoke << rand(@maxPoke)+1
end
return randPoke
end
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()
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()
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