Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MoveSelectionSprite < SpriteWrapper
- attr_reader :preselected
- attr_reader :index
- def initialize(viewport=nil,fifthmove=false)
- super(viewport)
- @movesel=AnimatedBitmap.new("Graphics/Pictures/summarymovesel")
- @frame=0
- @index=0
- @fifthmove=fifthmove
- @preselected=false
- @updating=false
- @spriteVisible=true
- refresh
- end
- def dispose
- @movesel.dispose
- super
- end
- def index=(value)
- @index=value
- refresh
- end
- def preselected=(value)
- @preselected=value
- refresh
- end
- def visible=(value)
- super
- @spriteVisible=value if !@updating
- end
- def refresh
- w=@movesel.width
- h=@movesel.height/2
- self.x=240-6
- self.y=92-20-20+(self.index*64)
- self.y-=86-32 if @fifthmove
- #self.y+=20 if @fifthmove && self.index==4
- self.bitmap=@movesel.bitmap
- if self.preselected
- self.src_rect.set(0,h,w,h)
- else
- self.src_rect.set(0,0,w,h)
- end
- end
- def update
- @updating=true
- super
- @movesel.update
- @updating=false
- refresh
- end
- end
- class PokemonSummaryScene
- def pbPokerus(pkmn)
- return pkmn.pokerusStage
- end
- def pbUpdate
- pbUpdateSpriteHash(@sprites)
- end
- def pbStartScene(party,partyindex)
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @party=party
- @partyindex=partyindex
- @pokemon=@party[@partyindex]
- @sprites={}
- @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
- @sprites["background"]=IconSprite.new(0,0,@viewport)
- @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- @sprites["pokemon"]=PokemonSprite.new(@viewport)
- @sprites["pokemon"].setPokemonBitmap(@pokemon)
- @sprites["pokemon"].mirror=false
- @sprites["pokemon"].color=Color.new(0,0,0,0)
- pbPositionPokemonSprite(@sprites["pokemon"],24,110)
- @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
- @sprites["pokeicon"].x=14
- @sprites["pokeicon"].y=52
- @sprites["pokeicon"].mirror=false
- @sprites["pokeicon"].visible=false
- @sprites["movepresel"]=MoveSelectionSprite.new(@viewport)
- @sprites["movepresel"].visible=false
- @sprites["movepresel"].preselected=true
- @sprites["movesel"]=MoveSelectionSprite.new(@viewport)
- @sprites["movesel"].visible=false
- @page=0
- drawPageOne(@pokemon)
- pbFadeInAndShow(@sprites) { pbUpdate }
- end
- def pbStartForgetScene(party,partyindex,moveToLearn)
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @party=party
- @partyindex=partyindex
- @pokemon=@party[@partyindex]
- @sprites={}
- @page=3
- @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
- @sprites["background"]=IconSprite.new(0,0,@viewport)
- @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
- @sprites["pokeicon"].x=14
- @sprites["pokeicon"].y=52
- @sprites["pokeicon"].mirror=false
- @sprites["movesel"]=MoveSelectionSprite.new(@viewport,moveToLearn>0)
- @sprites["movesel"].visible=false
- @sprites["movesel"].visible=true
- @sprites["movesel"].index=0
- drawSelectedMove(@pokemon,moveToLearn,@pokemon.moves[0].id)
- pbFadeInAndShow(@sprites)
- end
- def pbEndScene
- pbFadeOutAndHide(@sprites) { pbUpdate }
- pbDisposeSpriteHash(@sprites)
- @typebitmap.dispose
- @viewport.dispose
- end
- def drawMarkings(bitmap,x,y,width,height,markings)
- totaltext=""
- oldfontname=bitmap.font.name
- oldfontsize=bitmap.font.size
- oldfontcolor=bitmap.font.color
- bitmap.font.size=24
- bitmap.font.name="Arial"
- PokemonStorage::MARKINGCHARS.each{|item| totaltext+=item }
- totalsize=bitmap.text_size(totaltext)
- realX=x+(width/2)-(totalsize.width/2)
- realY=y+(height/2)-(totalsize.height/2)
- i=0
- PokemonStorage::MARKINGCHARS.each{|item|
- marked=(markings&(1<<i))!=0
- bitmap.font.color=(marked) ? Color.new(245,166,249) : Color.new(255,255,255)
- itemwidth=bitmap.text_size(item).width
- bitmap.draw_text(realX,realY,itemwidth+2,totalsize.height,item)
- realX+=itemwidth
- i+=1
- }
- bitmap.font.name=oldfontname
- bitmap.font.size=oldfontsize
- bitmap.font.color=oldfontcolor
- end
- def drawPageOne(pokemon)
- if pokemon.isEgg?
- drawPageOneEgg(pokemon)
- return
- end
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- @sprites["background"].setBitmap("Graphics/Pictures/summary1")
- imagepos=[]
- if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
- status=6 if pbPokerus(pokemon)==1
- status=@pokemon.status-1 if @pokemon.status>0
- status=5 if pokemon.hp==0
- imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
- end
- if pokemon.isShiny?
- imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
- end
- if pbPokerus(pokemon)==2
- imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
- end
- ballused=@pokemon.ballused ? @pokemon.ballused : 0
- ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
- imagepos.push([ballimage,138,64,0,0,-1,-1])
- pbDrawImagePositions(overlay,imagepos)
- base=Color.new(0,0,0)
- shadow=Color.new(244,211,245)
- pink=Color.new(245,166,249)
- white=Color.new(255,255,255)
- pbSetSystemFont(overlay)
- numberbase=(pokemon.isShiny?) ? Color.new(248,56,32) : base
- publicID=pokemon.publicID
- speciesname=PBSpecies.getName(pokemon.species)
- growthrate=pokemon.growthrate
- startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
- endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
- pokename=@pokemon.name
- textpos=[
- [pokename,18,32,0,base,shadow],
- [pokemon.level.to_s,46,66,0,base,white],
- [_INTL("Item"),18,260,0,base,shadow],
- [_ISPRINTF("Dex No."),194,44,0,base,pink],
- [sprintf("%03d",pokemon.species),405,44,2,numberbase,shadow],
- [_INTL("Species"),194,78,0,base,shadow],
- [speciesname,405,78,2,base,white],
- [_INTL("Type"),194,116,0,base,pink],
- [_INTL("OT"),194,152,0,base,shadow],
- [_INTL("ID No."),194,186,0,base,pink],
- ]
- if pokemon.hasItem?
- textpos.push([PBItems.getName(pokemon.item),18,290,0,base,white])
- else
- textpos.push([_INTL("None"),18,290,0,base,white])
- end
- textpos.push([_INTL("Exp. Points"),186,226,0,base,shadow])
- textpos.push([sprintf("%d",pokemon.exp),466,226,1,base,white])
- textpos.push([_INTL("To Next Lv."),186,266,0,base,pink])
- textpos.push([sprintf("%d",endexp-pokemon.exp),466,266,1,base,white])
- idno=(pokemon.ot=="") ? "?????" : sprintf("%05d",publicID)
- textpos.push([idno,405,186,2,base,shadow])
- if pokemon.ot==""
- textpos.push([_INTL("RENTAL"),435,176,2,Color.new(64,64,64),Color.new(176,176,176)])
- else
- ownerbase=Color.new(64,64,64)
- ownershadow=Color.new(176,176,176)
- if pokemon.otgender==0 # male OT
- ownerbase=Color.new(24,112,216)
- ownershadow=white
- elsif pokemon.otgender==1 # female OT
- ownerbase=Color.new(240,80,48)
- ownershadow=white
- end
- textpos.push([pokemon.ot,405,152,2,ownerbase,ownershadow])
- end
- if pokemon.isMale?
- textpos.push([_INTL("♂"),150,32,0,Color.new(24,112,216),Color.new(244,211,245)])
- elsif pokemon.isFemale?
- textpos.push([_INTL("♀"),150,32,0,Color.new(240,80,48),Color.new(244,211,245)])
- end
- pbDrawTextPositions(overlay,textpos)
- #drawMarkings(overlay,9,239,72,20,pokemon.markings)
- type1rect=Rect.new(0,pokemon.type1*28,64,28)
- type2rect=Rect.new(0,pokemon.type2*28,64,28)
- if pokemon.type1==pokemon.type2
- overlay.blt(372,116,@typebitmap.bitmap,type1rect)
- else
- overlay.blt(340,116,@typebitmap.bitmap,type1rect)
- overlay.blt(408,116,@typebitmap.bitmap,type2rect)
- end
- if pokemon.level<PBExperience::MAXLEVEL
- overlay.fill_rect(328,302,(pokemon.exp-startexp)*132/(endexp-startexp),2,Color.new(72,120,160))
- overlay.fill_rect(328,304,(pokemon.exp-startexp)*132/(endexp-startexp),4,Color.new(24,144,248))
- end
- end
- def drawPageOneEgg(pokemon)
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- @sprites["background"].setBitmap("Graphics/Pictures/summaryEgg")
- imagepos=[]
- ballused=@pokemon.ballused ? @pokemon.ballused : 0
- ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
- imagepos.push([ballimage,14,60,0,0,-1,-1])
- pbDrawImagePositions(overlay,imagepos)
- base=Color.new(248,248,248)
- shadow=Color.new(104,104,104)
- pbSetSystemFont(overlay)
- textpos=[
- [_INTL("TRAINER MEMO"),26,16,0,base,shadow],
- [pokemon.name,46,62,0,base,shadow],
- [_INTL("Item"),16,320,0,base,shadow]
- ]
- if pokemon.hasItem?
- textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
- else
- textpos.push([_INTL("None"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
- end
- pbDrawTextPositions(overlay,textpos)
- memo=""
- if pokemon.timeReceived
- month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
- date=pokemon.timeReceived.day
- year=pokemon.timeReceived.year
- memo+=_INTL("<c3=404040,B0B0B0>{1} {2}, {3}\n",month,date,year)
- end
- mapname=pbGetMapNameFromId(pokemon.obtainMap)
- if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
- mapname=pokemon.obtainText
- end
- if mapname && mapname!=""
- memo+=_INTL("<c3=404040,B0B0B0>A mysterious Pokémon Egg received from <c3=F83820,E09890>{1}<c3=404040,B0B0B0>.\n",mapname)
- end
- memo+="<c3=404040,B0B0B0>\n"
- memo+=_INTL("<c3=404040,B0B0B0>\"The Egg Watch\"\n")
- eggstate=_INTL("It looks like this Egg will take a long time to hatch.")
- eggstate=_INTL("What will hatch from this? It doesn't seem close to hatching.") if pokemon.eggsteps<10200
- eggstate=_INTL("It appears to move occasionally. It may be close to hatching.") if pokemon.eggsteps<2550
- eggstate=_INTL("Sounds can be heard coming from inside! It will hatch soon!") if pokemon.eggsteps<1275
- memo+=sprintf("<c3=404040,B0B0B0>%s\n",eggstate)
- drawFormattedTextEx(overlay,232,78,276,memo)
- #drawMarkings(overlay,15,291,72,20,pokemon.markings)
- end
- def drawPageTwo(pokemon)
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- @sprites["background"].setBitmap("Graphics/Pictures/summary2")
- imagepos=[]
- if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
- status=6 if pbPokerus(pokemon)==1
- status=@pokemon.status-1 if @pokemon.status>0
- status=5 if pokemon.hp==0
- imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
- end
- if pokemon.isShiny?
- imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
- end
- if pbPokerus(pokemon)==2
- imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
- end
- ballused=@pokemon.ballused ? @pokemon.ballused : 0
- ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
- imagepos.push([ballimage,138,64,0,0,-1,-1])
- pbDrawImagePositions(overlay,imagepos)
- base=Color.new(0,0,0)
- shadow=Color.new(204,246,174)
- pink=Color.new(245,166,249)
- white=Color.new(255,255,255)
- pbSetSystemFont(overlay)
- numberbase=(pokemon.isShiny?) ? Color.new(248,56,32) : base
- publicID=pokemon.publicID
- speciesname=PBSpecies.getName(pokemon.species)
- growthrate=pokemon.growthrate
- startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
- endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
- pokename=@pokemon.name
- naturename=PBNatures.getName(pokemon.nature)
- textpos=[
- [pokename,18,32,0,base,shadow],
- [pokemon.level.to_s,46,66,0,base,white],
- [_INTL("Item"),18,260,0,base,shadow],
- ]
- if pokemon.hasItem?
- textpos.push([PBItems.getName(pokemon.item),18,290,0,base,white])
- else
- textpos.push([_INTL("None"),18,290,0,base,white])
- end
- if pokemon.isMale?
- textpos.push([_INTL("♂"),150,32,0,Color.new(24,112,216),Color.new(204,246,174)])
- elsif pokemon.isFemale?
- textpos.push([_INTL("♀"),150,32,0,Color.new(240,80,48),Color.new(204,246,174)])
- end
- pbDrawTextPositions(overlay,textpos)
- memo=""
- shownature=(!(pokemon.isShadow? rescue false)) || pokemon.heartStage<=3
- if shownature
- memo+=_INTL("<c3=f05030,ffffff>{1}<c3=000000,ffffff> nature.\n",naturename)
- end
- if pokemon.timeReceived
- month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
- date=pokemon.timeReceived.day
- year=pokemon.timeReceived.year
- memo+=_INTL("<c3=000000,ffffff>{1} {2}, {3}\n",month,date,year)
- end
- mapname=pbGetMapNameFromId(pokemon.obtainMap)
- if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
- mapname=pokemon.obtainText
- end
- if mapname && mapname!=""
- memo+=sprintf("<c3=f05030,ffffff>%s\n",mapname)
- else
- memo+=_INTL("<c3=f05030,ffffff>Faraway place\n")
- end
- if pokemon.obtainMode
- mettext=[_INTL("Met at Lv. {1}.",pokemon.obtainLevel),
- _INTL("Egg received."),
- _INTL("Traded at Lv. {1}.",pokemon.obtainLevel),
- "",
- _INTL("Had a fateful encounter at Lv. {1}.",pokemon.obtainLevel)
- ][pokemon.obtainMode]
- memo+=sprintf("<c3=000000,ffffff>%s\n",mettext)
- if pokemon.obtainMode==1 # hatched
- if pokemon.timeEggHatched
- month=pbGetAbbrevMonthName(pokemon.timeEggHatched.mon)
- date=pokemon.timeEggHatched.day
- year=pokemon.timeEggHatched.year
- memo+=_INTL("<c3=000000,ffffff>{1} {2}, {3}\n",month,date,year)
- end
- mapname=pbGetMapNameFromId(pokemon.hatchedMap)
- if mapname && mapname!=""
- memo+=sprintf("<c3=f05030,ffffff>%s\n",mapname)
- else
- memo+=_INTL("<c3=f05030,ffffff>Faraway place\n")
- end
- memo+=_INTL("<c3=000000,ffffff>Egg hatched.\n")
- else
- memo+="<c3=000000,ffffff>\n"
- end
- end
- if shownature
- bestiv=0
- tiebreaker=pokemon.personalID%6
- for i in 0...6
- if pokemon.iv[i]==pokemon.iv[bestiv]
- bestiv=i if i>=tiebreaker && bestiv<tiebreaker
- elsif pokemon.iv[i]>pokemon.iv[bestiv]
- bestiv=i
- end
- end
- characteristic=[_INTL("Loves to eat."),
- _INTL("Often dozes off."),
- _INTL("Often scatters things."),
- _INTL("Scatters things often."),
- _INTL("Likes to relax."),
- _INTL("Proud of its power."),
- _INTL("Likes to thrash about."),
- _INTL("A little quick tempered."),
- _INTL("Likes to fight."),
- _INTL("Quick tempered."),
- _INTL("Sturdy body."),
- _INTL("Capable of taking hits."),
- _INTL("Highly persistent."),
- _INTL("Good endurance."),
- _INTL("Good perseverance."),
- _INTL("Likes to run."),
- _INTL("Alert to sounds."),
- _INTL("Impetuous and silly."),
- _INTL("Somewhat of a clown."),
- _INTL("Quick to flee."),
- _INTL("Highly curious."),
- _INTL("Mischievous."),
- _INTL("Thoroughly cunning."),
- _INTL("Often lost in thought."),
- _INTL("Very finicky."),
- _INTL("Strong willed."),
- _INTL("Somewhat vain."),
- _INTL("Strongly defiant."),
- _INTL("Hates to lose."),
- _INTL("Somewhat stubborn.")
- ][bestiv*5+pokemon.iv[bestiv]%5]
- memo+=sprintf("<c3=000000,ffffff>%s\n",characteristic)
- end
- drawFormattedTextEx(overlay,196,80,312,memo)
- #drawMarkings(overlay,15,291,72,20,pokemon.markings)
- end
- def drawPageThree(pokemon)
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- @sprites["background"].setBitmap("Graphics/Pictures/summary3")
- imagepos=[]
- if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
- status=6 if pbPokerus(pokemon)==1
- status=@pokemon.status-1 if @pokemon.status>0
- status=5 if pokemon.hp==0
- imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
- end
- if pokemon.isShiny?
- imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
- end
- if pbPokerus(pokemon)==2
- imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
- end
- ballused=@pokemon.ballused ? @pokemon.ballused : 0
- ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
- imagepos.push([ballimage,138,64,0,0,-1,-1])
- pbDrawImagePositions(overlay,imagepos)
- base=Color.new(0,0,0)
- shadow=Color.new(202,249,250)
- pink=Color.new(0,0,0)
- blue=Color.new(156,247,249)
- white=Color.new(255,255,255)
- pbSetSystemFont(overlay)
- numberbase=(pokemon.isShiny?) ? Color.new(248,56,32) : base
- publicID=pokemon.publicID
- speciesname=PBSpecies.getName(pokemon.species)
- growthrate=pokemon.growthrate
- startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
- endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
- pokename=@pokemon.name
- statshadows=[]
- for i in 0...5; statshadows[i]=base; end
- if !(pokemon.isShadow? rescue false) || pokemon.heartStage<=3
- natup=(pokemon.nature/5).floor
- natdn=(pokemon.nature%5).floor
- statshadows[natup]=Color.new(0,0,0)
- statshadows[natdn]=Color.new(0,0,0)
- statshadows[natup]=Color.new(240,80,48) if natup!=natdn
- statshadows[natdn]=Color.new(40,84,171) if natup!=natdn
- end
- pbSetSystemFont(overlay)
- abilityname=PBAbilities.getName(pokemon.ability)
- abilitydesc=pbGetMessage(MessageTypes::AbilityDescs,pokemon.ability)
- pokename=@pokemon.name
- textpos=[
- [pokename,18,32,0,base,shadow],
- [pokemon.level.to_s,46,66,0,base,white],
- [_INTL("Item"),18,260,0,base,shadow],
- [sprintf("%3d/%3d",pokemon.hp,pokemon.totalhp),462-8,76-44,1,base,blue],
- [_INTL("Attack"),248-30,120-58,0,statshadows[0],shadow],
- [sprintf("%d",pokemon.attack),456,120-58,1,base,white],
- [_INTL("Defense"),248-30,152-58,0,statshadows[1],blue],
- [sprintf("%d",pokemon.defense),456,152-58,1,base,shadow],
- [_INTL("Sp. Atk"),248-30,184-58,0,statshadows[3],shadow],
- [sprintf("%d",pokemon.spatk),456,184-58,1,base,white],
- [_INTL("Sp. Def"),248-30,216-58,0,statshadows[4],blue],
- [sprintf("%d",pokemon.spdef),456,216-58,1,base,shadow],
- [_INTL("Speed"),248-30,248-58,0,statshadows[2],shadow],
- [sprintf("%d",pokemon.speed),456,248-58,1,base,white],
- [_INTL("Ability"),248-30,284-62,0,base,blue],
- [abilityname,362-8+44,284-62,2,base,shadow],
- ]
- if pokemon.hasItem?
- textpos.push([PBItems.getName(pokemon.item),18,290,0,base,white])
- else
- textpos.push([_INTL("None"),18,290,0,base,white])
- end
- if pokemon.isMale?
- textpos.push([_INTL("♂"),150,32,0,Color.new(24,112,216),shadow])
- elsif pokemon.isFemale?
- textpos.push([_INTL("♀"),150,32,0,Color.new(240,80,48),shadow])
- end
- pbDrawTextPositions(overlay,textpos)
- drawTextEx(overlay,200-4,316-60,282,2,abilitydesc,base,white)
- #drawMarkings(overlay,15,291,72,20,pokemon.markings)
- if pokemon.hp>0
- hpcolors=[
- Color.new(24,192,32),Color.new(0,144,0), # Green
- Color.new(248,184,0),Color.new(184,112,0), # Orange
- Color.new(240,80,32),Color.new(168,48,56) # Red
- ]
- hpzone=0
- hpzone=1 if pokemon.hp<=(@pokemon.totalhp/2).floor
- hpzone=2 if pokemon.hp<=(@pokemon.totalhp/4).floor
- overlay.fill_rect(360-96,110-66,pokemon.hp*96/pokemon.totalhp,2,hpcolors[hpzone*2+1])
- overlay.fill_rect(360-96,112-66,pokemon.hp*96/pokemon.totalhp,4,hpcolors[hpzone*2])
- end
- end
- def drawPageFour(pokemon)
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- @sprites["background"].setBitmap("Graphics/Pictures/summary4")
- @sprites["pokemon"].visible=true
- @sprites["pokeicon"].visible=false
- imagepos=[]
- if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
- status=6 if pbPokerus(pokemon)==1
- status=@pokemon.status-1 if @pokemon.status>0
- status=5 if pokemon.hp==0
- imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
- end
- if pokemon.isShiny?
- imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
- end
- if pbPokerus(pokemon)==2
- imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
- end
- ballused=@pokemon.ballused ? @pokemon.ballused : 0
- ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
- imagepos.push([ballimage,138,64,0,0,-1,-1])
- pbDrawImagePositions(overlay,imagepos)
- base=Color.new(0,0,0)
- shadow=Color.new(244,240,186)
- pink=Color.new(245,166,249)
- white=Color.new(255,255,255)
- pbSetSystemFont(overlay)
- pokename=@pokemon.name
- textpos=[
- [pokename,18,32,0,base,shadow],
- [pokemon.level.to_s,46,66,0,base,white],
- [_INTL("Item"),18,260,0,base,shadow],
- ]
- if pokemon.hasItem?
- textpos.push([PBItems.getName(pokemon.item),18,290,0,base,white])
- else
- textpos.push([_INTL("None"),18,290,0,base,white])
- end
- if pokemon.isMale?
- textpos.push([_INTL("♂"),150,32,0,Color.new(24,112,216),Color.new(204,246,174)])
- elsif pokemon.isFemale?
- textpos.push([_INTL("♀"),150,32,0,Color.new(240,80,48),Color.new(204,246,174)])
- end
- pbDrawTextPositions(overlay,textpos)
- imagepos=[]
- yPos=98-44
- for i in 0...pokemon.moves.length
- if pokemon.moves[i].id>0
- imagepos.push(["Graphics/Pictures/types",242,yPos+2,0,
- pokemon.moves[i].type*28,64,28])
- textpos.push([PBMoves.getName(pokemon.moves[i].id),316,yPos,0,
- base,shadow])
- if pokemon.moves[i].totalpp>0
- textpos.push([_ISPRINTF("PP"),342,yPos+32,0,
- base,white])
- textpos.push([sprintf("%d/%d",pokemon.moves[i].pp,pokemon.moves[i].totalpp),
- 460,yPos+32,1,base,white])
- end
- else
- textpos.push(["-",316,yPos,0,base,white])
- textpos.push(["--",442,yPos+32,1,base,white])
- end
- yPos+=64
- end
- pbDrawTextPositions(overlay,textpos)
- pbDrawImagePositions(overlay,imagepos)
- #drawMarkings(overlay,15,291,72,20,pokemon.markings)
- end
- def drawSelectedMove(pokemon,moveToLearn,moveid)
- overlay=@sprites["overlay"].bitmap
- @sprites["pokemon"].visible=false if @sprites["pokemon"]
- @sprites["pokeicon"].setBitmap(pbPokemonIconFile(pokemon))
- @sprites["pokeicon"].src_rect=Rect.new(0,0,64,64)
- @sprites["pokeicon"].y-=52
- @sprites["pokeicon"].visible=true if moveToLearn!=0
- movedata=PBMoveData.new(moveid)
- basedamage=movedata.basedamage
- type=movedata.type
- category=movedata.category
- accuracy=movedata.accuracy
- drawMoveSelection(pokemon,moveToLearn)
- pbSetSystemFont(overlay)
- move=moveid
- base=Color.new(0,0,0)
- shadow=Color.new(244,240,186)
- pink=Color.new(245,166,249)
- white=Color.new(255,255,255)
- textpos=[
- [basedamage<=1 ? basedamage==1 ? "???" : "---" : sprintf("%d",basedamage),
- 214,154-66,1,base,white],
- [accuracy==0 ? "---" : sprintf("%d",accuracy),
- 214,186-66,1,base,shadow]
- ]
- pbDrawTextPositions(overlay,textpos)
- imagepos=[["Graphics/Pictures/category",166-4,124-70,0,category*28,64,28]]
- pbDrawImagePositions(overlay,imagepos)
- drawTextEx(overlay,4,218-66,238,5,
- pbGetMessage(MessageTypes::MoveDescriptions,moveid),
- base,white)
- end
- def drawMoveSelection(pokemon,moveToLearn)
- overlay=@sprites["overlay"].bitmap
- overlay.clear
- base=Color.new(0,0,0)
- shadow=Color.new(244,240,186)
- pink=Color.new(245,166,249)
- white=Color.new(255,255,255)
- @sprites["background"].setBitmap("Graphics/Pictures/summary4details")
- if moveToLearn!=0
- @sprites["background"].setBitmap("Graphics/Pictures/summary4learning")
- end
- pbSetSystemFont(overlay)
- textpos=[
- [_INTL("CATEGORY"),20,122-66,0,base,shadow],
- [_INTL("POWER"),20,154-66,0,base,shadow],
- [_INTL("ACCURACY"),20,186-66,0,base,shadow]
- ]
- type1rect=Rect.new(0,pokemon.type1*28,64,28)
- type2rect=Rect.new(0,pokemon.type2*28,64,28)
- if pokemon.type1==pokemon.type2
- overlay.blt(162,78-72+12,@typebitmap.bitmap,type1rect) if moveToLearn!=0
- else
- overlay.blt(92,78-72+12,@typebitmap.bitmap,type1rect) if moveToLearn!=0
- overlay.blt(162,78-72+12,@typebitmap.bitmap,type2rect) if moveToLearn!=0
- end
- imagepos=[]
- yPos=98-44
- yPos-=56 if moveToLearn!=0
- for i in 0...5
- moveobject=nil
- if i==4
- moveobject=PBMove.new(moveToLearn) if moveToLearn!=0
- #yPos+=20
- else
- moveobject=pokemon.moves[i]
- end
- if moveobject
- if moveobject.id!=0
- imagepos.push(["Graphics/Pictures/types",242,yPos+2,0,
- moveobject.type*28,64,28])
- textpos.push([PBMoves.getName(moveobject.id),316,yPos,0,
- base,white])
- if moveobject.totalpp>0
- textpos.push([_ISPRINTF("PP"),342,yPos+32,0,
- base,white])
- textpos.push([sprintf("%d/%d",moveobject.pp,moveobject.totalpp),
- 460,yPos+32,1,base,white])
- end
- else
- textpos.push(["-",316,yPos,0,base,white])
- textpos.push(["--",442,yPos+32,1,base,white])
- end
- end
- yPos+=64
- end
- pbDrawTextPositions(overlay,textpos)
- pbDrawImagePositions(overlay,imagepos)
- end
- def pbChooseMoveToForget(moveToLearn)
- selmove=0
- ret=0
- maxmove=(moveToLearn>0) ? 4 : 3
- loop do
- Graphics.update
- Input.update
- pbUpdate
- if Input.trigger?(Input::B)
- ret=4
- break
- end
- if Input.trigger?(Input::C)
- break
- end
- if Input.trigger?(Input::DOWN)
- selmove+=1
- if selmove<4 && selmove>=@pokemon.numMoves
- selmove=(moveToLearn>0) ? maxmove : 0
- end
- selmove=0 if selmove>maxmove
- @sprites["movesel"].index=selmove
- newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
- drawSelectedMove(@pokemon,moveToLearn,newmove)
- ret=selmove
- end
- if Input.trigger?(Input::UP)
- selmove-=1
- selmove=maxmove if selmove<0
- if selmove<4 && selmove>=@pokemon.numMoves
- selmove=@pokemon.numMoves-1
- end
- @sprites["movesel"].index=selmove
- newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
- drawSelectedMove(@pokemon,moveToLearn,newmove)
- ret=selmove
- end
- end
- return (ret==4) ? -1 : ret
- end
- def pbMoveSelection
- @sprites["movesel"].visible=true
- @sprites["movesel"].index=0
- selmove=0
- oldselmove=0
- switching=false
- drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
- loop do
- Graphics.update
- Input.update
- pbUpdate
- if @sprites["movepresel"].index==@sprites["movesel"].index
- @sprites["movepresel"].z=@sprites["movesel"].z+1
- else
- @sprites["movepresel"].z=@sprites["movesel"].z
- end
- if Input.trigger?(Input::B)
- break if !switching
- @sprites["movepresel"].visible=false
- switching=false
- end
- if Input.trigger?(Input::C)
- if selmove==4
- break if !switching
- @sprites["movepresel"].visible=false
- switching=false
- else
- if !(@pokemon.isShadow? rescue false)
- if !switching
- @sprites["movepresel"].index=selmove
- oldselmove=selmove
- @sprites["movepresel"].visible=true
- switching=true
- else
- tmpmove=@pokemon.moves[oldselmove]
- @pokemon.moves[oldselmove]=@pokemon.moves[selmove]
- @pokemon.moves[selmove]=tmpmove
- @sprites["movepresel"].visible=false
- switching=false
- drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
- end
- end
- end
- end
- if Input.trigger?(Input::DOWN)
- selmove+=1
- selmove=0 if selmove<4 && selmove>=@pokemon.numMoves
- selmove=0 if selmove>=4
- selmove=4 if selmove<0
- @sprites["movesel"].index=selmove
- newmove=@pokemon.moves[selmove].id
- pbPlayCursorSE()
- drawSelectedMove(@pokemon,0,newmove)
- end
- if Input.trigger?(Input::UP)
- selmove-=1
- if selmove<4 && selmove>=@pokemon.numMoves
- selmove=@pokemon.numMoves-1
- end
- selmove=0 if selmove>=4
- selmove=@pokemon.numMoves-1 if selmove<0
- @sprites["movesel"].index=selmove
- newmove=@pokemon.moves[selmove].id
- pbPlayCursorSE()
- drawSelectedMove(@pokemon,0,newmove)
- end
- end
- @sprites["movesel"].visible=false
- end
- def pbGoToPrevious
- if @page!=0
- newindex=@partyindex
- while newindex>0
- newindex-=1
- if @party[newindex] && !@party[newindex].isEgg?
- @partyindex=newindex
- break
- end
- end
- else
- newindex=@partyindex
- while newindex>0
- newindex-=1
- if @party[newindex]
- @partyindex=newindex
- break
- end
- end
- end
- end
- def pbGoToNext
- if @page!=0
- newindex=@partyindex
- while newindex<@party.length-1
- newindex+=1
- if @party[newindex] && !@party[newindex].isEgg?
- @partyindex=newindex
- break
- end
- end
- else
- newindex=@partyindex
- while newindex<@party.length-1
- newindex+=1
- if @party[newindex]
- @partyindex=newindex
- break
- end
- end
- end
- end
- def pbScene
- pbPlayCry(@pokemon)
- loop do
- Graphics.update
- Input.update
- pbUpdate
- if Input.trigger?(Input::B)
- break
- end
- dorefresh=false
- if Input.trigger?(Input::C)
- if @page==0
- break
- elsif @page==3
- pbMoveSelection
- dorefresh=true
- drawPageFour(@pokemon)
- end
- end
- if Input.trigger?(Input::UP) && @partyindex>0
- oldindex=@partyindex
- pbGoToPrevious
- if @partyindex!=oldindex
- @pokemon=@party[@partyindex]
- @sprites["pokemon"].setPokemonBitmap(@pokemon)
- @sprites["pokemon"].color=Color.new(0,0,0,0)
- pbPositionPokemonSprite(@sprites["pokemon"],24,110)
- dorefresh=true
- pbPlayCry(@pokemon)
- end
- end
- if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
- oldindex=@partyindex
- pbGoToNext
- if @partyindex!=oldindex
- @pokemon=@party[@partyindex]
- @sprites["pokemon"].setPokemonBitmap(@pokemon)
- @sprites["pokemon"].color=Color.new(0,0,0,0)
- pbPositionPokemonSprite(@sprites["pokemon"],24,110)
- dorefresh=true
- pbPlayCry(@pokemon)
- end
- end
- if Input.trigger?(Input::LEFT) && !@pokemon.isEgg?
- oldpage=@page
- @page-=1
- @page=0 if @page<0
- @page=3 if @page>3
- dorefresh=true
- if @page!=oldpage # Move to next page
- pbPlayCursorSE()
- dorefresh=true
- end
- end
- if Input.trigger?(Input::RIGHT) && !@pokemon.isEgg?
- oldpage=@page
- @page+=1
- @page=0 if @page<0
- @page=3 if @page>3
- if @page!=oldpage # Move to next page
- pbPlayCursorSE()
- dorefresh=true
- end
- end
- if dorefresh
- case @page
- when 0
- drawPageOne(@pokemon)
- when 1
- drawPageTwo(@pokemon)
- when 2
- drawPageThree(@pokemon)
- when 3
- drawPageFour(@pokemon)
- end
- end
- end
- return @partyindex
- end
- end
- class PokemonSummary
- def initialize(scene)
- @scene=scene
- end
- def pbStartScreen(party,partyindex)
- @scene.pbStartScene(party,partyindex)
- ret=@scene.pbScene
- @scene.pbEndScene
- return ret
- end
- def pbStartForgetScreen(party,partyindex,moveToLearn)
- ret=-1
- @scene.pbStartForgetScene(party,partyindex,moveToLearn)
- loop do
- ret=@scene.pbChooseMoveToForget(moveToLearn)
- if ret>=0 && moveToLearn!=0 && pbIsHiddenMove?(party[partyindex].moves[ret].id) && !$DEBUG
- Kernel.pbMessage(_INTL("HM moves can't be forgotten now.")){ @scene.pbUpdate }
- else
- break
- end
- end
- @scene.pbEndScene
- return ret
- end
- def pbStartChooseMoveScreen(party,partyindex,message)
- ret=-1
- @scene.pbStartForgetScene(party,partyindex,0)
- Kernel.pbMessage(message){ @scene.pbUpdate }
- loop do
- ret=@scene.pbChooseMoveToForget(0)
- if ret<0
- Kernel.pbMessage(_INTL("You must choose a move!")){ @scene.pbUpdate }
- else
- break
- end
- end
- @scene.pbEndScene
- return ret
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement