#=============================================================================== # Pokédex Regional Dexes list menu screen # * For choosing which region list to view. Only appears when there is more # than one accessible region list to choose from, and if # Settings::USE_CURRENT_REGION_DEX is false. #=============================================================================== class Window_DexesList < Window_CommandPokemon def initialize(commands, commands2, width) @commands2 = commands2 super(commands, width) @selarrow = AnimatedBitmap.new("Graphics/Pictures/selarrow_white") self.baseColor = Color.new(248, 248, 248) self.shadowColor = Color.new(0, 0, 0) self.windowskin = nil end def drawItem(index, count, rect) super(index, count, rect) if index >= 0 && index < @commands2.length pbDrawShadowText(self.contents, rect.x + 254, rect.y, 64, rect.height, sprintf("%d", @commands2[index][0]), self.baseColor, self.shadowColor, 1) pbDrawShadowText(self.contents, rect.x + 350, rect.y, 64, rect.height, sprintf("%d", @commands2[index][1]), self.baseColor, self.shadowColor, 1) allseen = (@commands2[index][0] >= @commands2[index][2]) allown = (@commands2[index][1] >= @commands2[index][2]) pbDrawImagePositions( self.contents, [["Graphics/Pictures/Pokedex/icon_menuseenown", rect.x + 236, rect.y + 2, (allseen) ? 24 : 0, 0, 24, 24], ["Graphics/Pictures/Pokedex/icon_menuseenown", rect.x + 332, rect.y + 2, (allown) ? 24 : 0, 24, 24, 24]] ) end end end #=============================================================================== # #=============================================================================== class PokemonPokedexMenu_Scene def pbUpdate pbUpdateSpriteHash(@sprites) end def pbStartScene(commands, commands2) @commands = commands @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) @viewport.z = 99999 @sprites = {} @sprites["background"] = IconSprite.new(0, 0, @viewport) @sprites["background"].setBitmap(_INTL("Graphics/Pictures/Pokedex/bg_menu")) @sprites["headings"] = Window_AdvancedTextPokemon.newWithSize( _INTL("SEENOBTAINED"), 286, 136, 208, 64, @viewport ) @sprites["headings"].windowskin = nil @sprites["commands"] = Window_DexesList.new(commands, commands2, Graphics.width - 84) @sprites["commands"].x = 40 @sprites["commands"].y = 192 @sprites["commands"].height = 192 @sprites["commands"].viewport = @viewport pbFadeInAndShow(@sprites) { pbUpdate } end def pbScene ret = -1 loop do Graphics.update Input.update pbUpdate if Input.trigger?(Input::BACK) pbPlayCloseMenuSE break elsif Input.trigger?(Input::USE) ret = @sprites["commands"].index (ret == @commands.length - 1) ? pbPlayCloseMenuSE : pbPlayDecisionSE break end end return ret end def pbEndScene pbFadeOutAndHide(@sprites) { pbUpdate } pbDisposeSpriteHash(@sprites) @viewport.dispose end end #=============================================================================== # #=============================================================================== class PokemonPokedexMenuScreen def initialize(scene) @scene = scene end def pbStartScreen commands = [] commands2 = [] dexnames = Settings.pokedex_names $player.pokedex.accessible_dexes.each do |dex| if dexnames[dex].nil? commands.push(_INTL("Pokédex")) elsif dexnames[dex].is_a?(Array) commands.push(dexnames[dex][0]) else commands.push(dexnames[dex]) end commands2.push([$player.pokedex.seen_count(dex), $player.pokedex.owned_count(dex), pbGetRegionalDexLength(dex)]) end commands.push(_INTL("Exit")) @scene.pbStartScene(commands, commands2) loop do cmd = @scene.pbScene break if cmd < 0 || cmd >= commands2.length # Cancel/Exit $PokemonGlobal.pokedexDex = $player.pokedex.accessible_dexes[cmd] pbFadeOutIn { scene = PokemonPokedex_Scene.new screen = PokemonPokedexScreen.new(scene) screen.pbStartScreen } end @scene.pbEndScene end end