Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PokemonTrainerCardScene
- GYMLEADERS=[["Kanto Region","Brock","Rock",[:ROCKRUFF,:GEODUDE,:ROGGENROLA,:ONIX]],
- ["Kanto Region","Misty","Water",[]]] # Region name, Gym Leader, Type, Party members
- def update
- pbUpdateSpriteHash(@sprites)
- end
- def pbStartScene
- @side = 0
- @page = 0
- @sprites={}
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- background=pbResolveBitmap(sprintf("Graphics/trcardgraph/trcard"))
- if $Trainer.isFemale? && background
- addBackgroundPlane(@sprites,"bg","trcard",@viewport)
- else
- addBackgroundPlane(@sprites,"bg","trcard",@viewport)
- end
- cardexists=pbResolveBitmap(sprintf("Graphics/trcardgraph/trcard"))
- @sprites["card"]=IconSprite.new(0,0,@viewport)
- if $Trainer.isFemale? && cardexists
- @sprites["card"].setBitmap("Graphics/trcardgraph/trcard")
- else
- @sprites["card"].setBitmap("Graphics/trcardgraph/trcard")
- end
- @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- @sprites["trainer"]=IconSprite.new(18,74,@viewport)
- @sprites["trainer"].setBitmap(pbPlayerSpriteFile($Trainer.trainertype))
- @sprites["trainer"].x-=(@sprites["trainer"].bitmap.width-128)/2
- @sprites["trainer"].y-=(@sprites["trainer"].bitmap.height-128)
- @sprites["trainer"].z=2
- pbSetSystemFont(@sprites["overlay"].bitmap)
- drawbadges
- pbDrawTrainerCardFront
- if $PokemonGlobal.trainerRecording
- $PokemonGlobal.trainerRecording.play
- end
- pbFadeInAndShow(@sprites) { update }
- end
- def pbDrawTrainerCardFront
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- totalsec = Graphics.frame_count / Graphics.frame_rate
- hour = totalsec / 60 / 60
- min = totalsec / 60 % 60
- time=_ISPRINTF("{1:02d}:{2:02d}",hour,min)
- $PokemonGlobal.startTime=pbGetTimeNow if !$PokemonGlobal.startTime
- starttime=_ISPRINTF("{1:s} {2:d}, {3:d}",
- pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
- $PokemonGlobal.startTime.day,
- $PokemonGlobal.startTime.year)
- pubid=sprintf("%05d",$Trainer.publicID($Trainer.id))
- baseColor=Color.new(72,72,72)
- shadowColor=Color.new(160,160,160)
- wbaseColor=Color.new(255,255,255)
- bbaseColor=Color.new(0,188,255)
- textPositions=[
- [_INTL("Trainer"),10,5,0,wbaseColor],
- [_INTL("Card"),90,5,0,bbaseColor],
- [_INTL("{1}",$Trainer.name),42,227,0,wbaseColor],
- [_INTL("ID:"),34,256,0,wbaseColor],
- [_INTL("{1}",pubid),68,256,0,bbaseColor],
- [_INTL("Money"),208,65,0,wbaseColor],
- [_INTL("${1}",$Trainer.money),358,65,0,wbaseColor],
- [_INTL("Pokédex"),208,100,0,wbaseColor],
- [_ISPRINTF("{1:d}/{2:d}",$Trainer.pokedexOwned,$Trainer.pokedexSeen),358,100,0,wbaseColor],
- [_INTL("Playtime"),208,135,0,wbaseColor],
- [time,358,135,0,wbaseColor],
- [_INTL("Started"),208,170,0,wbaseColor],
- [starttime,358,170,0,wbaseColor]
- ]
- pbDrawTextPositions(overlay,textPositions)
- end
- def drawbadges
- x = 64
- y = @side==0 ? 202 : 0
- imagePositions = []
- for i in 0...8
- if $Trainer.badges[i]
- imagePositions.push(["Graphics/Pictures/Trainer Card/icon_badges",x,y,i*32,0,32,32])
- end
- x += 48 #play with this, I'm working without assets
- end
- imagePositions.push(["Graphics/trcardgraph/BadgeSelect",64+(48*@page),0,0,32,32]) if @side==1
- pbDrawImagePositions(overlay,imagePositions)
- end
- def pbStartSceneBack
- @sprites={}
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @sprites["card"]=IconSprite.new(0,0,@viewport)
- @sprites["card"].setBitmap(sprintf("Graphics/trcardgraph/%s",GYMLEADERS[@page][1]))
- drawbadges
- x=354
- y=254
- index=0
- for y in 0...2
- for x in 0...3
- if index<PokemonSpeciesIconSprite.new(GYMLEADERS[@page][3].length
- @sprites[sprintf("pokemon{%d}",index)]=PokemonSpeciesIconSprite.new(getID(PBSpecies,GYMLEADERS[@page][3][index]),@viewport)
- @sprites[sprintf("pokemon{%d}",index)].x-=(@sprites[sprintf("pokemon{%d}",index)].bitmap.width-x)
- @sprites[sprintf("pokemon{%d}",index)].y-=(@sprites[sprintf("pokemon{%d}",index)].bitmap.height-y)
- @sprites[sprintf("pokemon{%d}",index)].z=2
- end
- index+=1
- end
- x=354 # I have no clue if these numbers are right.
- y+=20
- end
- pbDrawTrainerCardBack
- if $PokemonGlobal.trainerRecording
- $PokemonGlobal.trainerRecording.play
- end
- pbFadeInAndShow(@sprites) { update }
- end
- def pbDrawTrainerCardBack
- background=pbResolveBitmap(sprintf("Graphics/trcardgraph/Brock"))
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- totalsec = Graphics.frame_count / Graphics.frame_rate
- hour = totalsec / 60 / 60
- min = totalsec / 60 % 60
- time=_ISPRINTF("{1:02d}:{2:02d}",hour,min)
- $PokemonGlobal.startTime=pbGetTimeNow if !$PokemonGlobal.startTime
- starttime=_ISPRINTF("{1:s} {2:d}, {3:d}",
- pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
- $PokemonGlobal.startTime.day,
- $PokemonGlobal.startTime.year)
- pubid=sprintf("%05d",$Trainer.publicID($Trainer.id))
- baseColor=Color.new(72,72,72)
- shadowColor=Color.new(160,160,160)
- wbaseColor=Color.new(255,255,255)
- bbaseColor=Color.new(0,188,255)
- textPositions=[
- [_INTL("Trainer"),10,5,0,wbaseColor],
- [_INTL("Card"),90,5,0,bbaseColor],
- [_INTL("Badges"),10,75,0,wbaseColor],
- [GYMLEADERS[@page][0],6,113,0,wbaseColor],
- [@page,54,153,0,wbaseColor],
- [_INTL("Gym leader:"),90,163,0,wbaseColor],
- [GYMLEADERS[@page][1],102,190,0,bbaseColor],
- [_INTL("Specialty:"),108,217,0,wbaseColor],
- [GYMLEADERS[@page][2],120,244,0,bbaseColor]
- ]
- pbDrawTextPositions(overlay,textPositions)
- end
- def pbTrainerCard
- loop do
- Graphics.update
- Input.update
- self.update
- if @side==0
- if Input.trigger?(Input::A)
- @side=1
- pbDrawTrainerCardBack
- end
- elsif @side==1
- if Input.trigger?(Input::A)
- @side=0
- pbDrawTrainerCardFront
- elsif Input.trigger?(Input::LEFT)
- oldpage = @page
- @page -= 1
- @page = 1 if @page<1
- @page = 8 if @page>8
- if @page!=oldpage # Move to next page
- dorefresh = true
- end
- elsif Input.trigger?(Input::RIGHT) && !@pokemon.egg?
- oldpage = @page
- @page += 1
- @page = 1 if @page>1
- @page = 8 if @page>8
- if @page!=oldpage # Move to next page
- dorefresh = true
- end
- end
- elsif Input.trigger?(Input::B)
- break
- end
- if dorefresh
- if @side==0
- pbDrawTrainerCardFront
- else
- pbDrawTrainerCardBack
- end
- end
- end
- end
- def pbEndScene
- pbFadeOutAndHide(@sprites) { update }
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- end
- end
- class PokemonTrainerCard
- def initialize(scene)
- @scene=scene
- end
- def pbStartScreen
- @scene.pbStartScene
- @scene.pbTrainerCard
- @scene.pbEndScene
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement