Advertisement
Guest User

Untitled

a guest
Mar 16th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.13 KB | None | 0 0
  1. class MoveSelectionSprite < SpriteWrapper
  2. attr_reader :preselected
  3. attr_reader :index
  4.  
  5. def initialize(viewport=nil,fifthmove=false)
  6. super(viewport)
  7. @movesel=AnimatedBitmap.new("Graphics/Pictures/summarymovesel")
  8. @frame=0
  9. @index=0
  10. @fifthmove=fifthmove
  11. @preselected=false
  12. @updating=false
  13. @spriteVisible=true
  14. refresh
  15. end
  16.  
  17. def dispose
  18. @movesel.dispose
  19. super
  20. end
  21.  
  22. def index=(value)
  23. @index=value
  24. refresh
  25. end
  26.  
  27. def preselected=(value)
  28. @preselected=value
  29. refresh
  30. end
  31.  
  32. def visible=(value)
  33. super
  34. @spriteVisible=value if !@updating
  35. end
  36.  
  37. def refresh
  38. w=@movesel.width
  39. h=@movesel.height/2
  40. self.x=240
  41. self.y=92+(self.index*64)
  42. self.y-=76 if @fifthmove
  43. self.y+=20 if @fifthmove && self.index==4
  44. self.bitmap=@movesel.bitmap
  45. if self.preselected
  46. self.src_rect.set(0,h,w,h)
  47. else
  48. self.src_rect.set(0,0,w,h)
  49. end
  50. end
  51.  
  52. def update
  53. @updating=true
  54. super
  55. @movesel.update
  56. @updating=false
  57. refresh
  58. end
  59. end
  60.  
  61.  
  62.  
  63. class PokemonSummaryScene
  64. def pbPokerus(pkmn)
  65. return pkmn.pokerusStage
  66. end
  67.  
  68. def pbUpdate
  69. pbUpdateSpriteHash(@sprites)
  70. end
  71.  
  72. def pbStartScene(party,partyindex)
  73. @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  74. @viewport.z=99999
  75. @party=party
  76. @partyindex=partyindex
  77. @pokemon=@party[@partyindex]
  78. @sprites={}
  79. @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
  80. @sprites["background"]=IconSprite.new(0,0,@viewport)
  81. @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  82. @sprites["pokemon"]=PokemonSprite.new(@viewport)
  83. @sprites["pokemon"].setPokemonBitmap(@pokemon)
  84. @sprites["pokemon"].mirror=false
  85. @sprites["pokemon"].color=Color.new(0,0,0,0)
  86. pbPositionPokemonSprite(@sprites["pokemon"],40,144)
  87. @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
  88. @sprites["pokeicon"].x=14
  89. @sprites["pokeicon"].y=52
  90. @sprites["pokeicon"].mirror=false
  91. @sprites["pokeicon"].visible=false
  92. @sprites["movepresel"]=MoveSelectionSprite.new(@viewport)
  93. @sprites["movepresel"].visible=false
  94. @sprites["movepresel"].preselected=true
  95. @sprites["movesel"]=MoveSelectionSprite.new(@viewport)
  96. @sprites["movesel"].visible=false
  97. @page=0
  98. drawPageOne(@pokemon)
  99. pbFadeInAndShow(@sprites) { pbUpdate }
  100. end
  101.  
  102. def pbStartForgetScene(party,partyindex,moveToLearn)
  103. @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  104. @viewport.z=99999
  105. @party=party
  106. @partyindex=partyindex
  107. @pokemon=@party[@partyindex]
  108. @sprites={}
  109. @page=3
  110. @typebitmap=AnimatedBitmap.new(_INTL("Graphics/Pictures/types"))
  111. @sprites["background"]=IconSprite.new(0,0,@viewport)
  112. @sprites["overlay"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  113. @sprites["pokeicon"]=PokemonBoxIcon.new(@pokemon,@viewport)
  114. @sprites["pokeicon"].x=14
  115. @sprites["pokeicon"].y=52
  116. @sprites["pokeicon"].mirror=false
  117. @sprites["movesel"]=MoveSelectionSprite.new(@viewport,moveToLearn>0)
  118. @sprites["movesel"].visible=false
  119. @sprites["movesel"].visible=true
  120. @sprites["movesel"].index=0
  121. drawSelectedMove(@pokemon,moveToLearn,@pokemon.moves[0].id)
  122. pbFadeInAndShow(@sprites)
  123. end
  124.  
  125. def pbEndScene
  126. pbFadeOutAndHide(@sprites) { pbUpdate }
  127. pbDisposeSpriteHash(@sprites)
  128. @typebitmap.dispose
  129. @viewport.dispose
  130. end
  131.  
  132. def drawMarkings(bitmap,x,y,width,height,markings)
  133. totaltext=""
  134. oldfontname=bitmap.font.name
  135. oldfontsize=bitmap.font.size
  136. oldfontcolor=bitmap.font.color
  137. bitmap.font.size=24
  138. bitmap.font.name="Arial"
  139. PokemonStorage::MARKINGCHARS.each{|item| totaltext+=item }
  140. totalsize=bitmap.text_size(totaltext)
  141. realX=x+(width/2)-(totalsize.width/2)
  142. realY=y+(height/2)-(totalsize.height/2)
  143. i=0
  144. PokemonStorage::MARKINGCHARS.each{|item|
  145. marked=(markings&(1<<i))!=0
  146. bitmap.font.color=(marked) ? Color.new(72,64,56) : Color.new(184,184,160)
  147. itemwidth=bitmap.text_size(item).width
  148. bitmap.draw_text(realX,realY,itemwidth+2,totalsize.height,item)
  149. realX+=itemwidth
  150. i+=1
  151. }
  152. bitmap.font.name=oldfontname
  153. bitmap.font.size=oldfontsize
  154. bitmap.font.color=oldfontcolor
  155. end
  156.  
  157. def drawPageOne(pokemon)
  158. if pokemon.isEgg?
  159. drawPageOneEgg(pokemon)
  160. return
  161. end
  162. overlay=@sprites["overlay"].bitmap
  163. overlay.clear
  164. @sprites["background"].setBitmap("Graphics/Pictures/summary1")
  165. imagepos=[]
  166. if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
  167. status=6 if pbPokerus(pokemon)==1
  168. status=@pokemon.status-1 if @pokemon.status>0
  169. status=5 if pokemon.hp==0
  170. imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
  171. end
  172. if pokemon.isShiny?
  173. imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
  174. end
  175. if pbPokerus(pokemon)==2
  176. imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
  177. end
  178. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  179. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  180. imagepos.push([ballimage,14,60,0,0,-1,-1])
  181. if (pokemon.isShadow? rescue false)
  182. imagepos.push(["Graphics/Pictures/summaryShadow",224,240,0,0,-1,-1])
  183. shadowfract=pokemon.heartgauge*1.0/PokeBattle_Pokemon::HEARTGAUGESIZE
  184. imagepos.push(["Graphics/Pictures/summaryShadowBar",242,280,0,0,(shadowfract*248).floor,-1])
  185. end
  186. pbDrawImagePositions(overlay,imagepos)
  187. base=Color.new(248,248,248)
  188. shadow=Color.new(104,104,104)
  189. pbSetSystemFont(overlay)
  190. numberbase=(pokemon.isShiny?) ? Color.new(248,56,32) : Color.new(64,64,64)
  191. numbershadow=(pokemon.isShiny?) ? Color.new(224,152,144) : Color.new(176,176,176)
  192. publicID=pokemon.publicID
  193. speciesname=PBSpecies.getName(pokemon.species)
  194. growthrate=pokemon.growthrate
  195. startexp=PBExperience.pbGetStartExperience(pokemon.level,growthrate)
  196. endexp=PBExperience.pbGetStartExperience(pokemon.level+1,growthrate)
  197. pokename=@pokemon.name
  198. textpos=[
  199. [_INTL("DATOS"),26,16,0,base,shadow],
  200. [pokename,46,62,0,base,shadow],
  201. [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
  202. [_INTL("Objeto"),16,320,0,base,shadow],
  203. [_ISPRINTF("N° Dex"),238,80,0,base,shadow],
  204. [sprintf("%03d",pokemon.species),435,80,2,numberbase,numbershadow],
  205. [_INTL("Especie"),238,112,0,base,shadow],
  206. [speciesname,435,112,2,Color.new(64,64,64),Color.new(176,176,176)],
  207. [_INTL("Tipo"),238,144,0,base,shadow],
  208. [_INTL("EO"),238,176,0,base,shadow],
  209. [_INTL("N° ID"),238,208,0,base,shadow],
  210. ]
  211. if pokemon.hasItem?
  212. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  213. else
  214. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  215. end
  216. if (pokemon.isShadow? rescue false)
  217. textpos.push([_INTL("Medidor del Corazón"),238,240,0,base,shadow])
  218. heartmessage=[_INTL("¡La puerta de su corazón está abierta! ¡Hacer purificación definitiva!"),
  219. _INTL("La puerta de su corazón está casi abierta del todo."),
  220. _INTL("La puerta de su corazón está bastante abierta."),
  221. _INTL("La puerta de su corazón está un poco abierta."),
  222. _INTL("La puerta de su corazón está apenas abierta."),
  223. _INTL("La puerta está fuertemente cerrada.")
  224. ][pokemon.heartStage]
  225. memo=sprintf("<c3=404040,B0B0B0>%s\n",heartmessage)
  226. drawFormattedTextEx(overlay,238,304,276,memo)
  227. else
  228. textpos.push([_INTL("Puntos de Experiencia"),238,240,0,base,shadow])
  229. textpos.push([sprintf("%d",pokemon.exp),488,272,1,Color.new(64,64,64),Color.new(176,176,176)])
  230. textpos.push([_INTL("Para subir de nivel"),238,304,0,base,shadow])
  231. textpos.push([sprintf("%d",endexp-pokemon.exp),488,336,1,Color.new(64,64,64),Color.new(176,176,176)])
  232. end
  233. idno=(pokemon.ot=="") ? "?????" : sprintf("%05d",publicID)
  234. textpos.push([idno,435,208,2,Color.new(64,64,64),Color.new(176,176,176)])
  235. if pokemon.ot==""
  236. textpos.push([_INTL("PRESTADO"),435,176,2,Color.new(64,64,64),Color.new(176,176,176)])
  237. else
  238. ownerbase=Color.new(64,64,64)
  239. ownershadow=Color.new(176,176,176)
  240. if pokemon.otgender==0 # EO masculino
  241. ownerbase=Color.new(24,112,216)
  242. ownershadow=Color.new(136,168,208)
  243. elsif pokemon.otgender==1 # EO femenino
  244. ownerbase=Color.new(248,56,32)
  245. ownershadow=Color.new(224,152,144)
  246. end
  247. textpos.push([pokemon.ot,435,176,2,ownerbase,ownershadow])
  248. end
  249. if pokemon.isMale?
  250. textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
  251. elsif pokemon.isFemale?
  252. textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
  253. end
  254. pbDrawTextPositions(overlay,textpos)
  255. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  256. type1rect=Rect.new(0,pokemon.type1*28,64,28)
  257. type2rect=Rect.new(0,pokemon.type2*28,64,28)
  258. if pokemon.type1==pokemon.type2
  259. overlay.blt(402,146,@typebitmap.bitmap,type1rect)
  260. else
  261. overlay.blt(370,146,@typebitmap.bitmap,type1rect)
  262. overlay.blt(436,146,@typebitmap.bitmap,type2rect)
  263. end
  264. if pokemon.level<PBExperience::MAXLEVEL
  265. overlay.fill_rect(362,372,(pokemon.exp-startexp)*128/(endexp-startexp),2,Color.new(72,120,160))
  266. overlay.fill_rect(362,374,(pokemon.exp-startexp)*128/(endexp-startexp),4,Color.new(24,144,248))
  267. end
  268. end
  269.  
  270. def drawPageOneEgg(pokemon)
  271. overlay=@sprites["overlay"].bitmap
  272. overlay.clear
  273. @sprites["background"].setBitmap("Graphics/Pictures/summaryEgg")
  274. imagepos=[]
  275. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  276. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  277. imagepos.push([ballimage,14,60,0,0,-1,-1])
  278. pbDrawImagePositions(overlay,imagepos)
  279. base=Color.new(248,248,248)
  280. shadow=Color.new(104,104,104)
  281. pbSetSystemFont(overlay)
  282. textpos=[
  283. [_INTL("NOTAS ENTRENADOR"),26,16,0,base,shadow],
  284. [pokemon.name,46,62,0,base,shadow],
  285. [_INTL("Objeto"),16,320,0,base,shadow]
  286. ]
  287. if pokemon.hasItem?
  288. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  289. else
  290. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  291. end
  292. pbDrawTextPositions(overlay,textpos)
  293. memo=""
  294. if pokemon.timeReceived
  295. month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
  296. date=pokemon.timeReceived.day
  297. year=pokemon.timeReceived.year
  298. memo+=_INTL("<c3=404040,B0B0B0>{2} de {1} de {3}\n",month,date,year)
  299. end
  300. mapname=pbGetMapNameFromId(pokemon.obtainMap)
  301. if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
  302. mapname=pokemon.obtainText
  303. end
  304. if mapname && mapname!=""
  305. memo+=_INTL("<c3=404040,B0B0B0>Un extraño Huevo Pokémon hallado por la <c3=F83820,E09890>{1}<c3=404040,B0B0B0>.\n",mapname)
  306. end
  307. memo+="<c3=404040,B0B0B0>\n"
  308. memo+=_INTL("<c3=404040,B0B0B0>\"Estado del Huevo\"\n")
  309. eggstate=_INTL("Parece que a este Huevo le tomará mucho tiempo abrirse.")
  310. eggstate=_INTL("¿Qué saldrá? Aún le queda para abrirse.") if pokemon.eggsteps<10200
  311. eggstate=_INTL("A veces se mueve. Debería abrirse pronto.") if pokemon.eggsteps<2550
  312. eggstate=_INTL("Está haciendo ruidos. ¡Está a punto de abrirse!") if pokemon.eggsteps<1275
  313. memo+=sprintf("<c3=404040,B0B0B0>%s\n",eggstate)
  314. drawFormattedTextEx(overlay,232,78,276,memo)
  315. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  316. end
  317.  
  318. def drawPageTwo(pokemon)
  319. overlay=@sprites["overlay"].bitmap
  320. overlay.clear
  321. @sprites["background"].setBitmap("Graphics/Pictures/summary2")
  322. imagepos=[]
  323. if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
  324. status=6 if pbPokerus(pokemon)==1
  325. status=@pokemon.status-1 if @pokemon.status>0
  326. status=5 if pokemon.hp==0
  327. imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
  328. end
  329. if pokemon.isShiny?
  330. imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
  331. end
  332. if pbPokerus(pokemon)==2
  333. imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
  334. end
  335. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  336. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  337. imagepos.push([ballimage,14,60,0,0,-1,-1])
  338. pbDrawImagePositions(overlay,imagepos)
  339. base=Color.new(248,248,248)
  340. shadow=Color.new(104,104,104)
  341. pbSetSystemFont(overlay)
  342. naturename=PBNatures.getName(pokemon.nature)
  343. pokename=@pokemon.name
  344. textpos=[
  345. [_INTL("NOTAS ENTRENADOR"),26,16,0,base,shadow],
  346. [pokename,46,62,0,base,shadow],
  347. [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
  348. [_INTL("Objeto"),16,320,0,base,shadow]
  349. ]
  350. if pokemon.hasItem?
  351. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  352. else
  353. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  354. end
  355. if pokemon.isMale?
  356. textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
  357. elsif pokemon.isFemale?
  358. textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
  359. end
  360. pbDrawTextPositions(overlay,textpos)
  361. memo=""
  362. shownature=(!(pokemon.isShadow? rescue false)) || pokemon.heartStage<=3
  363. if shownature
  364. memo+=_INTL("<c3=404040,B0B0B0>Naturaleza <c3=F83820,E09890>{1}<c3=404040,B0B0B0>.\n",naturename)
  365. end
  366. if pokemon.timeReceived
  367. month=pbGetAbbrevMonthName(pokemon.timeReceived.mon)
  368. date=pokemon.timeReceived.day
  369. year=pokemon.timeReceived.year
  370. memo+=_INTL("<c3=404040,B0B0B0>{2} de {1} de {3}\n",month,date,year)
  371. end
  372. mapname=pbGetMapNameFromId(pokemon.obtainMap)
  373. if (pokemon.obtainText rescue false) && pokemon.obtainText!=""
  374. mapname=pokemon.obtainText
  375. end
  376. if mapname && mapname!=""
  377. memo+=sprintf("<c3=F83820,E09890>%s\n",mapname)
  378. else
  379. memo+=_INTL("<c3=F83820,E09890>Faraway place\n")
  380. end
  381. if pokemon.obtainMode
  382. mettext=[_INTL("Encontrado con Nv. {1}.",pokemon.obtainLevel),
  383. _INTL("Huevo recibido."),
  384. _INTL("Intercambiado con Nv. {1}.",pokemon.obtainLevel),
  385. "",
  386. _INTL("Lo conocí en un encuentro fatídico en Nv. {1}.",pokemon.obtainLevel)
  387. ][pokemon.obtainMode]
  388. memo+=sprintf("<c3=404040,B0B0B0>%s\n",mettext)
  389. if pokemon.obtainMode==1 # hatched
  390. if pokemon.timeEggHatched
  391. month=pbGetAbbrevMonthName(pokemon.timeEggHatched.mon)
  392. date=pokemon.timeEggHatched.day
  393. year=pokemon.timeEggHatched.year
  394. memo+=_INTL("<c3=404040,B0B0B0>{2} de {1} de {3}\n",month,date,year)
  395. end
  396. mapname=pbGetMapNameFromId(pokemon.hatchedMap)
  397. if mapname && mapname!=""
  398. memo+=sprintf("<c3=F83820,E09890>%s\n",mapname)
  399. else
  400. memo+=_INTL("<c3=F83820,E09890>Faraway place\n")
  401. end
  402. memo+=_INTL("<c3=404040,B0B0B0>Huevo eclosionado.\n")
  403. else
  404. memo+="<c3=404040,B0B0B0>\n"
  405. end
  406. end
  407. if shownature
  408. bestiv=0
  409. tiebreaker=pokemon.personalID%6
  410. for i in 0...6
  411. if pokemon.iv[i]==pokemon.iv[bestiv]
  412. bestiv=i if i>=tiebreaker && bestiv<tiebreaker
  413. elsif pokemon.iv[i]>pokemon.iv[bestiv]
  414. bestiv=i
  415. end
  416. end
  417. characteristic=[_INTL("Le encanta comer."), # Loves to eat
  418. _INTL("A menudo se duerme."), # Often dozes off
  419. _INTL("Suele perder cosas."), # Often scatters things
  420. _INTL("A veces se enoja."), # Scatters things often
  421. _INTL("Le gusta relajarse."), # Likes to relax
  422. _INTL("Orgulloso de su fuerza."), # Proud of its power.
  423. _INTL("Le gusta revolverse."), # Likes to thrash about
  424. _INTL("Un poco cabezota."), # A little quick tempered
  425. _INTL("Le gusta luchar."), # Likes to fight
  426. _INTL("Muy cabezota."), # Quick tempered
  427. _INTL("Cuerpo resistente."), # Sturdy body
  428. _INTL("Capaz de hacerlo solo."), # Capable of taking hits
  429. _INTL("Muy persistente."), # Highly persistent
  430. _INTL("Buen fajador."), # Good endurance
  431. _INTL("Muy perseverante."), # Good perseverance
  432. _INTL("Le gusta correr."), # Likes to run
  433. _INTL("Oído siempre alerta."), # Alert to sounds
  434. _INTL("Impetuoso y bobo."), # Impetuous and silly
  435. _INTL("Es un poco payaso."), # Somewhat of a clown
  436. _INTL("Huye rápido."), # Quick to flee
  437. _INTL("Muy curioso."), # Highly curious
  438. _INTL("Travieso."), # Mischievous
  439. _INTL("Muy astuto."), # Thoroughly cunning
  440. _INTL("A veces se distrae."), # Often lost in thought
  441. _INTL("Muy quisquilloso."), # Very finicky
  442. _INTL("Voluntarioso."), # Strong willed
  443. _INTL("Algo orgulloso."), # Somewhat vain
  444. _INTL("Muy insolente."), # Strongly defiant
  445. _INTL("Odia perder."), # Hates to lose
  446. _INTL("Tiene mal genio.") # Somewhat stubborn
  447. ][bestiv*5+pokemon.iv[bestiv]%5]
  448. memo+=sprintf("<c3=404040,B0B0B0>%s\n",characteristic)
  449. end
  450. drawFormattedTextEx(overlay,232,78,276,memo)
  451. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  452. end
  453. def drawRating(pokemon)
  454. overlay=@sprites["overlay"].bitmap
  455. #overlay.clear
  456. imagepos=[]
  457.  
  458. stars=[] # Array of each star depending on IVs
  459. for i in 0..5
  460. if pokemon.iv[i] >= 21 # Best star above 21 IVs
  461. stars.push(3)
  462. elsif pokemon.iv[i] >= 11 # Okay star between 11-20 IVs
  463. stars.push(2)
  464. elsif pokemon.iv[i] >= 1 # Bad star between 1-10 IVs
  465. stars.push(1)
  466. elsif pokemon.iv[i] == 0 # Worst star at 0 IVs
  467. stars.push(0)
  468. end
  469. end
  470. # Draw stars
  471. path="Graphics/Pictures/summaryRating"
  472. imagepos.push([path,472,76,stars[0]*32,0,32,-1])
  473. imagepos.push([path,472,120,stars[1]*32,0,32,-1])
  474. imagepos.push([path,472,120+32,stars[2]*32,0,32,-1])
  475. imagepos.push([path,472,120+32*2,stars[4]*32,0,32,-1])
  476. imagepos.push([path,472,120+32*3,stars[5]*32,0,32,-1])
  477. imagepos.push([path,472,120+32*4,stars[3]*32,0,32,-1])
  478. pbDrawImagePositions(overlay,imagepos)
  479. end
  480. def drawPageThree(pokemon)
  481. overlay=@sprites["overlay"].bitmap
  482. drawRating(@pokemon)
  483. overlay.clear
  484. @sprites["background"].setBitmap("Graphics/Pictures/summary3")
  485. imagepos=[]
  486. if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
  487. status=6 if pbPokerus(pokemon)==1
  488. status=@pokemon.status-1 if @pokemon.status>0
  489. status=5 if pokemon.hp==0
  490. imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
  491. end
  492. if pokemon.isShiny?
  493. imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
  494. end
  495. if pbPokerus(pokemon)==2
  496. imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
  497. end
  498. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  499. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  500. imagepos.push([ballimage,14,60,0,0,-1,-1])
  501. pbDrawImagePositions(overlay,imagepos)
  502. base=Color.new(248,248,248)
  503. shadow=Color.new(104,104,104)
  504. statshadows=[]
  505. for i in 0...5; statshadows[i]=shadow; end
  506. if !(pokemon.isShadow? rescue false) || pokemon.heartStage<=3
  507. natup=(pokemon.nature/5).floor
  508. natdn=(pokemon.nature%5).floor
  509. statshadows[natup]=Color.new(136,96,72) if natup!=natdn
  510. statshadows[natdn]=Color.new(64,120,152) if natup!=natdn
  511. end
  512. pbSetSystemFont(overlay)
  513. abilityname=PBAbilities.getName(pokemon.ability)
  514. abilitydesc=pbGetMessage(MessageTypes::AbilityDescs,pokemon.ability)
  515. pokename=@pokemon.name
  516. textpos=[
  517. [_INTL("CARACTERÍSTICAS"),26,16,0,base,shadow],
  518. [pokename,46,62,0,base,shadow],
  519. [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
  520. [_INTL("Objeto"),16,320,0,base,shadow],
  521. [_INTL("PS"),292,76,2,base,shadow],
  522. [sprintf("%3d/%3d",pokemon.hp,pokemon.totalhp),462,76,1,Color.new(64,64,64),Color.new(176,176,176)],
  523. [_INTL("Ataque"),248,120,0,base,statshadows[0]],
  524. [sprintf("%d",pokemon.attack),456,120,1,Color.new(64,64,64),Color.new(176,176,176)],
  525. [_INTL("Defensa"),248,152,0,base,statshadows[1]],
  526. [sprintf("%d",pokemon.defense),456,152,1,Color.new(64,64,64),Color.new(176,176,176)],
  527. [_INTL("At. Esp."),248,184,0,base,statshadows[3]],
  528. [sprintf("%d",pokemon.spatk),456,184,1,Color.new(64,64,64),Color.new(176,176,176)],
  529. [_INTL("Def. Esp."),248,216,0,base,statshadows[4]],
  530. [sprintf("%d",pokemon.spdef),456,216,1,Color.new(64,64,64),Color.new(176,176,176)],
  531. [_INTL("Velocidad"),248,248,0,base,statshadows[2]],
  532. [sprintf("%d",pokemon.speed),456,248,1,Color.new(64,64,64),Color.new(176,176,176)],
  533. [_INTL("Habilidad"),224,284,0,base,shadow],
  534. [abilityname,362,284,0,Color.new(64,64,64),Color.new(176,176,176)],
  535. ]
  536. if pokemon.hasItem?
  537. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  538. else
  539. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  540. end
  541. if pokemon.isMale?
  542. textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
  543. elsif pokemon.isFemale?
  544. textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
  545. end
  546. pbDrawTextPositions(overlay,textpos)
  547. drawTextEx(overlay,224,316,282,2,abilitydesc,Color.new(64,64,64),Color.new(176,176,176))
  548. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  549. if pokemon.hp>0
  550. hpcolors=[
  551. Color.new(24,192,32),Color.new(0,144,0), # Green
  552. Color.new(248,184,0),Color.new(184,112,0), # Orange
  553. Color.new(240,80,32),Color.new(168,48,56) # Red
  554. ]
  555. hpzone=0
  556. hpzone=1 if pokemon.hp<=(@pokemon.totalhp/2).floor
  557. hpzone=2 if pokemon.hp<=(@pokemon.totalhp/4).floor
  558. overlay.fill_rect(360,110,pokemon.hp*96/pokemon.totalhp,2,hpcolors[hpzone*2+1])
  559. overlay.fill_rect(360,112,pokemon.hp*96/pokemon.totalhp,4,hpcolors[hpzone*2])
  560. end
  561. end
  562.  
  563. def drawPageFour(pokemon)
  564. overlay=@sprites["overlay"].bitmap
  565. overlay.clear
  566. @sprites["background"].setBitmap("Graphics/Pictures/summary4")
  567. @sprites["pokemon"].visible=true
  568. @sprites["pokeicon"].visible=false
  569. imagepos=[]
  570. if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
  571. status=6 if pbPokerus(pokemon)==1
  572. status=@pokemon.status-1 if @pokemon.status>0
  573. status=5 if pokemon.hp==0
  574. imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
  575. end
  576. if pokemon.isShiny?
  577. imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
  578. end
  579. if pbPokerus(pokemon)==2
  580. imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
  581. end
  582. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  583. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  584. imagepos.push([ballimage,14,60,0,0,-1,-1])
  585. pbDrawImagePositions(overlay,imagepos)
  586. base=Color.new(248,248,248)
  587. shadow=Color.new(104,104,104)
  588. pbSetSystemFont(overlay)
  589. pokename=@pokemon.name
  590. textpos=[
  591. [_INTL("MOVIMIENTOS"),26,16,0,base,shadow],
  592. [pokename,46,62,0,base,shadow],
  593. [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
  594. [_INTL("Objeto"),16,320,0,base,shadow]
  595. ]
  596. if pokemon.hasItem?
  597. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  598. else
  599. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  600. end
  601. if pokemon.isMale?
  602. textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
  603. elsif pokemon.isFemale?
  604. textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
  605. end
  606. pbDrawTextPositions(overlay,textpos)
  607. imagepos=[]
  608. yPos=98
  609. for i in 0...pokemon.moves.length
  610. if pokemon.moves[i].id>0
  611. imagepos.push(["Graphics/Pictures/types",248,yPos+2,0,
  612. pokemon.moves[i].type*28,64,28])
  613. textpos.push([PBMoves.getName(pokemon.moves[i].id),316,yPos,0,
  614. Color.new(64,64,64),Color.new(176,176,176)])
  615. if pokemon.moves[i].totalpp>0
  616. textpos.push([_ISPRINTF("PP"),342,yPos+32,0,
  617. Color.new(64,64,64),Color.new(176,176,176)])
  618. textpos.push([sprintf("%d/%d",pokemon.moves[i].pp,pokemon.moves[i].totalpp),
  619. 460,yPos+32,1,Color.new(64,64,64),Color.new(176,176,176)])
  620. end
  621. else
  622. textpos.push(["-",316,yPos,0,Color.new(64,64,64),Color.new(176,176,176)])
  623. textpos.push(["--",442,yPos+32,1,Color.new(64,64,64),Color.new(176,176,176)])
  624. end
  625. yPos+=64
  626. end
  627. pbDrawTextPositions(overlay,textpos)
  628. pbDrawImagePositions(overlay,imagepos)
  629. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  630. end
  631.  
  632. def drawSelectedMove(pokemon,moveToLearn,moveid)
  633. overlay=@sprites["overlay"].bitmap
  634. @sprites["pokemon"].visible=false if @sprites["pokemon"]
  635. @sprites["pokeicon"].setBitmap(pbPokemonIconFile(pokemon))
  636. @sprites["pokeicon"].src_rect=Rect.new(0,0,64,64)
  637. @sprites["pokeicon"].visible=true
  638. movedata=PBMoveData.new(moveid)
  639. basedamage=movedata.basedamage
  640. type=movedata.type
  641. category=movedata.category
  642. accuracy=movedata.accuracy
  643. drawMoveSelection(pokemon,moveToLearn)
  644. pbSetSystemFont(overlay)
  645. move=moveid
  646. textpos=[
  647. [basedamage<=1 ? basedamage==1 ? "???" : "---" : sprintf("%d",basedamage),
  648. 216,154,1,Color.new(64,64,64),Color.new(176,176,176)],
  649. [accuracy==0 ? "---" : sprintf("%d",accuracy),
  650. 216,186,1,Color.new(64,64,64),Color.new(176,176,176)]
  651. ]
  652. pbDrawTextPositions(overlay,textpos)
  653. imagepos=[["Graphics/Pictures/category",166,124,0,category*28,64,28]]
  654. pbDrawImagePositions(overlay,imagepos)
  655. drawTextEx(overlay,4,218,238,5,
  656. pbGetMessage(MessageTypes::MoveDescriptions,moveid),
  657. Color.new(64,64,64),Color.new(176,176,176))
  658. end
  659.  
  660. def drawMoveSelection(pokemon,moveToLearn)
  661. overlay=@sprites["overlay"].bitmap
  662. overlay.clear
  663. base=Color.new(248,248,248)
  664. shadow=Color.new(104,104,104)
  665. @sprites["background"].setBitmap("Graphics/Pictures/summary4details")
  666. if moveToLearn!=0
  667. @sprites["background"].setBitmap("Graphics/Pictures/summary4learning")
  668. end
  669. pbSetSystemFont(overlay)
  670. textpos=[
  671. [_INTL("MOVIMIENTOS"),26,16,0,base,shadow],
  672. [_INTL("CATEGORÍA"),20,122,0,base,shadow],
  673. [_INTL("POTENCIA"),20,154,0,base,shadow],
  674. [_INTL("PRECISIÓN"),20,186,0,base,shadow]
  675. ]
  676. type1rect=Rect.new(0,pokemon.type1*28,64,28)
  677. type2rect=Rect.new(0,pokemon.type2*28,64,28)
  678. if pokemon.type1==pokemon.type2
  679. overlay.blt(130,78,@typebitmap.bitmap,type1rect)
  680. else
  681. overlay.blt(96,78,@typebitmap.bitmap,type1rect)
  682. overlay.blt(166,78,@typebitmap.bitmap,type2rect)
  683. end
  684. imagepos=[]
  685. yPos=98
  686. yPos-=76 if moveToLearn!=0
  687. for i in 0...5
  688. moveobject=nil
  689. if i==4
  690. moveobject=PBMove.new(moveToLearn) if moveToLearn!=0
  691. yPos+=20
  692. else
  693. moveobject=pokemon.moves[i]
  694. end
  695. if moveobject
  696. if moveobject.id!=0
  697. imagepos.push(["Graphics/Pictures/types",248,yPos+2,0,
  698. moveobject.type*28,64,28])
  699. textpos.push([PBMoves.getName(moveobject.id),316,yPos,0,
  700. Color.new(64,64,64),Color.new(176,176,176)])
  701. if moveobject.totalpp>0
  702. textpos.push([_ISPRINTF("PP"),342,yPos+32,0,
  703. Color.new(64,64,64),Color.new(176,176,176)])
  704. textpos.push([sprintf("%d/%d",moveobject.pp,moveobject.totalpp),
  705. 460,yPos+32,1,Color.new(64,64,64),Color.new(176,176,176)])
  706. end
  707. else
  708. textpos.push(["-",316,yPos,0,Color.new(64,64,64),Color.new(176,176,176)])
  709. textpos.push(["--",442,yPos+32,1,Color.new(64,64,64),Color.new(176,176,176)])
  710. end
  711. end
  712. yPos+=64
  713. end
  714. pbDrawTextPositions(overlay,textpos)
  715. pbDrawImagePositions(overlay,imagepos)
  716. end
  717.  
  718. def drawPageFive(pokemon)
  719. overlay=@sprites["overlay"].bitmap
  720. overlay.clear
  721. @sprites["background"].setBitmap("Graphics/Pictures/summary5")
  722. imagepos=[]
  723. if pbPokerus(pokemon)==1 || pokemon.hp==0 || @pokemon.status>0
  724. status=6 if pbPokerus(pokemon)==1
  725. status=@pokemon.status-1 if @pokemon.status>0
  726. status=5 if pokemon.hp==0
  727. imagepos.push(["Graphics/Pictures/statuses",124,100,0,16*status,44,16])
  728. end
  729. if pokemon.isShiny?
  730. imagepos.push([sprintf("Graphics/Pictures/shiny"),2,134,0,0,-1,-1])
  731. end
  732. if pbPokerus(pokemon)==2
  733. imagepos.push([sprintf("Graphics/Pictures/summaryPokerus"),176,100,0,0,-1,-1])
  734. end
  735. ballused=@pokemon.ballused ? @pokemon.ballused : 0
  736. ballimage=sprintf("Graphics/Pictures/summaryball%02d",@pokemon.ballused)
  737. imagepos.push([ballimage,14,60,0,0,-1,-1])
  738. pbDrawImagePositions(overlay,imagepos)
  739. base=Color.new(248,248,248)
  740. shadow=Color.new(104,104,104)
  741. pbSetSystemFont(overlay)
  742. pokename=@pokemon.name
  743. textpos=[
  744. [_INTL("CINTAS"),26,16,0,base,shadow],
  745. [pokename,46,62,0,base,shadow],
  746. [pokemon.level.to_s,46,92,0,Color.new(64,64,64),Color.new(176,176,176)],
  747. [_INTL("Objeto"),16,320,0,base,shadow],
  748. [_INTL("Núm. de Cintas:"),234,342,0,Color.new(64,64,64),Color.new(176,176,176)],
  749. [pokemon.ribbonCount.to_s,450,342,1,Color.new(64,64,64),Color.new(176,176,176)],
  750. ]
  751. if pokemon.hasItem?
  752. textpos.push([PBItems.getName(pokemon.item),16,352,0,Color.new(64,64,64),Color.new(176,176,176)])
  753. else
  754. textpos.push([_INTL("Ninguno"),16,352,0,Color.new(184,184,160),Color.new(208,208,200)])
  755. end
  756. if pokemon.isMale?
  757. textpos.push([_INTL("♂"),178,62,0,Color.new(24,112,216),Color.new(136,168,208)])
  758. elsif pokemon.isFemale?
  759. textpos.push([_INTL("♀"),178,62,0,Color.new(248,56,32),Color.new(224,152,144)])
  760. end
  761. pbDrawTextPositions(overlay,textpos)
  762. imagepos=[]
  763. coord=0
  764. if pokemon.ribbons
  765. for i in pokemon.ribbons
  766. ribn=i-1
  767. imagepos.push(["Graphics/Pictures/ribbons",236+64*(coord%4),86+80*(coord/4).floor,
  768. 64*(ribn%8),64*(ribn/8).floor,64,64])
  769. coord+=1
  770. break if coord>=12
  771. end
  772. end
  773. pbDrawImagePositions(overlay,imagepos)
  774. drawMarkings(overlay,15,291,72,20,pokemon.markings)
  775. end
  776.  
  777. def pbChooseMoveToForget(moveToLearn)
  778. selmove=0
  779. ret=0
  780. maxmove=(moveToLearn>0) ? 4 : 3
  781. loop do
  782. Graphics.update
  783. Input.update
  784. pbUpdate
  785. if Input.trigger?(Input::B)
  786. ret=4
  787. break
  788. end
  789. if Input.trigger?(Input::C)
  790. break
  791. end
  792. if Input.trigger?(Input::DOWN)
  793. selmove+=1
  794. if selmove<4 && selmove>=@pokemon.numMoves
  795. selmove=(moveToLearn>0) ? maxmove : 0
  796. end
  797. selmove=0 if selmove>maxmove
  798. @sprites["movesel"].index=selmove
  799. newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
  800. drawSelectedMove(@pokemon,moveToLearn,newmove)
  801. ret=selmove
  802. end
  803. if Input.trigger?(Input::UP)
  804. selmove-=1
  805. selmove=maxmove if selmove<0
  806. if selmove<4 && selmove>=@pokemon.numMoves
  807. selmove=@pokemon.numMoves-1
  808. end
  809. @sprites["movesel"].index=selmove
  810. newmove=(selmove==4) ? moveToLearn : @pokemon.moves[selmove].id
  811. drawSelectedMove(@pokemon,moveToLearn,newmove)
  812. ret=selmove
  813. end
  814. end
  815. return (ret==4) ? -1 : ret
  816. end
  817.  
  818. def pbMoveSelection
  819. @sprites["movesel"].visible=true
  820. @sprites["movesel"].index=0
  821. selmove=0
  822. oldselmove=0
  823. switching=false
  824. drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
  825. loop do
  826. Graphics.update
  827. Input.update
  828. pbUpdate
  829. if @sprites["movepresel"].index==@sprites["movesel"].index
  830. @sprites["movepresel"].z=@sprites["movesel"].z+1
  831. else
  832. @sprites["movepresel"].z=@sprites["movesel"].z
  833. end
  834. if Input.trigger?(Input::B)
  835. break if !switching
  836. @sprites["movepresel"].visible=false
  837. switching=false
  838. end
  839. if Input.trigger?(Input::C)
  840. if selmove==4
  841. break if !switching
  842. @sprites["movepresel"].visible=false
  843. switching=false
  844. else
  845. if !(@pokemon.isShadow? rescue false)
  846. if !switching
  847. @sprites["movepresel"].index=selmove
  848. oldselmove=selmove
  849. @sprites["movepresel"].visible=true
  850. switching=true
  851. else
  852. tmpmove=@pokemon.moves[oldselmove]
  853. @pokemon.moves[oldselmove]=@pokemon.moves[selmove]
  854. @pokemon.moves[selmove]=tmpmove
  855. @sprites["movepresel"].visible=false
  856. switching=false
  857. drawSelectedMove(@pokemon,0,@pokemon.moves[selmove].id)
  858. end
  859. end
  860. end
  861. end
  862. if Input.trigger?(Input::DOWN)
  863. selmove+=1
  864. selmove=0 if selmove<4 && selmove>=@pokemon.numMoves
  865. selmove=0 if selmove>=4
  866. selmove=4 if selmove<0
  867. @sprites["movesel"].index=selmove
  868. newmove=@pokemon.moves[selmove].id
  869. pbPlayCursorSE()
  870. drawSelectedMove(@pokemon,0,newmove)
  871. end
  872. if Input.trigger?(Input::UP)
  873. selmove-=1
  874. if selmove<4 && selmove>=@pokemon.numMoves
  875. selmove=@pokemon.numMoves-1
  876. end
  877. selmove=0 if selmove>=4
  878. selmove=@pokemon.numMoves-1 if selmove<0
  879. @sprites["movesel"].index=selmove
  880. newmove=@pokemon.moves[selmove].id
  881. pbPlayCursorSE()
  882. drawSelectedMove(@pokemon,0,newmove)
  883. end
  884. end
  885. @sprites["movesel"].visible=false
  886. end
  887.  
  888. def pbGoToPrevious
  889. if @page!=0
  890. newindex=@partyindex
  891. while newindex>0
  892. newindex-=1
  893. if @party[newindex] && !@party[newindex].isEgg?
  894. @partyindex=newindex
  895. break
  896. end
  897. end
  898. else
  899. newindex=@partyindex
  900. while newindex>0
  901. newindex-=1
  902. if @party[newindex]
  903. @partyindex=newindex
  904. break
  905. end
  906. end
  907. end
  908. end
  909.  
  910. def pbGoToNext
  911. if @page!=0
  912. newindex=@partyindex
  913. while newindex<@party.length-1
  914. newindex+=1
  915. if @party[newindex] && !@party[newindex].isEgg?
  916. @partyindex=newindex
  917. break
  918. end
  919. end
  920. else
  921. newindex=@partyindex
  922. while newindex<@party.length-1
  923. newindex+=1
  924. if @party[newindex]
  925. @partyindex=newindex
  926. break
  927. end
  928. end
  929. end
  930. end
  931.  
  932. def pbScene
  933. pbPlayCry(@pokemon)
  934. loop do
  935. Graphics.update
  936. Input.update
  937. pbUpdate
  938. if Input.trigger?(Input::B)
  939. break
  940. end
  941. dorefresh=false
  942. if Input.trigger?(Input::C)
  943. if @page==0
  944. break
  945. elsif @page==3
  946. pbMoveSelection
  947. dorefresh=true
  948. drawPageFour(@pokemon)
  949. end
  950. end
  951. if Input.trigger?(Input::UP) && @partyindex>0
  952. oldindex=@partyindex
  953. pbGoToPrevious
  954. if @partyindex!=oldindex
  955. @pokemon=@party[@partyindex]
  956. @sprites["pokemon"].setPokemonBitmap(@pokemon)
  957. @sprites["pokemon"].color=Color.new(0,0,0,0)
  958. pbPositionPokemonSprite(@sprites["pokemon"],40,144)
  959. dorefresh=true
  960. pbPlayCry(@pokemon)
  961. end
  962. end
  963. if Input.trigger?(Input::DOWN) && @partyindex<@party.length-1
  964. oldindex=@partyindex
  965. pbGoToNext
  966. if @partyindex!=oldindex
  967. @pokemon=@party[@partyindex]
  968. @sprites["pokemon"].setPokemonBitmap(@pokemon)
  969. @sprites["pokemon"].color=Color.new(0,0,0,0)
  970. pbPositionPokemonSprite(@sprites["pokemon"],40,144)
  971. dorefresh=true
  972. pbPlayCry(@pokemon)
  973. end
  974. end
  975. if Input.trigger?(Input::LEFT) && !@pokemon.isEgg?
  976. oldpage=@page
  977. @page-=1
  978. @page=0 if @page<0
  979. @page=4 if @page>4
  980. dorefresh=true
  981. if @page!=oldpage # Move to next page
  982. pbPlayCursorSE()
  983. dorefresh=true
  984. end
  985. end
  986. if Input.trigger?(Input::RIGHT) && !@pokemon.isEgg?
  987. oldpage=@page
  988. @page+=1
  989. @page=0 if @page<0
  990. @page=4 if @page>4
  991. if @page!=oldpage # Move to next page
  992. pbPlayCursorSE()
  993. dorefresh=true
  994. end
  995. end
  996. if dorefresh
  997. case @page
  998. when 0
  999. drawPageOne(@pokemon)
  1000. when 1
  1001. drawPageTwo(@pokemon)
  1002. when 2
  1003. drawPageThree(@pokemon)
  1004. when 3
  1005. drawPageFour(@pokemon)
  1006. when 4
  1007. drawPageFive(@pokemon)
  1008. end
  1009. end
  1010. end
  1011. return @partyindex
  1012. end
  1013. end
  1014.  
  1015.  
  1016.  
  1017. class PokemonSummary
  1018. def initialize(scene)
  1019. @scene=scene
  1020. end
  1021.  
  1022. def pbStartScreen(party,partyindex)
  1023. @scene.pbStartScene(party,partyindex)
  1024. ret=@scene.pbScene
  1025. @scene.pbEndScene
  1026. return ret
  1027. end
  1028.  
  1029. def pbStartForgetScreen(party,partyindex,moveToLearn)
  1030. ret=-1
  1031. @scene.pbStartForgetScene(party,partyindex,moveToLearn)
  1032. loop do
  1033. ret=@scene.pbChooseMoveToForget(moveToLearn)
  1034. if ret>=0 && moveToLearn!=0 && pbIsHiddenMove?(party[partyindex].moves[ret].id) && !$DEBUG
  1035. Kernel.pbMessage(_INTL("Los movimientos de MO no se pueden olvidar así.")){ @scene.pbUpdate }
  1036. else
  1037. break
  1038. end
  1039. end
  1040. @scene.pbEndScene
  1041. return ret
  1042. end
  1043.  
  1044. def pbStartChooseMoveScreen(party,partyindex,message)
  1045. ret=-1
  1046. @scene.pbStartForgetScene(party,partyindex,0)
  1047. Kernel.pbMessage(message){ @scene.pbUpdate }
  1048. loop do
  1049. ret=@scene.pbChooseMoveToForget(0)
  1050. if ret<0
  1051. Kernel.pbMessage(_INTL("¡Debes elegir un movimiento!")){ @scene.pbUpdate }
  1052. else
  1053. break
  1054. end
  1055. end
  1056. @scene.pbEndScene
  1057. return ret
  1058. end
  1059. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement