Advertisement
MundoBezier

Pokémon compañero inseparable

Jun 7th, 2022
1,362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.52 KB | None | 0 0
  1. ###############################################################
  2. #               Pokémon compañero inserparable                #
  3. #                      Autor : Bezier                         #
  4. ###############################################################
  5. # Este código permite guardar un ID personal de un pokémon y  #
  6. # evitar que sea liberado o dejado en el PC.                  #
  7. #                                                             #
  8. # En un evento se deberá poner un código similar a este para  #
  9. # poder guardar el ID personal del Pokémon entregado:         #
  10. ###############################################################
  11. =begin
  12. # Código de evento que entrega un Pokémon y guarda su ID Personal
  13.  
  14. poke=PokeBattle_Pokemon.new(:PIKACHU,6,$Trainer)
  15. pbAddPokemon(poke)
  16. $Trainer.partnerID=poke.personalID
  17.  
  18. =end
  19.  
  20. class PokeBattle_Trainer
  21.   attr_accessor(:partnerID)
  22. end
  23.  
  24. class PokemonStorageScreen
  25.  
  26.   def pbRelease(selected,heldpoke)
  27.     box=selected[0]
  28.     index=selected[1]
  29.     pokemon=(heldpoke)?heldpoke:@storage[box,index]
  30.     return if !pokemon
  31.  
  32.     # Comprueba el ID personal del Pokémon compañero
  33.     if pokemon.personalID==$Trainer.partnerID
  34.       if pokemon.genderflag==0
  35.         pbDisplay(_INTL("No puedes soltar a tu compañero."))
  36.       else
  37.         pbDisplay(_INTL("No puedes soltar a tu compañera."))
  38.       end
  39.       return false
  40.     end
  41.  
  42.     if pokemon.isEgg?
  43.       pbDisplay(_INTL("No puedes soltar un Huevo."))
  44.       return false
  45.     elsif pokemon.mail
  46.       pbDisplay(_INTL("Primero se debe quitar la Carta."))
  47.       return false
  48.     end
  49.     if box==-1 && pbAbleCount<=1 && pbAble?(pokemon) && !heldpoke
  50.       pbDisplay(_INTL("¡Ése es tu último Pokémon!"))
  51.       return
  52.     end
  53.     command=pbShowCommands(_INTL("¿Soltar a este Pokémon?"),[_INTL("No"),_INTL("Sí")])
  54.     if command==1
  55.       pkmnname=pokemon.name
  56.       @scene.pbRelease(selected,heldpoke)
  57.       if heldpoke
  58.         @heldpkmn=nil
  59.       else
  60.         @storage.pbDelete(box,index)
  61.       end
  62.       @scene.pbRefresh
  63.       pbDisplay(_INTL("Soltaste a {1}.",pkmnname))
  64.       pbDisplay(_INTL("¡Adiós, {1}!",pkmnname))
  65.       @scene.pbRefresh
  66.     end
  67.     return
  68.   end
  69.  
  70.   def pbStore(selected,heldpoke)
  71.     box=selected[0]
  72.     index=selected[1]
  73.     if box!=-1
  74.       raise _INTL("No se puede dejar desde la Caja...")
  75.     end
  76.  
  77.     pokemon=heldpoke ? heldpoke : @storage[box,index]
  78.     return if !pokemon
  79.  
  80.     if pokemon.personalID==$Trainer.partnerID
  81.       if pokemon.genderflag==0
  82.         pbDisplay(_INTL("No puedes dejar a tu compañero."))
  83.       else
  84.         pbDisplay(_INTL("No puedes dejar a tu compañera."))
  85.       end
  86.       return false
  87.     end
  88.  
  89.     if pbAbleCount<=1 && pbAble?(@storage[box,index]) && !heldpoke
  90.       pbDisplay(_INTL("¡Ése es tu último Pokémon!"))
  91.     elsif @storage[box,index].mail
  92.       pbDisplay(_INTL("Primero se debe quitar la Carta."))
  93.     else
  94.       loop do
  95.         destbox=@scene.pbChooseBox(_INTL("¿En qué Caja dejarlo?"))
  96.         if destbox>=0
  97.           success=false
  98.           firstfree=@storage.pbFirstFreePos(destbox)
  99.           if firstfree<0
  100.             pbDisplay(_INTL("La Caja está llena."))
  101.             next
  102.           end
  103.           @scene.pbStore(selected,heldpoke,destbox,firstfree)
  104.           if heldpoke
  105.             @storage.pbMoveCaughtToBox(heldpoke,destbox)
  106.             @heldpkmn=nil
  107.           else
  108.             @storage.pbMove(destbox,-1,-1,index)
  109.           end
  110.         end
  111.         break
  112.       end
  113.       @scene.pbRefresh
  114.     end
  115.   end
  116.  
  117.   def pbSwap(selected)
  118.     box=selected[0]
  119.     index=selected[1]
  120.  
  121.     if box>=0 && @heldpkmn.personalID==$Trainer.partnerID
  122.       if @heldpkmn.genderflag==0
  123.         pbDisplay(_INTL("No puedes dejar a tu compañero."))
  124.       else
  125.         pbDisplay(_INTL("No puedes dejar a tu compañera."))
  126.       end
  127.       return false
  128.     end
  129.    
  130.     if !@storage[box,index]
  131.       raise _INTL("Posición {1},{2} está vacía...",box,index)
  132.     end
  133.     if box==-1 && pbAble?(@storage[box,index]) && pbAbleCount<=1 && !pbAble?(@heldpkmn)
  134.       pbDisplay(_INTL("¡Ése es tu último Pokémon!"))
  135.       return false
  136.     end
  137.     if box!=-1 && @heldpkmn.mail
  138.       pbDisplay("Primero se debe quitar la Carta.")
  139.       return false
  140.     end
  141.     @scene.pbSwap(selected,@heldpkmn)
  142.     if box>=0
  143.       @heldpkmn.heal
  144.       @heldpkmn.formTime=nil if @heldpkmn.respond_to?("formTime") && @heldpkmn.formTime
  145.     end
  146.     tmp=@storage[box,index]
  147.     @storage[box,index]=@heldpkmn
  148.     @heldpkmn=tmp
  149.     @scene.pbRefresh
  150.     return true
  151.   end
  152.  
  153.   def pbPlace(selected)
  154.     box=selected[0]
  155.     index=selected[1]
  156.  
  157.     if box>=0 && @heldpkmn.personalID==$Trainer.partnerID
  158.       if @heldpkmn.genderflag==0
  159.         pbDisplay(_INTL("No puedes dejar a tu compañero."))
  160.       else
  161.         pbDisplay(_INTL("No puedes dejar a tu compañera."))
  162.       end
  163.       return false
  164.     end
  165.  
  166.     if @storage[box,index]
  167.       raise _INTL("Posición {1},{2} no está vacía...",box,index)
  168.     end
  169.     if box!=-1 && index>=@storage.maxPokemon(box)
  170.       pbDisplay("No se puede colocar ahí.")
  171.       return
  172.     end
  173.     if box!=-1 && @heldpkmn.mail
  174.       pbDisplay("Primero se debe quitar la Carta.")
  175.       return
  176.     end
  177.     if box>=0
  178.       @heldpkmn.heal
  179.       @heldpkmn.formTime=nil if @heldpkmn.respond_to?("formTime") && @heldpkmn.formTime
  180.     end
  181.     @scene.pbPlace(selected,@heldpkmn)
  182.     @storage[box,index]=@heldpkmn
  183.     if box==-1
  184.       @storage.party.compact!
  185.     end
  186.     @scene.pbRefresh
  187.     @heldpkmn=nil
  188.   end
  189.  
  190. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement