class MoveSelectionSprite < SpriteWrapper
attr_reader :preselected
attr_reader :index
def initialize(viewport=nil)
super(viewport)
@movesel=BitmapCache.load_bitmap("Graphics/Pictures/movesel.png")
@frame=0
@index=0
@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
[email protected]
[email protected]/2
self.x=162
self.y=64+(self.index*h)
self.bitmap=@movesel
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
@frame+=1
if !self.preselected && @spriteVisible
self.visible=(@frame%20)<15
end
@frame=0 if @frame>=20
@updating=false
end
end
class PokemonSummaryScene
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=BitmapCache.load_bitmap("Graphics/Pictures/types.png")
@sprites["overlay"]=SpriteWrapper.new(@viewport)
@sprites["overlay"].bitmap=Bitmap.new(Graphics.width,Graphics.height)
@sprites["pokemon"]=SpriteWrapper.new(@viewport)
@sprites["pokemon"].bitmap=pbLoadPokemonBitmap(@pokemon)
@sprites["pokemon"].mirror=true
@sprites["pokemon"].x=16
@sprites["pokemon"].y=64
@sprites["movepresel"]=MoveSelectionSprite.new(@viewport)
@sprites["movesel"]=MoveSelectionSprite.new(@viewport)
@sprites["movepresel"].visible=false
@sprites["movepresel"].preselected=true
@sprites["movesel"].visible=false
@page=0
drawPageOne(@pokemon)
pbFadeInAndShow(@sprites)
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=2
@typebitmap=BitmapCache.load_bitmap("Graphics/Pictures/types.png")
@sprites["overlay"]=SpriteWrapper.new(@viewport)
@sprites["overlay"].bitmap=Bitmap.new(Graphics.width,Graphics.height)
@sprites["pokemon"]=SpriteWrapper.new(@viewport)
@sprites["pokemon"].bitmap=pbLoadPokemonBitmap(@pokemon)
@sprites["pokemon"].mirror=true
pbPositionPokemonSprite(@sprites["pokemon"],16,64)
@sprites["movepresel"]=MoveSelectionSprite.new(@viewport)
@sprites["movesel"]=MoveSelectionSprite.new(@viewport)
@sprites["movepresel"].visible=false
@sprites["movepresel"].preselected=true
@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)
pbDisposeSpriteHash(@sprites)
@typebitmap.dispose
@viewport.dispose
end
def drawPageOne(pokemon)
if pokemon.egg?
drawPageOneEgg(pokemon)
return
end
overlay=@sprites["overlay"].bitmap
overlay.clear
imagepos=[
["Graphics/Pictures/summary1.png",0,0,0,0,-1,-1]
]
if pokemon.pokerus==1 || pokemon.hp==0 || @pokemon.status>0
[email protected]
status=6 if pokemon.pokerus==1
status=5 if pokemon.hp==0
imagepos.push(["Graphics/Pictures/statuspane.png",0,288,0,0,-1,-1])
imagepos.push(["Graphics/Pictures/statuses.png",106,296,0,16*status,44,16])
end
[email protected] ? @pokemon.ballused : 0
ballimage=sprintf("Graphics/Pictures/ball%02d_0.png",@pokemon.ballused)
imagepos.push([ballimage,16,254,0,0,-1,-1])
@gaugeX=46
@gaugeY=194
imagepos.push(["Graphics/Pictures/advHPBar.png",@gaugeX-30,@gaugeY-4,0,0,-1,-1])
pbDrawImagePositions(overlay,imagepos)
def hp
return @pokemon.hp
end
if
[email protected]?
[email protected]==0 ? 0 : (self.hp*96/@pokemon.totalhp)
hpgauge=1 if hpgauge==0 && self.hp>0
hpzone=0
hpzone=1 if self.hp<=(@pokemon.totalhp/2).floor
hpzone=2 if self.hp<=(@pokemon.totalhp/4).floor
hpcolors=[
Color.new(11*8,26*8,16*8), # Green
Color.new(14*8,31*8,21*8),
Color.new(25*8,21*8,1*8), # Orange
Color.new(31*8,28*8,7*8),
Color.new(21*8,8*8,9*8), # Red
Color.new(31*8,11*8,7*8)
]
# fill with HP color
overlay.fill_rect(@gaugeX,@gaugeY,hpgauge,2,hpcolors[hpzone*2])
overlay.fill_rect(@gaugeX,@gaugeY+2,hpgauge,4,hpcolors[hpzone*2+1])
# fill with black
overlay.fill_rect(@gaugeX+hpgauge,@gaugeY,96-hpgauge,2,Color.new(0,0,0))
overlay.fill_rect(@gaugeX+hpgauge,@gaugeY+2,96-hpgauge,4,Color.new(0,0,0))
end
if pokemon.pokerus==2
overlay.fill_rect(52,278,4,4,Color.new(0,0,0))
end
speciesname=PBSpecies.getName(pokemon.species)
base=Color.new(248,248,248)
shadow=Color.new(96,96,96)
publicID=pokemon.trainerID&0xFFFF
pbSetSystemFont(overlay)
naturename=PBNatures.getName(pokemon.nature)
abilityname=PBAbilities.getName(pokemon.ability)
abilitydesc=pbGetMessage(MessageTypes::AbilityDescs,pokemon.ability)
numberbase=(pokemon.isShiny?) ? Color.new(29*8,29*8,21*8) : base
numbershadow=(pokemon.isShiny?) ? Color.new(20*8,20*8,12*8) : shadow
textpos=[
[_INTL("POKeMON INFO"),4,0,0,base,shadow],
[_ISPRINTF("No. {1:03d}",pokemon.species),16,36,0,numberbase,numbershadow],
[pokemon.name,16,200,0,base,shadow],
[_INTL("/{1}",speciesname),16,228,0,base,shadow],
[_INTL("Lv{1}",pokemon.level),64,254,0,base,shadow],
[_INTL("TYPE/"),176,96,0,Color.new(0,0,0),Color.new(208,208,200)],
[_INTL("C: CANCEL"),475,2,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("ID No. {1:05d}",publicID),463,64,1,base,shadow],
[abilityname,176,144,0,base,shadow],
[abilitydesc,176,176,0,Color.new(0,0,0),Color.new(208,208,200)]
]
if pokemon.gender==0
textpos.push([_INTL("♂"),132,254,false,Color.new(120,184,248),Color.new(0,120,248)])
elsif pokemon.gender==1
textpos.push([_INTL("♀"),132,254,false,Color.new(248,128,128),Color.new(168,24,24)])
end
if pokemon.pokerus==1 || pokemon.hp==0 || pokemon.status>0
textpos.push([_INTL("STATUS"),4,288,false,base,shadow])
end
pbDrawTextPositions(overlay,textpos)
# Pink OT Color: 4A7F2977
drawColoredTextEx(overlay,176,64,300,_INTL("\\[7FFF318C]OT/\\[7F285E20]{1}",pokemon.ot))
drawColoredTextEx(overlay,176,228,300,_INTL("\\[043C3AFF]{1}\\[0000675A] nature",naturename))
pbSetSmallFont(overlay)
textpos=[
[_INTL("PROFILE"),196,42,0,base,shadow],
[_INTL("ABILITY"),196,122,0,base,shadow],
[_INTL("TRAINER MEMO"),196,202,0,base,shadow]
]
pbDrawTextPositions(overlay,textpos)
type1rect=Rect.new(0,pokemon.type1*28,64,28)
type2rect=Rect.new(0,pokemon.type2*28,64,28)
overlay.blt(240,98,@typebitmap,type1rect)
overlay.blt(320,98,@typebitmap,type2rect) if pokemon.type1!=pokemon.type2
end
def drawPageOneEgg(pokemon)
overlay=@sprites["overlay"].bitmap
overlay.clear
imagepos=[
["Graphics/Pictures/summaryEgg.png",0,0,0,0,-1,-1]
]
pbDrawImagePositions(overlay,imagepos)
base=Color.new(248,248,248)
shadow=Color.new(96,96,96)
pbSetSystemFont(overlay)
textpos=[
[_INTL("POKeMON INFO"),4,0,0,base,shadow],
[pokemon.name,16,196,0,base,shadow],
[_INTL("TYPE/"),176,96,0,Color.new(0,0,0),Color.new(208,208,200)],
[_INTL("C: CANCEL"),475,2,1,Color.new(0,0,0),Color.new(208,208,200)],
[sprintf(_INTL("ID No. ?????")),463,64,1,base,shadow]
]
eggstate=_INTL("It looks like this egg will take a long time to hatch.")
eggstate=_INTL("What will hatch from this? It will take some time.") if pokemon.eggsteps<0x2900
eggstate=_INTL("It moves occasionally. It should hatch soon.") if pokemon.eggsteps<0xb00
eggstate=_INTL("It's making sounds. It's about to hatch!") if pokemon.eggsteps<0x600
pbDrawTextPositions(overlay,textpos)
drawColoredTextEx(overlay,176,64,300,_INTL("\\[7FFF318C]OT/?????"))
drawColoredTextEx(overlay,176,144,300,_INTL("\\[0000675A]{1}",eggstate))
drawColoredTextEx(overlay,176,228,300,_INTL("\\[0000675A]Pokemon Egg"))
pbSetSmallFont(overlay)
textpos=[
[_INTL("PROFILE"),196,42,0,base,shadow],
[_INTL("STATE"),196,122,0,base,shadow],
[_INTL("TRAINER MEMO"),196,202,0,base,shadow]
]
pbDrawTextPositions(overlay,textpos)
type1rect=Rect.new(0,9*28,64,28)
overlay.blt(240,98,@typebitmap,type1rect)
end
def drawPageTwo(pokemon)
overlay=@sprites["overlay"].bitmap
speciesname=PBSpecies.getName(pokemon.species)
base=Color.new(248,248,248)
shadow=Color.new(96,96,96)
publicID=pokemon.trainerID&0xFFFF
imagepos=[
["Graphics/Pictures/summary2.png",0,0,0,0,-1,-1]
]
if pokemon.pokerus==1 || pokemon.hp==0 || @pokemon.status>0
[email protected]
status=6 if pokemon.pokerus==1
status=5 if pokemon.hp==0
imagepos.push(["Graphics/Pictures/statuspane.png",0,288,0,0,-1,-1])
imagepos.push(["Graphics/Pictures/statuses.png",106,296,0,16*status,44,16])
end
[email protected] ? @pokemon.ballused : 0
ballimage=sprintf("Graphics/Pictures/ball%02d_0.png",@pokemon.ballused)
imagepos.push([ballimage,16,254,0,0,-1,-1])
pbDrawImagePositions(overlay,imagepos)
if pokemon.pokerus==2
overlay.fill_rect(52,278,4,4,Color.new(0,0,0))
end
pbSetSystemFont(overlay)
naturename=PBNatures.getName(pokemon.nature)
abilityname=PBAbilities.getName(pokemon.ability)
itemname=pokemon.item==0 ? _INTL("NONE") : PBItems.getName(pokemon.item)
growthrate=pokemon.growthrate
startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
numberbase=(pokemon.isShiny?) ? Color.new(29*8,29*8,21*8) : base
numbershadow=(pokemon.isShiny?) ? Color.new(20*8,20*8,12*8) : shadow
textpos=[
[_INTL("POKeMON SKILLS"),4,0,0,base,shadow],
[_ISPRINTF("No. {1:03d}",pokemon.species),16,36,0,numberbase,numbershadow],
[pokemon.name,16,196,0,base,shadow],
[_INTL("/{1}",speciesname),16,228,0,base,shadow],
[_INTL("Lv{1}",pokemon.level),64,254,0,base,shadow],
[_INTL("HP"),212,114,2,base,shadow],
[_INTL("ATTACK"),212,146,2,base,shadow],
[_INTL("DEFENSE"),212,178,2,base,shadow],
[_INTL("SP. ATK"),390,114,2,base,shadow],
[_INTL("SP. DEF"),390,146,2,base,shadow],
[_INTL("SPEED"),390,178,2,base,shadow],
[_INTL("EXP. POINTS"),172,224,0,base,shadow],
[_INTL("NEXT LV."),172,256,0,base,shadow],
[itemname,242,64,2,Color.new(0,0,0),Color.new(208,208,200)],
[_INTL("NONE"),400,64,2,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:3d}/{2:3d}",pokemon.hp,pokemon.totalhp),346,114,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.attack),346,146,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.defense),346,178,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.spatk),472,114,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.spdef),472,146,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.speed),472,178,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",pokemon.exp),472,224,1,Color.new(0,0,0),Color.new(208,208,200)],
[_ISPRINTF("{1:d}",endexp-pokemon.exp),472,256,1,Color.new(0,0,0),Color.new(208,208,200)]
]
if pokemon.gender==0
textpos.push([_INTL("♂"),132,254,false,Color.new(120,184,248),Color.new(0,120,248)])
elsif pokemon.gender==1
textpos.push([_INTL("♀"),132,254,false,Color.new(248,128,128),Color.new(168,24,24)])
end
if pokemon.pokerus==1 || pokemon.hp==0 || pokemon.status>0
textpos.push([_INTL("STATUS"),4,288,false,base,shadow])
end
pbDrawTextPositions(overlay,textpos)
pbSetSmallFont(overlay)
textpos=[
[_INTL("ITEM"),196,42,0,base,shadow],
[_INTL("STATS"),196,90,0,base,shadow],
[_INTL("EXPERIENCE"),196,202,0,base,shadow],
[_INTL("RIBBONS"),356,42,0,base,shadow],
]
pbDrawTextPositions(overlay,textpos)
end
def drawPageThree(pokemon)
overlay=@sprites["overlay"].bitmap
speciesname=PBSpecies.getName(pokemon.species)
base=Color.new(248,248,248)
shadow=Color.new(96,96,96)
publicID=pokemon.trainerID&0xFFFF
imagepos=[
["Graphics/Pictures/summary3.png",0,0,0,0,-1,-1]
]
if pokemon.pokerus==1 || pokemon.hp==0 || @pokemon.status>0
[email protected]
status=6 if pokemon.pokerus==1
status=5 if pokemon.hp==0
imagepos.push(["Graphics/Pictures/statuspane.png",0,288,0,0,-1,-1])
imagepos.push(["Graphics/Pictures/statuses.png",106,296,0,16*status,44,16])
end
[email protected] ? @pokemon.ballused : 0
ballimage=sprintf("Graphics/Pictures/ball%02d_0.png",@pokemon.ballused)
imagepos.push([ballimage,16,254,0,0,-1,-1])
pbDrawImagePositions(overlay,imagepos)
if pokemon.pokerus==2
overlay.fill_rect(52,278,4,4,Color.new(0,0,0))
end
pbSetSystemFont(overlay)
numberbase=(pokemon.isShiny?) ? Color.new(29*8,29*8,21*8) : base
numbershadow=(pokemon.isShiny?) ? Color.new(20*8,20*8,12*8) : shadow
textpos=[
[_INTL("BATTLE MOVES"),4,0,0,base,shadow],
[_ISPRINTF("No. {1:03d}",pokemon.species),16,36,0,numberbase,numbershadow],
[pokemon.name,16,196,0,base,shadow],
[_INTL("/{1}",speciesname),16,228,0,base,shadow],
[_INTL("Lv{1}",pokemon.level),64,254,0,base,shadow],
[_INTL("C: INFO"),475,2,1,Color.new(0,0,0),Color.new(208,208,200)]
]
if pokemon.gender==0
textpos.push([_INTL("♂"),132,254,false,Color.new(120,184,248),Color.new(0,120,248)])
elsif pokemon.gender==1
textpos.push([_INTL("♀"),132,254,false,Color.new(248,128,128),Color.new(168,24,24)])
end
imagepos=[]
yPos=64
for i in 0...pokemon.moves.length
if pokemon.moves
.id>0
imagepos.push(["Graphics/Pictures/types.png",170,yPos+2,0,
pokemon.moves.type*28,64,28])
textpos.push([PBMoves.getName(pokemon.moves.id),240,yPos,0,base,shadow])
textpos.push([
_ISPRINTF("PP{1:02d}/{2:02d}",pokemon.moves.pp,pokemon.moves.totalpp),
388,yPos,0,Color.new(72,72,72),Color.new(216,216,216)])
else
textpos.push(["-",240,yPos,0,base,shadow])
textpos.push([_INTL("--"),416,yPos,0,Color.new(72,72,72),Color.new(216,216,216)])
end
yPos+=32
end
if pokemon.pokerus==1 || pokemon.hp==0 || pokemon.status>0
textpos.push([_INTL("STATUS"),4,288,false,base,shadow])
end
pbDrawTextPositions(overlay,textpos)
pbDrawImagePositions(overlay,imagepos)
pbSetSmallFont(overlay)
textpos=[
[_INTL("MOVES"),196,42,0,base,shadow],
[_INTL("DESCRIPTION"),196,218,0,base,shadow],
]
pbDrawTextPositions(overlay,textpos)
end
def drawSelectedMove(pokemon,moveToLearn,moveid)
overlay=@sprites["overlay"].bitmap
movedata=PBMoveData.new(moveid)
basedamage=movedata.basedamage
type=movedata.type
accuracy=movedata.accuracy
drawMoveSelection(pokemon,moveToLearn)
pbSetSystemFont(overlay)
move=moveid
textpos=[
[basedamage==0 ? _INTL("---") : _ISPRINTF("{1:d}",basedamage),
158,240,1,Color.new(0,0,0),Color.new(208,208,200)],
[accuracy==0 ? _INTL("---") : _ISPRINTF("{1:d}",accuracy),
158,272,1,Color.new(0,0,0),Color.new(208,208,200)]
]
pbDrawTextPositions(overlay,textpos)
drawTextEx(overlay,172,240,308,0,
pbGetMessage(MessageTypes::MoveDescriptions,moveid),
Color.new(0,0,0),Color.new(208,208,200))
end
def drawMoveSelection(pokemon,moveToLearn)
overlay=@sprites["overlay"].bitmap
speciesname=PBSpecies.getName(pokemon.species)
base=Color.new(248,248,248)
shadow=Color.new(96,96,96)
publicID=pokemon.trainerID&0xFFFF
pbDrawImagePositions(overlay,[
["Graphics/Pictures/summary4.png",0,0,0,0,-1,-1]
])
pbSetSystemFont(overlay)
textpos=[
[_INTL("BATTLE MOVES"),4,0,0,base,shadow],
[_ISPRINTF("No. {1:03d}",pokemon.species),16,36,0,base,shadow],
[pokemon.name,16,196,0,base,shadow],
[_INTL("C: SWITCH"),475,2,1,Color.new(0,0,0),Color.new(208,208,200)],
[_INTL("POWER"),16,240,0,base,shadow],
[_INTL("ACCURACY"),16,272,0,base,shadow]
]
imagepos=[]
yPos=64
for i in 0..4
moveobject=nil
moveBase=nil
moveShadow=nil
if i==4
if moveToLearn==0
textpos.push([_INTL("CANCEL"),240,yPos,0,base,shadow])
else
moveobject=PBMove.new(moveToLearn)
moveBase=Color.new(248,184,176)
moveShadow=Color.new(208,112,104)
end
else
moveobject=pokemon.moves
moveBase=base
moveShadow=shadow
end
if moveobject
if moveobject.id!=0
imagepos.push(["Graphics/Pictures/types.png",170,yPos+2,0,
moveobject.type*28,64,28])
textpos.push([PBMoves.getName(moveobject.id),240,yPos,0,moveBase,moveShadow])
textpos.push([
_ISPRINTF("PP{1:02d}/{2:02d}",moveobject.pp,moveobject.totalpp),
388,yPos,0,Color.new(72,72,72),Color.new(216,216,216)])
else
textpos.push(["-",240,yPos,0,base,shadow])
textpos.push([_INTL("--"),416,yPos,0,Color.new(72,72,72),Color.new(216,216,216)])
end
end
yPos+=32
end
pbDrawTextPositions(overlay,textpos)
pbDrawImagePositions(overlay,imagepos)
pbSetSmallFont(overlay)
textpos=[
[_INTL("MOVES"),196,42,0,base,shadow],
[_INTL("DESCRIPTION"),196,218,0,base,shadow],
[_INTL("EFFECT"),36,218,0,base,shadow],
]
pbDrawTextPositions(overlay,textpos)
end
def pbIsHiddenMove?(move)
for i in 0...$ItemData.length
next if !pbIsHiddenMachine?(i)
atk=$ItemData[ITEMMACHINE]
return true if move==atk
end
return false
end
def pbForgetMove(moveToLearn)
selmove=0
ret=0
loop do
Graphics.update
Input.update
@sprites["movesel"].update
if Input.trigger?(Input::B)
ret=4
break
end
if Input.trigger?(Input::C)
if ret<4 && moveToLearn!=0 && pbIsHiddenMove?(@pokemon.moves[selmove].id)
Kernel.pbMessage(_INTL("HM moves can't be forgotten now."))
else
break
end
end
if Input.trigger?(Input::DOWN)
selmove+=1
if selmove<4 && selmove>=pbNumMoves(@pokemon)
selmove=4
end
selmove=0 if selmove>4
selmove=4 if selmove<0
@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
if selmove<4 && selmove>=pbNumMoves(@pokemon)
selmove=pbNumMoves(@pokemon)-1
end
selmove=0 if selmove>4
selmove=4 if selmove<0
@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
@sprites["movepresel"].update
@sprites["movesel"].update
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 !switching
@sprites["movepresel"].index=selmove
oldselmove=selmove
@sprites["movepresel"].visible=true
switching=true
else
[email protected][oldselmove]
@pokemon.moves[oldselmove][email protected][selmove]
@pokemon.moves[selmove]=tmpmove
@sprites["movepresel"].visible=false
switching=false
drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
end
end
end
if Input.trigger?(Input::DOWN)
selmove+=1
if selmove<4 && selmove>=pbNumMoves(@pokemon)
selmove=4
end
selmove=0 if selmove>4
selmove=4 if selmove<0
@sprites["movesel"].index=selmove
newmove=(selmove==4) ? 0 : @pokemon.moves[selmove].id
Audio.se_play("Audio/SE/Choose.wav")
drawSelectedMove(@pokemon,0,newmove)
end
if Input.trigger?(Input::UP)
selmove-=1
if selmove<4 && selmove>=pbNumMoves(@pokemon)
selmove=pbNumMoves(@pokemon)-1
end
selmove=0 if selmove>4
selmove=4 if selmove<0
@sprites["movesel"].index=selmove
newmove=(selmove==4) ? 0 : @pokemon.moves[selmove].id
Audio.se_play("Audio/SE/Choose.wav")
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].egg?
@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].egg?
@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
if @pokemon && [email protected]?
pkmnwav=sprintf("Audio/SE/%03dCry.wav",@pokemon.species)
Audio.se_play(pkmnwav,100,(@pokemon.hp*25/@pokemon.totalhp)+75) rescue nil
end
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
break
end
dorefresh=false
if Input.trigger?(Input::C)
if @page==0
break
elsif @page==2
pbMoveSelection
dorefresh=true
drawPageThree(@pokemon)
end
end
if Input.trigger?(Input::UP)
pbGoToPrevious
@pokemon=@party[@partyindex]
@sprites["pokemon"].bitmap.dispose
@sprites["pokemon"].bitmap=pbLoadPokemonBitmap(@pokemon)
pbPositionPokemonSprite(@sprites["pokemon"],16,64)
dorefresh=true
if @pokemon && [email protected]?
pkmnwav=sprintf("Audio/SE/%03dCry.wav",@pokemon.species)
Audio.se_play(pkmnwav,100,(@pokemon.hp*25/@pokemon.totalhp)+75) rescue nil
end
end
if Input.trigger?(Input::DOWN)
pbGoToNext
@pokemon=@party[@partyindex]
@sprites["pokemon"].bitmap.dispose
@sprites["pokemon"].bitmap=pbLoadPokemonBitmap(@pokemon)
pbPositionPokemonSprite(@sprites["pokemon"],16,64)
dorefresh=true
if @pokemon && [email protected]?
pkmnwav=sprintf("Audio/SE/%03dCry.wav",@pokemon.species)
Audio.se_play(pkmnwav,100,(@pokemon.hp*25/@pokemon.totalhp)+75) rescue nil
end
end
if Input.trigger?(Input::LEFT) && [email protected]?
oldpage=@page
@page-=1
@page=0 if @page<0
@page=2 if @page>2
dorefresh=true
if @page!=oldpage
Audio.se_play("Audio/SE/Choose.wav")
dorefresh=true
end
end
if Input.trigger?(Input::RIGHT) && [email protected]?
oldpage=@page
@page+=1
@page=0 if @page<0
@page=2 if @page>2
if @page!=oldpage
Audio.se_play("Audio/SE/Choose.wav")
dorefresh=true
end
end
case @page
when 0
drawPageOne(@pokemon)
when 1
drawPageTwo(@pokemon)
when 2
drawPageThree(@pokemon)
end
end
end
end
class PokemonSummary
def initialize(scene)
@scene=scene
end
def pbStartScreen(party,partyindex)
@scene.pbStartScene(party,partyindex)
@scene.pbScene
@scene.pbEndScene
end
def pbStartForgetScreen(party,partyindex,moveToLearn)
ret=-1
@scene.pbStartForgetScene(party,partyindex,moveToLearn)
[email protected](moveToLearn)
@scene.pbEndScene
return ret
end
end