venom12314

PokemonStorageNoSendv1.2

Oct 16th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.84 KB | None | 0 0
  1. #Pokemon Restrictions Script v1.2 by venom12
  2. #v 1.2 update add support for not able to evolve pokemon or trade.
  3.  
  4. class PokeBattle_Pokemon
  5. attr_accessor(:restrictions)
  6. def restrictions
  7. @restrictions=false if !@restrictions
  8. return @restrictions
  9. end
  10. end
  11.  
  12. class PokemonStorageScreen
  13. alias pbStore_old pbStore
  14. def pbStore(selected,heldpoke,cantsend=false)
  15.     box=selected[0]
  16.     index=selected[1]
  17.     cantsend=true if $Trainer.party[index].restrictions
  18.     if box!=-1
  19.       raise _INTL("Can't deposit from box...")
  20.     end  
  21.    if cantsend
  22.       pbDisplay(_INTL("Can't send that pokemon."))
  23.       cantsend=false
  24.       return false
  25.    end
  26.     if pbAbleCount<=1 && pbAble?(@storage[box,index]) && !heldpoke
  27.       pbDisplay(_INTL("That's your last Pokémon!"))
  28.     elsif @storage[box,index].mail
  29.       pbDisplay(_INTL("Please remove the Mail."))
  30.     else
  31.    cantsend=true if $Trainer.party[index].restrictions
  32.       loop do
  33.     destbox=@scene.pbChooseBox(_INTL("Deposit in which Box?"))
  34.         if destbox>=0
  35.           success=false
  36.           firstfree=@storage.pbFirstFreePos(destbox)
  37.           if firstfree<0
  38.             pbDisplay(_INTL("The Box is full."))
  39.             next
  40.           end
  41.           @scene.pbStore(selected,heldpoke,destbox,firstfree)
  42.           if heldpoke
  43.             @storage.pbMoveCaughtToBox(heldpoke,destbox)
  44.             @heldpkmn=nil
  45.           else
  46.             @storage.pbMove(destbox,-1,-1,index)
  47.           end
  48.         end
  49.         break
  50.       end
  51.       @scene.pbRefresh
  52.     end
  53.   end
  54. alias pbHold_old pbHold
  55.  def pbHold(selected,cantsend=false)
  56.     box=selected[0]
  57.     index=selected[1]
  58.     if box==-1 && pbAble?(@storage[box,index]) && pbAbleCount<=1
  59.       pbDisplay(_INTL("That's your last Pokémon!"))
  60.       return
  61.     end
  62.      cantsend=true if $Trainer.party[index].restrictions
  63.    if cantsend
  64.       pbDisplay(_INTL("Can't move that pokemon."))
  65.       cantsend=false
  66.       return false
  67.    end
  68.     @scene.pbHold(selected)
  69.     @heldpkmn=@storage[box,index]
  70.     @storage.pbDelete(box,index)
  71.     @scene.pbRefresh
  72.   end
  73.  
  74. alias pbSwap_old pbSwap
  75.    def pbSwap(selected,cantsend=false)
  76.     box=selected[0]
  77.     index=selected[1]
  78.     if !@storage[box,index]
  79.       raise _INTL("Position {1},{2} is empty...",box,index)
  80.     end
  81.     if box==-1 && pbAble?(@storage[box,index]) && pbAbleCount<=1 && !pbAble?(@heldpkmn)
  82.       pbDisplay(_INTL("That's your last Pokémon!"))
  83.       return false
  84.     end
  85.     if box!=-1 && @heldpkmn.mail
  86.       pbDisplay("Please remove the mail.")
  87.       return false
  88.     end
  89.      cantsend=true if $Trainer.party[index].restrictions
  90.    if cantsend
  91.       pbDisplay(_INTL("Can't move that pokemon."))
  92.       cantsend=false
  93.       return false
  94.    end
  95.     @scene.pbSwap(selected,@heldpkmn)
  96.     if box>=0
  97.       @heldpkmn.heal
  98.       @heldpkmn.formTime=nil if @heldpkmn.respond_to?("formTime") && @heldpkmn.formTime
  99.     end
  100.     tmp=@storage[box,index]
  101.     @storage[box,index]=@heldpkmn
  102.     @heldpkmn=tmp
  103.     @scene.pbRefresh
  104.     return true
  105.   end
  106. end
  107.  
  108. ItemHandlers::UseOnPokemon.add(:FIRESTONE,proc{|item,pokemon,scene|
  109.    if (pokemon.restrictions rescue false)
  110.      scene.pbDisplay(_INTL("You can't evolve that pokemon."))
  111.      next false
  112.    end
  113.    if (pokemon.isShadow? rescue false)
  114.      scene.pbDisplay(_INTL("It won't have any effect."))
  115.      next false
  116.    end
  117.    newspecies=pbCheckEvolution(pokemon,item)
  118.    if newspecies<=0
  119.      scene.pbDisplay(_INTL("It won't have any effect."))
  120.      next false
  121.    else
  122.      pbFadeOutInWithMusic(99999){
  123.         evo=PokemonEvolutionScene.new
  124.         evo.pbStartScreen(pokemon,newspecies)
  125.         evo.pbEvolution(false)
  126.         evo.pbEndScreen
  127.         if scene.is_a?(PokemonBag_Scene)
  128.           scene.pbRefreshAnnotations(proc{|p| pbCheckEvolution(p,item)>0 })
  129.           scene.pbRefresh
  130.         end
  131.      }
  132.      next true
  133.    end
  134. })
  135.  
  136. ItemHandlers::UseOnPokemon.copy(:FIRESTONE,
  137.    :THUNDERSTONE,:WATERSTONE,:LEAFSTONE,:MOONSTONE,
  138.    :SUNSTONE,:DUSKSTONE,:DAWNSTONE,:SHINYSTONE)
  139.  
  140. def pbChoosePokemonForTrade(variableNumber,nameVarNumber,wanted)
  141.   pbChoosePokemon(variableNumber,nameVarNumber,proc {|poke|
  142.      if wanted.is_a?(String) || wanted.is_a?(Symbol)
  143.        wanted=getID(PBSpecies,wanted)
  144.      end
  145.      return !poke.isEgg? && !(poke.isShadow? rescue false) && poke.species==wanted || (poke.restrictions rescue false)
  146.   })
  147. end
  148.    
  149. class PokemonEvolutionScene
  150. alias pbEvolution_old pbEvolution
  151.   def pbEvolution(cancancel=true)
  152.     metaplayer1=SpriteMetafilePlayer.new(@metafile1,@sprites["rsprite1"])
  153.     metaplayer2=SpriteMetafilePlayer.new(@metafile2,@sprites["rsprite2"])
  154.     metaplayer1.play
  155.     metaplayer2.play
  156.     pbBGMStop()
  157.     pbPlayCry(@pokemon)
  158.     Kernel.pbMessageDisplay(@sprites["msgwindow"],
  159.        _INTL("\\se[]What?\r\n{1} is evolving!\\^",@pokemon.name)) { pbUpdate }
  160.     Kernel.pbMessageWaitForInput(@sprites["msgwindow"],100,true) { pbUpdate }
  161.     pbPlayDecisionSE()
  162.     oldstate=pbSaveSpriteState(@sprites["rsprite1"])
  163.     oldstate2=pbSaveSpriteState(@sprites["rsprite2"])
  164.     pbBGMPlay("evolv")
  165.     canceled=false
  166.     begin
  167.       pbUpdateNarrowScreen
  168.       metaplayer1.update
  169.       metaplayer2.update
  170.       Graphics.update
  171.       Input.update
  172.       pbUpdate(true)
  173.       if Input.trigger?(Input::B) && cancancel || @pokemon.restrictions
  174.         pbBGMStop()
  175.         pbPlayCancelSE()
  176.         canceled=true
  177.         break
  178.       end
  179.     end while metaplayer1.playing? && metaplayer2.playing?
  180.     pbFlashInOut(canceled,oldstate,oldstate2)
  181.     if canceled
  182.       Kernel.pbMessageDisplay(@sprites["msgwindow"],
  183.          _INTL("Huh?\r\n{1} stopped evolving!",@pokemon.name)) { pbUpdate }
  184.     else
  185.       frames=pbCryFrameLength(@newspecies)
  186.       pbBGMStop()
  187.       pbPlayCry(@newspecies)
  188.       frames.times do
  189.         Graphics.update
  190.         pbUpdate
  191.       end
  192.       pbMEPlay("EvolutionSuccess")
  193.       newspeciesname=PBSpecies.getName(@newspecies)
  194.       oldspeciesname=PBSpecies.getName(@pokemon.species)
  195.       Kernel.pbMessageDisplay(@sprites["msgwindow"],
  196.          _INTL("\\se[]Congratulations! Your {1} evolved into {2}!\\wt[80]",
  197.          @pokemon.name,newspeciesname)) { pbUpdate }
  198.       @sprites["msgwindow"].text=""
  199.       removeItem=false
  200.       createSpecies=pbCheckEvolutionEx(@pokemon){|pokemon,evonib,level,poke|
  201.          if evonib==PBEvolution::Shedinja
  202.            next poke if $PokemonBag.pbQuantity(getConst(PBItems,:POKEBALL))>0
  203.          elsif evonib==PBEvolution::TradeItem ||
  204.                evonib==PBEvolution::DayHoldItem ||
  205.                evonib==PBEvolution::NightHoldItem
  206.            removeItem=true if poke==@newspecies   # Item is now consumed
  207.          end
  208.          next -1
  209.       }
  210.       @pokemon.setItem(0) if removeItem
  211.       @pokemon.species=@newspecies
  212.       $Trainer.seen[@newspecies]=true
  213.       $Trainer.owned[@newspecies]=true
  214.       pbSeenForm(@pokemon)
  215.       @pokemon.name=newspeciesname if @pokemon.name==oldspeciesname
  216.       @pokemon.calcStats
  217.       # Check moves for new species
  218.       movelist=@pokemon.getMoveList
  219.       for i in movelist
  220.         if i[0]==@pokemon.level          # Learned a new move
  221.           pbLearnMove(@pokemon,i[1],true) { pbUpdate }
  222.         end
  223.       end
  224.       if createSpecies>0 && $Trainer.party.length<6
  225.         newpokemon=@pokemon.clone
  226.         newpokemon.iv=@pokemon.iv.clone
  227.         newpokemon.ev=@pokemon.ev.clone
  228.         newpokemon.species=createSpecies
  229.         newpokemon.name=PBSpecies.getName(createSpecies)
  230.         newpokemon.setItem(0)
  231.         newpokemon.clearAllRibbons
  232.         newpokemon.markings=0
  233.         newpokemon.ballused=0
  234.         newpokemon.calcStats
  235.         newpokemon.heal
  236.         $Trainer.party.push(newpokemon)
  237.         $Trainer.seen[createSpecies]=true
  238.         $Trainer.owned[createSpecies]=true
  239.         pbSeenForm(newpokemon)
  240.         $PokemonBag.pbDeleteItem(getConst(PBItems,:POKEBALL))
  241.       end
  242.     end
  243.   end
  244. end
Advertisement
Add Comment
Please, Sign In to add comment