Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ScriptMixer
- def update
- pbUpdateSpriteHash(@sprites)
- end
- def pbMiddleScene
- loop do
- Graphics.update
- Input.update
- self.update
- if @sceneover==true
- break
- end
- end
- end
- def pbEndScene ##This ends everything
- $game_map.autoplay
- pbFadeOutAndHide(@sprites) { update }
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose
- $scene = Scene_Map.new
- end
- def initialize
- @sceneover=false
- @sprites={}
- @berrysprites={}
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=89999
- @sprites["background"]=IconSprite.new(0,0,@viewport)
- if $Trainer.gender==1
- @sprites["background"].setBitmap("Graphics/Pictures/Mixer/bg1")
- else
- @sprites["background"].setBitmap("Graphics/Pictures/Mixer/bg")
- end
- @sprites["background"].zoom_x=2
- @sprites["background"].zoom_y=2
- @sprites["hueco1"]=IconSprite.new(0,0,@viewport)
- @sprites["hueco1"].setBitmap("Graphics/Pictures/Mixer/hueco1")
- @sprites["hueco1"].y=50
- @sprites["hueco1"].x=345
- @sprites["hueco2"]=IconSprite.new(0,0,@viewport)
- @sprites["hueco2"].setBitmap("Graphics/Pictures/Mixer/hueco2")
- @sprites["hueco2"].y=250
- @sprites["hueco2"].x=345
- @sprites["hueco2"].zoom_x=2
- @sprites["hueco2"].zoom_y=2
- @sprites["hueco1"].zoom_x=2
- @sprites["hueco1"].zoom_y=2
- end
- def pbInitDraw
- @berries=[]
- @berryvalues=[]
- newwidth=0
- @numitems=0
- for i in 0...PBItems.maxValue
- @berries.push(PBItems.getName(i)) if $PokemonBag.pbQuantity(i)>0 && pbIsBerry?(i)
- @berryvalues.push(i) if $PokemonBag.pbQuantity(i)>0 && pbIsBerry?(i)
- end
- if @newbitmap
- @newbitmap.bitmap.dispose
- @newbitmap2.bitmap.dispose
- pbDisposeSprite(@sprites,"textbox")
- @sprites["overlay"].bitmap.dispose
- end
- @sprites["textbox"]=IconSprite.new(0,0,@viewport)
- @sprites["textbox"].setBitmap("Graphics/Pictures/Mixer/box")
- @sprites["textbox"].zoom_x=1.2
- @sprites["textbox"].zoom_y=2.6
- @newbitmap=BitmapSprite.new(80,Graphics.height,@viewport)
- @newbitmap2=BitmapSprite.new(220,@berries.length*40,@viewport)
- @sprites["textbox"].x=-230
- @newbitmap2.x=-200
- @newbitmap.x=-230
- @sprites["overlay"]=BitmapSprite.new(220,@berries.length*40,@viewport)
- pbSetSmallFont(@sprites["overlay"].bitmap)
- @sprites["overlay"].x=-200
- @sprites["select"]=IconSprite.new(0,0,@viewport)
- @sprites["select"].setBitmap("Graphics/Pictures/Mixer/select")
- @sprites["select"].x=80
- @sprites["select"].zoom_x=1.02
- @sprites["select"].visible=false
- end
- def pbMixer
- pbInitDraw
- Kernel.pbMessage(_INTL("Please select a berry"))
- pbShowHideList(show="notnil")
- @berry1=pbSelectBerry
- @sceneover=true if @berry1==nil
- return if @berry1==nil
- berrysprite=sprintf("Graphics/Icons/item%03d",@berryvalues[@berry1])
- @berrysprites["berry1"]=IconSprite.new(348,53,@viewport)
- @berrysprites["berry1"].setBitmap(berrysprite)
- pbShowHideList
- Kernel.pbMessage(_INTL("Please select another berry"))
- pbShowHideList(show="notnil")
- @berry2=pbSelectBerry
- @sceneover=true if @berry2==nil
- return if @berry2==nil
- berrysprite2=sprintf("Graphics/Icons/item%03d",@berryvalues[@berry2])
- @berrysprites["berry2"]=IconSprite.new(348,253,@viewport)
- @berrysprites["berry2"].setBitmap(berrysprite2)
- Graphics.update
- sleep(1)
- if !(@berryvalues[@berry1]==@berryvalues[@berry2] && $PokemonBag.pbQuantity(@berryvalues[@berry2])==1)
- if pbBerryCombo==true
- $PokemonBag.pbDeleteItem(@berryvalues[@berry1])
- $PokemonBag.pbDeleteItem(@berryvalues[@berry2])
- item=getID(PBItems,@reward)
- pbFadeOutAndHide(@berrysprites)
- pbDisposeSprite(@berrysprites,"berry1") if @berrysprites["berry1"]
- pbDisposeSprite(@berrysprites,"berry2") if @berrysprites["berry2"]
- Kernel.pbReceiveItem(item)
- $PlayerBerryScore+=1
- else
- Kernel.pbMessage(_INTL("These berries are not compatible"))
- pbDisposeSprite(@berrysprites,"berry1") if @sprites["berry1"]
- pbDisposeSprite(@sprites,"berry2") if @sprites["berry2"]
- end
- else
- pbDisposeSprite(@berrysprites,"berry1") if @berrysprites["berry1"]
- pbDisposeSprite(@berrysprites,"berry2") if @berrysprites["berry2"]
- Kernel.pbMessage(_INTL("You only have one of this berry"))
- end
- if Kernel.pbConfirmMessage(_INTL("Would you like to continue combining?"))
- pbMixer
- else
- @sceneover=true
- end
- end
- def pbSelectBerry
- @selection=0
- yPos=0
- @sprites["select"].y=@selection*35
- pbDrawBerryText(0)
- @sprites["select"].visible=true
- loop do
- Graphics.update
- Input.update
- self.update
- if Input.trigger?(Input::DOWN)
- if @selection<@berries.length-1
- @selection+=1
- else
- @selection=0
- end
- yPos+=35 if @selection<=@berries.length-1
- yPos=0 if @selection==0
- pbDrawBerryText(yPos)
- elsif Input.trigger?(Input::UP)
- if @selection>0
- @selection-=1
- else
- @selection=@berries.length-1
- end
- if @selection==@berries.length-1
- yPos=(@berries.length-1)*35
- else
- yPos-=35
- end
- pbDrawBerryText(yPos)
- elsif Input.press?(Input::R)
- if @selection<@berries.length-11
- @selection+=10
- else
- @selection=@berries.length-1
- end
- yPos+=350 if @selection<=@berries.length-11
- yPos=(@berries.length-1)*35 if @selection==@berries.length-1
- pbDrawBerryText(yPos)
- elsif Input.press?(Input::L)
- if @selection>9
- @selection-=10
- else
- @selection=0
- end
- if @selection==0
- yPos=0
- else
- yPos-=350
- end
- pbDrawBerryText(yPos)
- elsif Input.trigger?(Input::C)
- @sprites["select"].visible=false
- return @selection
- elsif Input.trigger?(Input::B)
- if Kernel.pbConfirmMessage(_INTL("Are you sure you would like to quit?"))
- pbDisposeSprite(@berrysprites,"berry1") if @berrysprites["berry1"]
- pbDisposeSprite(@berrysprites,"berry2") if @berrysprites["berry2"]
- return nil
- end
- end
- end
- end
- def pbShowHideList(show=nil)
- loop do
- @sprites["textbox"].x-=10 if show==nil
- @newbitmap2.x-=10 if show==nil
- @newbitmap.x-=10 if show==nil
- @sprites["overlay"].x-=10 if show==nil
- @sprites["textbox"].x+=10 if show !=nil
- @newbitmap2.x+=10 if show !=nil
- @newbitmap.x+=10 if show !=nil
- @sprites["overlay"].x+=10 if show !=nil
- Graphics.update
- break if @newbitmap2.x==-200 && show==nil
- break if @newbitmap2.x==30 && show !=nil
- end
- end
- def pbDrawBerryText(yPos)
- textpos=[]
- @sprites["overlay"].bitmap.clear
- for i in 0...@berries.length
- textpos.push([@berries[i],53,(i*35)+7-yPos,0,Color.new(245,245,245),Color.new(0,0,0)])
- end
- pbDrawTextPositions(@sprites["overlay"].bitmap,textpos)
- @drawn=true
- end
- def pbBerryCombo
- pos1=-1
- pos2=-1
- for j in 0...BERRYCOMBOS.length
- if PBItems.getName(@berryvalues[@berry1])==BERRYCOMBOS[j][0]
- pos1=j
- end
- if PBItems.getName(@berryvalues[@berry2])==BERRYCOMBOS[j][0]
- pos2=j
- end
- end
- newcombo=BERRYCOMBOS[pos1].dup
- newcombo2=BERRYCOMBOS[pos2].dup
- newcombo.shift
- newcombo2.shift
- grade1=(PBItems.getName(@berryvalues[@berry1])=="Leichi Berry")? 3:(newcombo.max==4)? 3:(newcombo.max==3)? 2:1
- grade2=(PBItems.getName(@berryvalues[@berry2])=="Leichi Berry")? 3:(newcombo2.max==4)? 3:(newcombo2.max==3)? 2:1
- grade=(grade1<=grade2)? grade1:grade2
- newcombo3=[newcombo[0]+newcombo2[0],newcombo[1]+newcombo2[1],newcombo[2]+newcombo2[2],newcombo[3]+newcombo2[3],newcombo[4]+newcombo2[4]]
- maxindex=newcombo3.index(newcombo3.max)
- if PBItems.getName(@berryvalues[@berry1])=="Lansat Berry" || PBItems.getName(@berryvalues[@berry1])=="Starf Berry" || PBItems.getName(@berryvalues[@berry2])=="Lansat Berry" || PBItems.getName(@berryvalues[@berry2])=="Starf Berry"
- @reward="WHITEPOKEBLOCK"
- elsif PBItems.getName(@berryvalues[@berry1])==PBItems.getName(@berryvalues[@berry2])
- @reward="BLACKPOKEBLOCK"
- elsif maxindex==0 && newcombo3.max>0
- if newcombo3[1]>0 && newcombo3[2]>0
- @reward="GOLDPOKEBLOCK1"
- elsif newcombo3[1]>0 && newcombo3[3]>0
- @reward="GOLDPOKEBLOCK2"
- elsif newcombo3[1]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK3"
- elsif newcombo3[2]>0 && newcombo3[3]>0
- @reward="GOLDPOKEBLOCK4"
- elsif newcombo3[2]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK5"
- elsif newcombo3[3]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK6"
- elsif newcombo3[2]>0
- @reward=sprintf("PURPLEPOKEBLOCK%1d",grade)
- elsif newcombo3[3]>0
- @reward=sprintf("LITEBLUEPOKEBLOCK%1d",grade)
- else
- @reward=sprintf("REDPOKEBLOCK%1d",grade)
- end
- elsif maxindex==1 && newcombo3.max>0
- if newcombo3[2]>0 && newcombo3[3]>0
- @reward="GOLDPOKEBLOCK7"
- elsif newcombo3[2]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK8"
- elsif newcombo3[3]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK9"
- elsif newcombo3[3]>0
- @reward=sprintf("INDIGOPOKEBLOCK%1d",grade)
- elsif newcombo3[4]>0
- @reward=sprintf("OLIVEPOKEBLOCK%1d",grade)
- else
- @reward=sprintf("BLUEPOKEBLOCK%1d",grade)
- end
- elsif maxindex==2 && newcombo3.max>0
- if newcombo3[3]>0 && newcombo3[4]>0
- @reward="GOLDPOKEBLOCK10"
- elsif newcombo3[0]>0
- @reward=sprintf("PURPLEPOKEBLOCK%1d",grade)
- elsif newcombo3[4]>0
- @reward=sprintf("BROWNBLUEPOKEBLOCK%1d",grade)
- else
- @reward=sprintf("PINKPOKEBLOCK%1d",grade)
- end
- elsif maxindex==3 && newcombo3.max>0
- if newcombo3[0]>0
- @reward=sprintf("LITEBLUEPOKEBLOCK%1d",grade)
- elsif newcombo3[1]>0
- @reward=sprintf("INDIGOPOKEBLOCK%1d",grade)
- else
- @reward=sprintf("GREENPOKEBLOCK%1d",grade)
- end
- elsif maxindex==4 && newcombo3.max>0
- @reward=sprintf("YELLOWPOKEBLOCK%1d",grade)
- else
- @reward="BLACKPOKEBLOCK"
- end
- return true
- end
- end
- class BerryMixer
- def initialize(scene)
- @scene=scene
- end
- def pbStartMixer
- @scene.pbMixer
- @scene.pbMiddleScene
- @scene.pbEndScene
- end
- end
- def mixer # This is the method that I call when selecting the Item "Berry Mixer"
- if hasBerries==false
- Kernel.pbMessage(_INTL("You don't have any berries"))
- return
- end
- scene=ScriptMixer.new
- screen=BerryMixer.new(scene)
- return screen.pbStartMixer
- end
- alias pbMixer :mixer
- def hasBerries
- for i in 0...PBItems.maxValue
- return true if $PokemonBag.pbQuantity(i)>0 && pbIsBerry?(i)
- end
- return false
- end
- berry1=["Cheri Berry",1,0,0,0,-1]
- berry2=["Pecha Berry",-1,1,0,0,0]
- berry3=["Rawst Berry",0,0,-1,1,0]
- berry4=["Aspear Berry",0,0,0,-1,1]
- berry5=["Leppa Berry",1,-1,0,0,0]
- berry6=["Oran Berry",0,0,0,0,0]
- berry7=["Persim Berry",0,0,0,0,0]
- berry8=["Lum Berry",0,0,0,0,0]
- berry9=["Sitrus Berry",0,0,0,0,0]
- berry10=["Figy Berry",1,0,0,0,-1]
- berry11=["Wiki Berry",-1,1,0,0,0]
- berry12=["Mago Berry",0,-1,1,0,0]
- berry13=["Aguav Berry",0,0,-1,1,0]
- berry14=["Iapapa Berry",0,0,0,-1,1]
- berry15=["Razz Berry",0,1,0,0,-1]
- berry16=["Bluk Berry",-1,0,1,0,0]
- berry17=["Nanab Berry",0,-1,0,1,0]
- berry18=["Wepear Berry",0,0,-1,0,1]
- berry19=["Pinap Berry",1,0,0,-1,0]
- berry20=["Pomeg Berry",-1,1,0,1,-1]
- berry21=["Kelpsy Berry",-1,1,-1,0,1]
- berry22=["Qualot Berry",1,-1,1,-1,0]
- berry23=["Hondew Berry",0,1,-1,1,-1]
- berry24=["Grepa Berry",-1,0,1,-1,1]
- berry25=["Tamato Berry",1,1,0,0,-2]
- berry26=["Cornn Berry",-2,1,1,0,0]
- berry27=["Magost Berry",0,-2,1,1,0]
- berry28=["Rabuta Berry",0,0,-2,1,1]
- berry29=["Nomel Berry",1,0,0,-2,1]
- berry30=["Spelon Berry",3,1,0,0,-4]
- berry31=["Pamtre Berry",-4,3,1,0,0]
- berry32=["Watmel Berry",0,-4,3,0,0]
- berry33=["Durin Berry",0,0,-4,3,1]
- berry34=["Belue Berry",1,0,0,-4,3]
- berry35=["Liechi Berry",4,-4,4,-1,-3]
- berry36=["Ganlon Berry",-3,4,-4,4,-1]
- berry37=["Salac Berry",-1,-3,4,-4,4]
- berry38=["Petaya Berry",4,-1,-3,4,-4]
- berry39=["Apicot Berry",-4,4,-1,-3,4]
- berry40=["Lansat Berry",0,0,0,0,0]
- berry41=["Starf Berry",0,0,0,0,0]
- berry42=["Enigma Berry",0,0,0,0,0]
- berry43=["Chesto Berry",-1,1,0,0,0]
- BERRYCOMBOS=[berry1,berry2,berry3,berry4,berry5,berry6,berry7,berry8,berry9,berry10,berry11,berry12,berry13,berry14,berry15,
- berry16,berry17,berry18,berry19,berry20,berry21,berry22,berry23,berry24,berry25,berry26,berry27,berry28,berry29,berry30,berry31,berry32,berry33,berry34,
- berry35,berry36,berry37,berry38,berry39,berry40,berry41,berry42,berry43]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement