Advertisement
Caeles

Submenú VN

Oct 12th, 2021
1,304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 10.77 KB | None | 0 0
  1. class Status_menu
  2.     def update;end
  3.  
  4.     def initialize
  5.       @selected_item = 0
  6.       @items = []
  7.      
  8.       @atributosCmd = addCmd(["atributos","Atributos","openAtributos"])
  9.       @tiposCmd = addCmd(["tipos","Tipos","openTipos"])
  10.       @logrosCmd = addCmd(["logros","Logros","openLogros"])
  11.       @pokedexCmd = addCmd(["dex","Pokédex","openDex"])
  12.       @pagestatus=1
  13.  
  14.      
  15.       @icon_width = 66
  16.       @icon_height = 66
  17.  
  18.       @n_icons = 4#iconos por fila
  19.       @spacing_x = 30 #espacio en x entre los iconos
  20.       @spacing_y = 30 #espacio en y entre los iconos
  21.      
  22.       @menu_width = @n_icons*(@icon_width+@spacing_x)-@spacing_x
  23.       @menu_height = (@items.length/@n_icons.to_f).ceil*(@icon_height+@spacing_y)-@spacing_y
  24.            
  25.       @x_margin = (Graphics.width-@menu_width)/1.6 #separación entre los iconos y el borde izquiero de la pantalla
  26.       @y_margin = (Graphics.height-@menu_height)/1.18 #1.25 #separación entre los iconos y el borde superior de la pantalla
  27.      
  28.       @exit2 = false
  29.     end
  30.    
  31.   def pbUpdate
  32.     pbUpdateSpriteHash(@sprites)
  33.   end
  34.      
  35.     def pbStartScene # CARGA LAS COSAS
  36.         @sprites={}
  37.         @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  38.         @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  39.         @viewport.z=99999
  40.        
  41.         @sprites["bg"]=Sprite.new(@viewport)
  42.         @sprites["bg"].bitmap=RPG::Cache.picture("Status/bg")
  43.         @sprites["text"]=Sprite.new(@viewport)
  44.         @sprites["text"].bitmap=RPG::Cache.picture("Status/blank")
  45.         @sprites["barras"]=Sprite.new(@viewport)
  46.        
  47.         #@totalElements = 7
  48.         radius = 100
  49.        
  50.         @bitmaps={}
  51.        
  52.         for i in 0..6
  53.         @bitmaps["selec_"+i.to_s]=RPG::Cache.picture("Status/selec_"+(i+1).to_s)
  54.         end
  55.  
  56.     baseColor=Color.new(255,255,255)
  57.     shadowColor=Color.new(0,0,0,0)  
  58.    
  59.     pbSetSystemFont(@sprites["bg"].bitmap)
  60.     pbSetSystemFont(@sprites["text"].bitmap)
  61.  #   pbDrawTextPositions(@sprites["bg"].bitmap,text)
  62.        
  63.         counter = 0
  64.         for item in @items
  65.           @sprites["item_#{counter}"] = Sprite.new(@viewport)
  66.           @sprites["item_#{counter}"].bitmap=RPG::Cache.picture("Status/"+item[0])
  67.           @sprites["item_#{counter}"].x=@x_margin + ((@icon_width+@spacing_x) * (counter%@n_icons))
  68.           @sprites["item_#{counter}"].y=@y_margin + ((@icon_height+@spacing_y) * (counter/@n_icons))
  69.           counter += 1
  70.         end
  71.  
  72.         @sprites["selector"]=Sprite.new(@viewport)
  73.         @sprites["selector"].bitmap=RPG::Cache.picture("Status/selec_1")
  74.         redrawSelector
  75.         @sprites["selector"].z=99999        
  76.         pbSEPlay("menu")
  77.         page1
  78.       end
  79.      
  80.     def page1 #####ATRIBUTOS##########
  81.  
  82.       if @pagestatus==2
  83.         @sprites["text"].bitmap.clear
  84.         @pagestatus=1
  85.       end
  86.  
  87.         base=Color.new(248,248,248)
  88.         shadow=Color.new(104,104,104)
  89.    
  90.         @sprites["barras"].bitmap=pbBitmap("Graphics/Pictures/Status/barras")
  91.         @sprites["barras"].x=214
  92.         @sprites["barras"].y=100
  93.        
  94.         keyx=116
  95.         for i in 674..676
  96.           @sprites["key#{i}"]=Sprite.new(@viewport)
  97.           @sprites["key#{i}"].bitmap=pbBitmap("Graphics/Icons/item"+i.to_s)
  98.           @sprites["key#{i}"].x=keyx
  99.           @sprites["key#{i}"].y=206
  100.           @sprites["key#{i}"].z=99999
  101.           @sprites["key#{i}"].visible=true
  102.           keyx+=126
  103.         end
  104.        
  105.         icony=0
  106.                
  107.         for i in 0..$Trainer.party.length-1
  108.           @sprites["icon#{i}"]=Sprite.new(@viewport)
  109.           temp = $Trainer.party[i].species
  110.           if $Trainer.party[i].isEgg?
  111.             @sprites["icon#{i}"].bitmap=pbBitmap("Graphics/Icons/iconEgg")  
  112.           elsif temp <100
  113.             @sprites["icon#{i}"].bitmap=pbBitmap("Graphics/Icons/icon0"+temp.to_s)  
  114.           else
  115.             @sprites["icon#{i}"].bitmap=pbBitmap("Graphics/Icons/icon"+temp.to_s)
  116.           end
  117.           @sprites["icon#{i}"].src_rect=Rect.new(0,0,64,64)
  118.           @sprites["icon#{i}"].x=2
  119.           @sprites["icon#{i}"].y=icony
  120.           @sprites["icon#{i}"].z=99999
  121.           icony+=64
  122.         end
  123.        
  124.        
  125.         fuerza = checkPartyAtributos("fuerza").to_s
  126.         destruccion = checkPartyAtributos("destruccion").to_s
  127.         sigilo = checkPartyAtributos("sigilo").to_s
  128.         movilidad = checkPartyAtributos("movilidad").to_s
  129.         llavebronce = $PokemonBag.pbQuantity(:LLAVEBRONCE).to_s
  130.         llaveplata = $PokemonBag.pbQuantity(:LLAVEPLATA).to_s
  131.         llaveoro = $PokemonBag.pbQuantity(:LLAVEORO).to_s
  132.         posatr=100/4
  133.         coratr=66
  134.  
  135.         textpos=[
  136.        [_INTL("Fuerza"),110,posatr+coratr,0,Color.new(156,81,21),Color.new(168,48,56,0)],
  137.        [fuerza,440,posatr+coratr,0,base,shadow],
  138.        [_INTL("Destruc."),110,posatr*2+coratr,0,Color.new(180,32,32),Color.new(168,48,56,0)],
  139.        [destruccion,440,posatr*2+coratr,0,base,shadow],
  140.        [_INTL("Sigilo"),110,posatr*3+coratr,0,Color.new(115,48,187),Color.new(168,48,56,0)],
  141.        [sigilo,440,posatr*3+coratr,0,base,shadow],
  142.        [_INTL("Movilidad"),110,posatr*4+coratr,0,Color.new(42,138,130),Color.new(168,48,56,0)],
  143.        [movilidad,440,posatr*4+coratr,0,base,shadow],
  144.        [_INTL("x{1}",llavebronce),166,212,0,base,shadow],
  145.        [_INTL("x{1}",llaveplata),166+126,212,0,base,shadow],
  146.        [_INTL("x{1}",llaveoro),166+126*2,212,0,base,shadow],
  147.        [_INTL("ATRIBUTOS"),116,36,0,base,shadow],
  148.         ]
  149.    
  150.         posx=216
  151.         posy=105
  152.  
  153.       atributecolors=[
  154.          Color.new(199,118,49),Color.new(156,81,28),     # Fuerza
  155.          Color.new(199,81,49),Color.new(156,49,28),      # Destrucción
  156.          Color.new(122,63,152),Color.new(81,34,110),    # Sigilo
  157.          Color.new(65,178,174),Color.new(42,138,130)    # Movilidad
  158.       ]
  159.         #Fuerza
  160.         @sprites["text"].bitmap.fill_rect(posx,posy,fuerza.to_i*218/120,4,atributecolors[0])
  161.         @sprites["text"].bitmap.fill_rect(posx,posy+2,fuerza.to_i*218/120,6,atributecolors[1])
  162.        
  163.         #Destrucción
  164.         @sprites["text"].bitmap.fill_rect(posx,posy+24,destruccion.to_i*218/120,4,atributecolors[2])
  165.         @sprites["text"].bitmap.fill_rect(posx,posy+24+2,destruccion.to_i*218/120,6,atributecolors[3])
  166.      
  167.         #Sigilo
  168.         @sprites["text"].bitmap.fill_rect(posx,posy+48,sigilo.to_i*218/120,4,atributecolors[4])
  169.         @sprites["text"].bitmap.fill_rect(posx,posy+48+2,sigilo.to_i*218/120,6,atributecolors[5])
  170.  
  171.         #Movilidad
  172.         @sprites["text"].bitmap.fill_rect(posx,posy+72,movilidad.to_i*218/120,4,atributecolors[6])
  173.         @sprites["text"].bitmap.fill_rect(posx,posy+72+2,movilidad.to_i*218/120,6,atributecolors[7])
  174.        
  175.         pbDrawTextPositions(@sprites["text"].bitmap,textpos)
  176.         pbUpdate
  177.       end
  178.      
  179.     def page2 #####NUMERO DE TIPOS EN PARTY##########
  180.    
  181.       if @pagestatus==1
  182.           for i in 674..676
  183.             @sprites["key#{i}"].visible=false
  184.           end
  185.         @sprites["text"].bitmap.clear
  186.         @pagestatus=2
  187.       end
  188.      
  189.         base=Color.new(248,248,248)
  190.         shadow=Color.new(104,104,104)
  191.    
  192.         #@sprites["tipos"]=Sprite.new(@viewport)
  193.         @sprites["barras"].bitmap=pbBitmap("Graphics/Pictures/Status/typelist")
  194.         @sprites["barras"].x=106
  195.         @sprites["barras"].y=88
  196.         textype=[]
  197.        
  198.         tipos = [:NORMAL,:FIGHTING,:FLYING,:POISON,:GROUND,
  199.           :ROCK,:FIRE,:WATER,:GRASS,:ELECTRIC,:PSYCHIC,
  200.           :ICE,:BUG,:GHOST,:STEEL,:DRAGON,:DARK,:FAIRY]
  201.        
  202.           typex=180
  203.           typey=86
  204.          
  205.           textype.push([_INTL("ÍNDICE ELEMENTAL"),110,36,0,base,shadow])
  206.  
  207.           for i in tipos
  208.             checkPartyTypes(i)
  209.             j = checkPartyTypes(i).to_s
  210.             textype.push([_INTL("x{1}",j),typex,typey,0,base,shadow])
  211.             if i==:ROCK
  212.               typex=180+128
  213.               typey=86-28
  214.             elsif i==:ICE
  215.               typex=180+128*2
  216.               typey=86-28
  217.             end
  218.             typey+=28
  219.           end
  220.  
  221.         pbDrawTextPositions(@sprites["text"].bitmap,textype)
  222.         pbUpdate
  223.     end
  224.    
  225.     def pbEndScene # CUANDO TERMINA...
  226.         pbDisposeSpriteHash(@sprites)
  227.         @viewport.dispose if @viewport
  228.     end
  229.        
  230.    
  231.     def redrawSelector
  232.      
  233.    @sprites["selector"].bitmap=@bitmaps["selec_"+@selected_item.to_s]
  234.    @sprites["selector"].x=@x_margin + ((@icon_width+@spacing_x) * (@selected_item%@n_icons))
  235.    @sprites["selector"].y=@y_margin + ((@icon_height+@spacing_y) * (@selected_item/@n_icons))
  236.  
  237.     end
  238.    
  239.     def addCmd(item)
  240.         return @items.push(item).length-1
  241.     end
  242.    
  243.     def pbUpdate    
  244.         @xcount=999
  245.         @posible1=0
  246.         @posible2=0
  247.         @posible3=0
  248.         loop do
  249.           Input.update
  250.           redrawSelector
  251.           Graphics.update
  252.  
  253.       ################### FUNCIONES AQUÍ #######
  254.  
  255.           if Input.trigger?(Input::RIGHT)
  256.               @selected_item+=1
  257.           end
  258.          
  259.           if Input.trigger?(Input::LEFT)
  260.               @selected_item-=1
  261.           end
  262.  
  263.           if Input.trigger?(Input::UP)
  264.               @selected_item-=@n_icons
  265.               if(@selected_item < 0)
  266.                 @selected_item = 0
  267.               end
  268.           end
  269.          
  270.           if Input.trigger?(Input::DOWN)
  271.               @selected_item+=@n_icons
  272.               if(@selected_item > @items.length-1)
  273.                 @selected_item = @items.length-1
  274.               end
  275.           end
  276.          
  277.           if (@selected_item < 0)
  278.               @selected_item = @items.length-1
  279.           end
  280.  
  281.           if (@selected_item >= @items.length)
  282.               @selected_item=0
  283.           end
  284.  
  285.           if Input.trigger?(Input::C)
  286.             send(@items[@selected_item][2])
  287.           end
  288.                    
  289.           if Input.trigger?(Input::B) || @exit2
  290.             if @pagestatus==2
  291.               @sprites["text"].bitmap.clear
  292.               @pagestatus=1
  293.             end
  294.             break
  295.           end
  296.       end # loop
  297.       Input.update
  298.       Graphics.update
  299.       #pbCallMenu2
  300.     end # update
  301.  
  302. end # Cierra la class
  303.  
  304. ###################################################
  305.  
  306.  def pbCallStatus_menu
  307.      scene=Status_menu.new
  308.      scene.pbStartScene
  309.      #scene.pbUpdate
  310.      scene.pbEndScene
  311.  end
  312.  
  313. def exitMenu
  314.   @exit2 = true
  315.   #break
  316. end
  317.  
  318. def openDex
  319.      pbFadeOutIn(99999) {scene=PokemonPokedexScene.new
  320.                screen=PokemonPokedex.new(scene)
  321.                screen.pbStartScreen
  322.                   }
  323. end
  324.  
  325.  
  326. def openLogros
  327.    General.new
  328.    #scene.pbUpdate
  329. end
  330.  
  331. def openAtributos
  332.    if @pagestatus!=1
  333.      page1
  334.    end  
  335. end
  336.  
  337. def openTipos
  338.   if @pagestatus!=2
  339.      page2
  340.    end
  341. end  
  342.  
  343.  
  344.  
  345.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement