Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- COLUMNS = 5
- ROWS = 4
- LEFT_MARGIN = 88
- UP_MARGIN = 24
- #The X,Y of where you want the Pokemon sprite to be on the bg's sprite
- POKEMON_CENTER = [32,42]
- BASE_LEVEL = 32
- DEFAULT_CONTENTS = [
- :PIDGEOTTO,
- :PIKACHU,
- :NIDOKING,
- :NIDOQUEEN,
- :AERODACTYL,
- :CROBAT,
- :AMPHAROS,
- :SCIZOR,
- :HOUNDOOM,
- :PUPITAR,
- :SHIFTRY,
- :LAIRON,
- :MANECTRIC,
- :VIBRAVA,
- :METANG,
- :AMBIPOM,
- :LOPUNNY,
- :CROAGUNK,
- :WEAVILE,
- :MAMOSWINE
- ]
- #center_origins command from Marin's Scripting Utilities.
- class Sprite
- def center_origins
- return if !self.bitmap
- self.ox = self.bitmap.width / 2
- self.oy = self.bitmap.height / 2
- end
- end
- #Since SpriteWrapper isn't a subclass of Sprite, this section needs to stay in
- class SpriteWrapper
- def center_origins
- return if !self.bitmap
- self.ox = self.bitmap.width / 2
- self.oy = self.bitmap.height / 2
- end
- end
- class PokeSelectDisplay < SpriteWrapper
- attr_accessor :selected
- attr_accessor :icon
- attr_accessor :overlay
- def initialize(pokemon,viewport=nil)
- super(viewport)
- self.selected = false
- self.bitmap = Bitmap.new("Graphics/Pictures/drawer")
- self.center_origins
- self.ox = POKEMON_CENTER[0]
- self.oy = POKEMON_CENTER[1]
- newmon = PokeBattle_Pokemon.new(pokemon,BASE_LEVEL,$Trainer)
- self.icon = PokemonIconSprite.new(newmon,viewport)
- self.icon.ox = 32
- self.icon.oy = 32
- self.overlay = BitmapSprite.new(self.bitmap.width,self.bitmap.height,viewport)
- self.overlay.ox = self.ox
- self.overlay.oy = self.oy
- end
- def x=(value)
- super
- self.icon.x = value
- self.overlay.x = value
- end
- def y=(value)
- super
- self.icon.y = value
- self.overlay.y = value
- end
- def update
- super
- self.icon.update
- end
- def z=(value)
- super
- self.icon.z = value
- self.overlay.z = value
- end
- def pokemon
- return self.icon.pokemon
- end
- def setPokemon(pokemon)
- newmon = PokeBattle_Pokemon.new(pokemon,BASE_LEVEL,$Trainer)
- self.icon = PokemonIconSprite.new(newmon,viewport)
- end
- def dispose
- super
- self.icon.dispose if self.icon
- self.overlay.dispose if self.overlay
- end
- def select
- self.selected = true
- self.bitmap = Bitmap.new("Graphics/Pictures/drawer_select")
- end
- def deselect
- self.selected = false
- self.bitmap = Bitmap.new("Graphics/Pictures/drawer")
- end
- end
- def pbPokeSelect
- scene = PokeSelect.new
- end
- class PokeSelect
- def initialize
- @pokemon=DEFAULT_CONTENTS
- @viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
- @sprites = {}
- @selected = []
- @SelNo=0
- #@rowboost = 0
- @rows = (@pokemon.length)/COLUMNS
- @rows += 1 if (@pokemon.length)%COLUMNS > 0
- @rows = ROWS if @rows < ROWS
- @size = ROWS * COLUMNS
- for i in 0...@size
- entry = nil
- entry = @pokemon[i] if @pokemon[i]
- @sprites["pokemon#{i}"] = PokeSelectDisplay.new(entry,@viewport)
- bg = @sprites["pokemon#{i}"]
- bg.x = LEFT_MARGIN + bg.ox + (bg.bitmap.width*(i%COLUMNS))
- bg.y = UP_MARGIN + bg.oy + (bg.bitmap.height*(i/COLUMNS))
- end
- @sprites["cursor"] = Sprite.new(@viewport)
- @sprites["cursor"].bitmap = Bitmap.new("Graphics/Pictures/drawercursor")
- @sprites["cursor"].center_origins
- @sprites["messagebox"]=Window_AdvancedTextPokemon.new("Test")
- @sprites["messagebox"].viewport=@viewport
- @sprites["messagebox"].visible=false
- #@sprites["messagebox"].letterbyletter=true
- pbBottomLeftLines(@sprites["messagebox"],2)
- $game_system.menu_disabled=true
- main
- end
- def main
- loop do
- sel = @sprites["pokemon#{@SelNo}"]
- @sprites["cursor"].x=sel.x
- @sprites["cursor"].y=sel.y
- update
- if Input.trigger?(Input::LEFT)
- pbPlayDecisionSE
- if @SelNo%COLUMNS == 0
- @SelNo+=COLUMNS-1
- else
- @SelNo-=1
- end
- elsif Input.trigger?(Input::RIGHT)
- pbPlayDecisionSE
- if @SelNo%COLUMNS == COLUMNS-1
- @SelNo-=COLUMNS-1
- else
- @SelNo+=1
- end
- elsif Input.trigger?(Input::DOWN)
- pbPlayDecisionSE
- if @SelNo/COLUMNS == ROWS-1
- @SelNo-= (COLUMNS * (ROWS-1))
- else
- @SelNo+=COLUMNS
- end
- elsif Input.trigger?(Input::UP)
- pbPlayDecisionSE
- if @SelNo/COLUMNS == 0
- @SelNo+=(COLUMNS * (ROWS-1))
- else
- @SelNo-=COLUMNS
- end
- elsif Input.trigger?(Input::C)
- if !sel.selected
- if pbDisplayConfirm(_INTL("Would you like to take {1}?",sel.pokemon.name))
- @selected.push(sel.pokemon)
- sel.select
- end
- else
- if pbDisplayConfirm(_INTL("Would you like to put back {1}?",sel.pokemon.name))
- sel.deselect
- for i in 0...@selected.length
- @selected.delete_at(i) if @selected[i] == sel.pokemon
- end
- end
- end
- end
- if @selected.length == 5
- if pbDisplayConfirm(_INTL("Are you satisfied with these choices?"))
- break
- else
- sel.deselect
- @selected.pop
- end
- end
- end
- for i in 0...@selected.length
- pbAddPokemonSilent(@selected[i])
- end
- dispose
- pbWait(5)
- $game_system.menu_disabled=false
- end
- def dispose
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- end
- def update
- Graphics.update
- Input.update
- pbUpdateSpriteHash(@sprites)
- end
- def pbDisplay(text)
- @sprites["messagebox"].text=text
- @sprites["messagebox"].visible=true
- pbPlayDecisionSE()
- loop do
- Graphics.update
- Input.update
- self.update
- if @sprites["messagebox"].busy? && Input.trigger?(Input::C)
- pbPlayDecisionSE() if @sprites["messagebox"].pausing?
- @sprites["messagebox"].resume
- end
- if !@sprites["messagebox"].busy? &&
- (Input.trigger?(Input::C) || Input.trigger?(Input::B))
- break
- end
- end
- @sprites["messagebox"].visible=false
- end
- def pbDisplayConfirm(text)
- ret=-1
- @sprites["messagebox"].text=text
- @sprites["messagebox"].visible=true
- using(cmdwindow=Window_CommandPokemon.new([_INTL("Yes"),_INTL("No")])){
- cmdwindow.z=@viewport.z+1
- cmdwindow.visible=false
- pbBottomRight(cmdwindow)
- cmdwindow.y-=@sprites["messagebox"].height
- loop do
- Graphics.update
- Input.update
- cmdwindow.visible=true if !@sprites["messagebox"].busy?
- cmdwindow.update
- self.update
- if Input.trigger?(Input::B) && !@sprites["messagebox"].busy?
- ret=false
- break
- end
- if Input.trigger?(Input::C) && @sprites["messagebox"].resume && !@sprites["messagebox"].busy?
- ret=(cmdwindow.index==0)
- break
- end
- end
- }
- @sprites["messagebox"].visible=false
- return ret
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement