Advertisement
Diego-Mertens

mi ebs script

Mar 11th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.64 KB | None | 0 0
  1. #===============================================================================
  2. # Evolution scene
  3. #===============================================================================
  4. class PokemonEvolutionScene
  5. # main update function
  6. def update(poke=true,bar=false)
  7. self.updateBackground
  8. @sprites["poke"].update if poke
  9. @sprites["poke2"].update if poke
  10. if bar
  11. @sprites["bar1"].y -= 8 if @sprites["bar1"].y > -@viewport.rect.height*0.5
  12. @sprites["bar2"].y += 8 if @sprites["bar2"].y < @viewport.rect.height*1.5
  13. end
  14. end
  15. # background update function
  16. def updateBackground
  17. for j in 0...6
  18. @sprites["l#{j}"].y = @viewport.rect.height if @sprites["l#{j}"].y <= 0
  19. t = (@sprites["l#{j}"].y.to_f/@viewport.rect.height)*255
  20. @sprites["l#{j}"].tone = Tone.new(t,t,t)
  21. z = ((@sprites["l#{j}"].y.to_f - @viewport.rect.height/2)/(@viewport.rect.height/2))*1.0
  22. @sprites["l#{j}"].angle = (z < 0) ? 180 : 0
  23. @sprites["l#{j}"].zoom_y = z.abs
  24. @sprites["l#{j}"].y -= 2
  25. end
  26. end
  27. # update for the particle effects
  28. def updateParticles
  29. for j in 0...16
  30. @sprites["s#{j}"].visible = true
  31. if @sprites["s#{j}"].opacity == 0
  32. @sprites["s#{j}"].opacity = 255
  33. @sprites["s#{j}"].speed = 1
  34. @sprites["s#{j}"].x = @sprites["poke"].x
  35. @sprites["s#{j}"].y = @sprites["poke"].y
  36. x, y = randCircleCord(256)
  37. @sprites["s#{j}"].end_x = @sprites["poke"].x - 256 + x
  38. @sprites["s#{j}"].end_y = @sprites["poke"].y - 256 + y
  39. end
  40. @sprites["s#{j}"].x -= (@sprites["s#{j}"].x - @sprites["s#{j}"].end_x)*0.01*@sprites["s#{j}"].speed
  41. @sprites["s#{j}"].y -= (@sprites["s#{j}"].y - @sprites["s#{j}"].end_y)*0.01*@sprites["s#{j}"].speed
  42. @sprites["s#{j}"].opacity -= 4*@sprites["s#{j}"].speed
  43. end
  44. end
  45. # update for the rays going out of the pokemon
  46. def updateRays(i)
  47. for j in 0...8
  48. next if j > i/8
  49. if @sprites["r#{j}"].opacity == 0
  50. @sprites["r#{j}"].opacity = 255
  51. @sprites["r#{j}"].zoom_x = 0
  52. @sprites["r#{j}"].zoom_y = 0
  53. end
  54. @sprites["r#{j}"].opacity -= 4
  55. @sprites["r#{j}"].zoom_x += 0.04
  56. @sprites["r#{j}"].zoom_y += 0.04
  57. end
  58. end
  59. # initializes the evolution sequence
  60. def pbStartScreen(pokemon,newspecies)
  61. @pokemon = pokemon
  62. @newspecies = newspecies
  63. @sprites = {}
  64. @viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
  65. @viewport.z = 99999
  66. @viewport.color = Color.new(0,0,0,0)
  67. # initial fading transition
  68. 16.times do
  69. @viewport.color.alpha += 16
  70. pbWait(1)
  71. end
  72. # initializes bars for cutting the screen off
  73. @sprites["bar1"] = Sprite.new(@viewport)
  74. @sprites["bar1"].drawRect(@viewport.rect.width,@viewport.rect.height/2,Color.new(0,0,0))
  75. @sprites["bar1"].z = 99999
  76. @sprites["bar2"] = Sprite.new(@viewport)
  77. @sprites["bar2"].drawRect(@viewport.rect.width,@viewport.rect.height/2,Color.new(0,0,0))
  78. @sprites["bar2"].y = @viewport.rect.height/2
  79. @sprites["bar2"].z = 99999
  80. # initializes messages window
  81. @sprites["msgwindow"] = Kernel.pbCreateMessageWindow(@viewport)
  82. @sprites["msgwindow"].visible = false
  83. @sprites["msgwindow"].z = 9999
  84. # background graphics
  85. @sprites["bg1"] = Sprite.new(@viewport)
  86. @sprites["bg1"].bitmap = pbBitmap("Graphics/Pictures/EBS/evobg")
  87. @sprites["bg2"] = Sprite.new(@viewport)
  88. @sprites["bg2"].bitmap = pbBitmap("Graphics/Pictures/EBS/overlay")
  89. @sprites["bg2"].z = 5
  90. # particles for the background
  91. for j in 0...6
  92. @sprites["l#{j}"] = Sprite.new(@viewport)
  93. @sprites["l#{j}"].bitmap = pbBitmap("Graphics/Pictures/EBS/line1")
  94. @sprites["l#{j}"].y = (@viewport.rect.height/6)*j
  95. @sprites["l#{j}"].ox = @sprites["l#{j}"].bitmap.width/2
  96. @sprites["l#{j}"].x = @viewport.rect.width/2
  97. end
  98. # original pokemon sprite
  99. @sprites["poke"] = defined?(DynamicPokemonSprite) ? DynamicPokemonSprite.new(false,0,@viewport) : PokemonBattlerSprite.new(false,0,@viewport)
  100. @sprites["poke"].setPokemonBitmap(@pokemon)
  101. @sprites["poke"].showshadow = false if defined?(DynamicPokemonSprite)
  102. @sprites["poke"].ox = @sprites["poke"].bitmap.width/2
  103. @sprites["poke"].oy = @sprites["poke"].bitmap.height/2
  104. @sprites["poke"].x = @viewport.rect.width/2
  105. @sprites["poke"].y = @viewport.rect.height/2
  106. @sprites["poke"].z = 50
  107. # evolved pokemon sprite
  108. @sprites["poke2"] = defined?(DynamicPokemonSprite) ? DynamicPokemonSprite.new(false,0,@viewport) : PokemonBattlerSprite.new(false,0,@viewport)
  109. @sprites["poke2"].setPokemonBitmap(@pokemon,false,@newspecies)
  110. @sprites["poke2"].showshadow = false if defined?(DynamicPokemonSprite)
  111. @sprites["poke2"].ox = @sprites["poke2"].bitmap.width/2
  112. @sprites["poke2"].oy = @sprites["poke2"].bitmap.height/2
  113. @sprites["poke2"].x = @viewport.rect.width/2
  114. @sprites["poke2"].y = @viewport.rect.height/2
  115. @sprites["poke2"].z = 50
  116. @sprites["poke2"].zoom_x = 0
  117. @sprites["poke2"].zoom_y = 0
  118. if @newspecies.pbHasType?(:ROCK) || @newspecies.pbHasType?(:GROUND)
  119. @sprites["poke2"].color = Color.new(70,39,0)
  120. elsif @newspecies.pbHasType?(:WATER)
  121. @sprites["poke2"].color = Color.new(0,154,255)
  122. elsif @newspecies.pbHasType?(:GRASS) || @newspecies.pbHasType?(:BUG) || @newspecies.pbHasType?(:ALIEN)
  123. @sprites["poke2"].color = Color.new(0,154,0)
  124. elsif @newspecies.pbHasType?(:POISON) || @newspecies.pbHasType?(:DARK) || @newspecies.pbHasType?(:GHOST) || @newspecies.pbHasType?(:DRAGON)
  125. @sprites["poke2"].color = Color.new(29,10,47)
  126. elsif @newspecies.pbHasType?(:FAIRY) || @newspecies.pbHasType?(:PSYCHIC) || @newspecies.pbHasType?(:GEMA)
  127. @sprites["poke2"].color = Color.new(255,95,235)
  128. elsif @newspecies.pbHasType?(:FIRE) || @newspecies.pbHasType?(:FIGHTING)
  129. @sprites["poke2"].color = Color.new(191,0,0)
  130. elsif @newspecies.pbHasType?(:ELECTRIC)
  131. @sprites["poke2"].color = Color.new(255,209,20)
  132. elsif @newspecies.pbHasType?(:ICE) || @newspecies.pbHasType?(:FLYING)
  133. @sprites["poke2"].color = Color.new(156,246,255)
  134. elsif @newspecies.pbHasType?(:STEEL)
  135. @sprites["poke2"].color = Color.new(194,194,194)
  136. elsif @newspecies.pbHasType?(:NORMAL)
  137. @sprites["poke2"].color = Color.new(255,255,255)
  138. else
  139. @sprites["poke2"].color = Color.new(255,255,255)
  140. end
  141. # initializes the shine at the beginning animation
  142. @sprites["shine"] = Sprite.new(@viewport)
  143. @sprites["shine"].bitmap = pbBitmap("Graphics/Pictures/EBS/shine1")
  144. @sprites["shine"].ox = @sprites["shine"].bitmap.width/2
  145. @sprites["shine"].oy = @sprites["shine"].bitmap.height/2
  146. @sprites["shine"].x = @sprites["poke"].x
  147. @sprites["shine"].y = @sprites["poke"].y
  148. @sprites["shine"].zoom_x = 0
  149. @sprites["shine"].zoom_y = 0
  150. @sprites["shine"].opacity = 0
  151. @sprites["shine"].z = 60
  152. # initializes the shine during animation
  153. @sprites["shine2"] = Sprite.new(@viewport)
  154. @sprites["shine2"].bitmap = pbBitmap("Graphics/Pictures/EBS/shine3")
  155. @sprites["shine2"].ox = @sprites["shine2"].bitmap.width/2
  156. @sprites["shine2"].oy = @sprites["shine2"].bitmap.height/2
  157. @sprites["shine2"].x = @sprites["poke"].x
  158. @sprites["shine2"].y = @sprites["poke"].y
  159. @sprites["shine2"].zoom_x = 0
  160. @sprites["shine2"].zoom_y = 0
  161. @sprites["shine2"].opacity = 0
  162. @sprites["shine2"].z = 40
  163. # initializes the shine at the end
  164. @sprites["shine3"] = Sprite.new(@viewport)
  165. @sprites["shine3"].bitmap = pbBitmap("Graphics/Pictures/EBS/shine4")
  166. @sprites["shine3"].ox = @sprites["shine3"].bitmap.width/2
  167. @sprites["shine3"].oy = @sprites["shine3"].bitmap.height/2
  168. @sprites["shine3"].x = @sprites["poke"].x
  169. @sprites["shine3"].y = @sprites["poke"].y
  170. @sprites["shine3"].zoom_x = 0.5
  171. @sprites["shine3"].zoom_y = 0.5
  172. @sprites["shine3"].opacity = 0
  173. @sprites["shine3"].z = 60
  174. # initializes particles
  175. for j in 0...16
  176. @sprites["s#{j}"] = Sprite.new(@viewport)
  177. @sprites["s#{j}"].bitmap = pbBitmap("Graphics/Pictures/EBS/shine2")
  178. @sprites["s#{j}"].ox = @sprites["s#{j}"].bitmap.width/2
  179. @sprites["s#{j}"].oy = @sprites["s#{j}"].bitmap.height/2
  180. @sprites["s#{j}"].x = @sprites["poke"].x
  181. @sprites["s#{j}"].y = @sprites["poke"].y
  182. @sprites["s#{j}"].z = 60
  183. s = rand(4) + 1
  184. x, y = randCircleCord(192)
  185. @sprites["s#{j}"].end_x = @sprites["s#{j}"].x - 192 + x
  186. @sprites["s#{j}"].end_y = @sprites["s#{j}"].y - 192 + y
  187. @sprites["s#{j}"].speed = s
  188. @sprites["s#{j}"].visible = false
  189. end
  190. # initializes light rays
  191. rangle = []
  192. for i in 0...8; rangle.push((360/8)*i + 15); end
  193. for j in 0...8
  194. @sprites["r#{j}"] = Sprite.new(@viewport)
  195. @sprites["r#{j}"].bitmap = BitmapCache.load_bitmap("Graphics/Pictures/EBS/ray")
  196. @sprites["r#{j}"].ox = 0
  197. @sprites["r#{j}"].oy = @sprites["r#{j}"].bitmap.height/2
  198. @sprites["r#{j}"].opacity = 0
  199. @sprites["r#{j}"].zoom_x = 0
  200. @sprites["r#{j}"].zoom_y = 0
  201. @sprites["r#{j}"].x = @viewport.rect.width/2
  202. @sprites["r#{j}"].y = @viewport.rect.height/2
  203. a = rand(rangle.length)
  204. @sprites["r#{j}"].angle = rangle[a]
  205. @sprites["r#{j}"].z = 60
  206. rangle.delete_at(a)
  207. end
  208. @viewport.color.alpha = 0
  209. end
  210.  
  211. # closes the evolution screen.
  212. def pbEndScreen
  213. $game_temp.message_window_showing = false if $game_temp
  214. @viewport.color = Color.new(0,0,0,0)
  215. 16.times do
  216. Graphics.update
  217. self.update
  218. @viewport.color.alpha += 16
  219. end
  220. pbDisposeSpriteHash(@sprites)
  221. 16.times do
  222. Graphics.update
  223. @viewport.color.alpha -= 16
  224. end
  225. @viewport.dispose
  226. end
  227. # initial animation when starting evolution
  228. def glow
  229. t = 0
  230. pbSEPlay("#{SE_EXTRA_PATH}Flash")
  231. 16.times do
  232. Graphics.update
  233. self.update(false)
  234. @sprites["shine"].zoom_x += 0.08
  235. @sprites["shine"].zoom_y += 0.08
  236. @sprites["shine"].opacity += 16
  237. t += 16
  238. @sprites["poke"].tone = Tone.new(t,t,t)
  239. @sprites["bar1"].y += 3
  240. @sprites["bar2"].y -= 3
  241. end
  242. 16.times do
  243. Graphics.update
  244. self.update(false)
  245. @sprites["shine"].zoom_x -= 0.02
  246. @sprites["shine"].zoom_y -= 0.02
  247. @sprites["shine"].opacity -= 16
  248. t -= 16
  249. @sprites["poke"].tone = Tone.new(t,t,t)
  250. @sprites["bar1"].y += 3
  251. @sprites["bar2"].y -= 3
  252. self.updateParticles
  253. end
  254. end
  255. # aniamtion to flash the screen after evolution is completed
  256. def flash(cancel)
  257. srt = cancel ? "poke" : "poke2"
  258. pbSEPlay("#{SE_EXTRA_PATH}Flash3") if !cancel
  259. for key in @sprites.keys
  260. next if ["bar1","bar2","bg1","bg2","l0","l1","l2","l3","l4","l5"].include?(key)
  261. @sprites[key].visible = false
  262. end
  263. @sprites[srt].visible = true
  264. @sprites[srt].zoom_x = 1
  265. @sprites[srt].zoom_y = 1
  266. @sprites[srt].tone = Tone.new(0,0,0)
  267. for i in 0...(cancel ? 32 : 64)
  268. Graphics.update
  269. @viewport.color.alpha -= cancel ? 8 : 4
  270. self.update(true,true)
  271. end
  272. return if cancel
  273. pbSEPlay("#{SE_EXTRA_PATH}Saint6")
  274. for j in 0...64
  275. @sprites["p#{j}"] = Sprite.new(@viewport)
  276. n = [5,2][rand(2)]
  277. @sprites["p#{j}"].bitmap = pbBitmap("Graphics/Pictures/EBS/shine#{n}")
  278. @sprites["p#{j}"].z = 10
  279. @sprites["p#{j}"].ox = @sprites["p#{j}"].bitmap.width/2
  280. @sprites["p#{j}"].oy = @sprites["p#{j}"].bitmap.height/2
  281. @sprites["p#{j}"].x = rand(@viewport.rect.width + 1)
  282. @sprites["p#{j}"].y = @viewport.rect.height/2 + rand(@viewport.rect.height/2 - 64)
  283. z = [0.2,0.4,0.5,0.6,0.8,1.0][rand(6)]
  284. @sprites["p#{j}"].zoom_x = z
  285. @sprites["p#{j}"].zoom_y = z
  286. @sprites["p#{j}"].opacity = 0
  287. @sprites["p#{j}"].speed = 2 + rand(5)
  288. end
  289. for i in 0...64
  290. Graphics.update
  291. self.update
  292. for j in 0...64
  293. @sprites["p#{j}"].opacity += (i < 32 ? 2 : -2)*@sprites["p#{j}"].speed
  294. @sprites["p#{j}"].y -= 1 if i%@sprites["p#{j}"].speed == 0
  295. if @sprites["p#{j}"].opacity > 128
  296. @sprites["p#{j}"].zoom_x /= 1.5
  297. @sprites["p#{j}"].zoom_y /= 1.5
  298. end
  299. end
  300. end
  301. end
  302. # starts the evolution screen
  303. def pbEvolution(cancancel=true)
  304. # stops BGM and displays message
  305. pbBGMStop()
  306. 16.times do
  307. Graphics.update
  308. self.update
  309. @sprites["bar1"].y -= @sprites["bar1"].bitmap.height/16
  310. @sprites["bar2"].y += @sprites["bar2"].bitmap.height/16
  311. end
  312. @sprites["msgwindow"].visible = true
  313. Kernel.pbMessageDisplay(@sprites["msgwindow"],_INTL("\\se[]¿Qué? ¡Fantástico!\r\n¡{1} evoluciona!\\^",@pokemon.name)) { self.update }
  314. Kernel.pbMessageWaitForInput(@sprites["msgwindow"],100,true) { self.update }
  315. @sprites["msgwindow"].visible = false
  316. # plays pokemon's cry
  317. pbPlayCry(@pokemon)
  318. pbCryFrameLength(@pokemon.species).times do
  319. Graphics.update
  320. self.update
  321. end
  322. pbBGMPlay("evolv")
  323. canceled = false
  324. # beginning glow effect
  325. self.glow
  326. k1 = 1 # zoom factor for the pokemon
  327. k2 = 1 # zoom factor for the shine
  328. s = 1 # speed of the animation
  329. @viewport.color = Color.new(255,255,255,0)
  330. pbSEPlay("#{SE_EXTRA_PATH}Heal4")
  331. # main animation loop
  332. for i in 0...256
  333. k1 *= -1 if i%(32/s) == 0
  334. k2 *= -1 if i%(16) == 0
  335. s *= 2 if i%64 == 0 && i > 0 && s < 8
  336. Graphics.update
  337. Input.update
  338. self.update(false)
  339. self.updateParticles
  340. self.updateRays(i)
  341. @sprites["poke"].zoom_x += 0.03125*k1*s
  342. @sprites["poke"].zoom_y += 0.03125*k1*s
  343. if @pokemon.pbHasType?(:ROCK) || @pokemon.pbHasType?(:GROUND)
  344. @sprites["poke"].color = Color.new(70,39,0)
  345. elsif @pokemon.pbHasType?(:WATER)
  346. @sprites["poke"].color = Color.new(0,154,255)
  347. elsif @pokemon.pbHasType?(:GRASS) || @pokemon.pbHasType?(:BUG) || @pokemon.pbHasType?(:ALIEN)
  348. @sprites["poke"].color = Color.new(0,154,0)
  349. elsif @pokemon.pbHasType?(:POISON) || @pokemon.pbHasType?(:DARK) || @pokemon.pbHasType?(:GHOST) || @pokemon.pbHasType?(:DRAGON)
  350. @sprites["poke"].color = Color.new(29,10,47)
  351. elsif @pokemon.pbHasType?(:FAIRY) || @pokemon.pbHasType?(:PSYCHIC) || @pokemon.pbHasType?(:GEMA)
  352. @sprites["poke"].color = Color.new(255,95,235)
  353. elsif @pokemon.pbHasType?(:FIRE) || @pokemon.pbHasType?(:FIGHTING)
  354. @sprites["poke"].color = Color.new(191,0,0)
  355. elsif @pokemon.pbHasType?(:ELECTRIC)
  356. @sprites["poke"].color = Color.new(255,209,20)
  357. elsif @pokemon.pbHasType?(:ICE) || @pokemon.pbHasType?(:FLYING)
  358. @sprites["poke"].color = Color.new(156,246,255)
  359. elsif @pokemon.pbHasType?(:STEEL)
  360. @sprites["poke"].color = Color.new(194,194,194)
  361. elsif @pokemon.pbHasType?(:NORMAL)
  362. @sprites["poke"].color = Color.new(255,255,255)
  363. else
  364. @sprites["poke"].color = Color.new(255,255,255)
  365. end
  366. if @newspecies.pbHasType?(:ROCK)
  367. @sprites["poke2"].color = Color.new(70,39,0)
  368. elsif @newspecies.pbHasType?(:GROUND)
  369. @sprites["poke2"].color = Color.new(70,39,0)
  370. elsif @newspecies.pbHasType?(:WATER)
  371. @sprites["poke2"].color = Color.new(0,154,255)
  372. elsif @newspecies.pbHasType?(:GRASS)
  373. @sprites["poke2"].color = Color.new(0,154,0)
  374. elsif @newspecies.pbHasType?(:BUG)
  375. @sprites["poke2"].color = Color.new(0,154,0)
  376. elsif @newspecies.pbHasType?(:ALIEN)
  377. @sprites["poke2"].color = Color.new(0,154,0)
  378. elsif @newspecies.pbHasType?(:POISON)
  379. @sprites["poke2"].color = Color.new(29,10,47)
  380. elsif @newspecies.pbHasType?(:DRAGON)
  381. @sprites["poke2"].color = Color.new(29,10,47)
  382. elsif @newspecies.pbHasType?(:DARK)
  383. @sprites["poke2"].color = Color.new(29,10,47)
  384. elsif @newspecies.pbHasType?(:GHOST)
  385. @sprites["poke2"].color = Color.new(29,10,47)
  386. elsif @newspecies.pbHasType?(:FAIRY)
  387. @sprites["poke2"].color = Color.new(255,105,245)
  388. elsif @newspecies.pbHasType?(:PSYCHIC)
  389. @sprites["poke2"].color = Color.new(255,95,235)
  390. elsif @newspecies.pbHasType?(:GEMA)
  391. @sprites["poke2"].color = Color.new(255,95,245)
  392. elsif @newspecies.pbHasType?(:FIRE)
  393. @sprites["poke2"].color = Color.new(191,10,0)
  394. elsif @newspecies.pbHasType?(:FIGHTING)
  395. @sprites["poke2"].color = Color.new(191,0,0)
  396. elsif @newspecies.pbHasType?(:ELECTRIC)
  397. @sprites["poke2"].color = Color.new(255,255,0)
  398. elsif @newspecies.pbHasType?(:ICE)
  399. @sprites["poke2"].color = Color.new(156,246,255)
  400. elsif @newspecies.pbHasType?(:FLYING)
  401. @sprites["poke2"].color = Color.new(160,255,255)
  402. elsif @newspecies.pbHasType?(:STEEL)
  403. @sprites["poke2"].color = Color.new(194,194,194)
  404. elsif @newspecies.pbHasType?(:NORMAL)
  405. @sprites["poke2"].color = Color.new(255,255,255)
  406. else
  407. @sprites["poke2"].color = Color.new(255,255,255)
  408. end
  409. @sprites["poke2"].zoom_x -= 0.03125*k1*s
  410. @sprites["poke2"].zoom_y -= 0.03125*k1*s
  411. if @sprites["shine2"].opacity < 255
  412. @sprites["shine2"].opacity += 16
  413. @sprites["shine2"].zoom_x += 0.08
  414. @sprites["shine2"].zoom_y += 0.08
  415. else
  416. @sprites["shine2"].zoom_x += 0.01*k2
  417. @sprites["shine2"].zoom_y += 0.01*k2
  418. @sprites["shine2"].tone.red += 0.5
  419. @sprites["shine2"].tone.green += 0.5
  420. @sprites["shine2"].tone.blue += 0.5
  421. end
  422. if i >= 240
  423. @sprites["shine3"].opacity += 16
  424. @sprites["shine3"].zoom_x += 0.1
  425. @sprites["shine3"].zoom_y += 0.1
  426. end
  427. @viewport.color.alpha += 32 if i >= 248
  428. if Input.trigger?(Input::B) && cancancel
  429. pbBGMStop()
  430. canceled = true
  431. break
  432. end
  433. end
  434. @viewport.color = Color.new(255,255,255)
  435. self.flash(canceled)
  436. if canceled
  437. # prints message when evolution is cancelled
  438. @sprites["msgwindow"].visible = true
  439. Kernel.pbMessageDisplay(@sprites["msgwindow"],_INTL("¿Qué?\r\n¡Asustaste a {1} y dejó de evolucionar!",@pokemon.name)) { self.update }
  440. else
  441. # creates the actual evolved pokemon
  442. self.createEvolved
  443. end
  444. end
  445. # function used to create the newly evolved pokemon
  446. def createEvolved
  447. frames = pbCryFrameLength(@newspecies)
  448. # plays pokemon's cry
  449. pbBGMStop()
  450. pbPlayCry(@newspecies)
  451. frames.times do
  452. Graphics.update
  453. self.update
  454. end
  455. pbMEPlay("EvolutionSuccess")
  456. # gets info of the new species
  457. newspeciesname = PBSpecies.getName(@newspecies)
  458. oldspeciesname = PBSpecies.getName(@pokemon.species)
  459. @sprites["msgwindow"].visible = true
  460. Kernel.pbMessageDisplay(@sprites["msgwindow"],_INTL("\\se[]Congratulations! Your {1} evolved into {2}!\\wt[80]",@pokemon.name,newspeciesname)) { self.update }
  461. @sprites["msgwindow"].text = ""
  462. removeItem = false
  463. createSpecies = pbCheckEvolutionEx(@pokemon){|pokemon,evonib,level,poke|
  464. if evonib == PBEvolution::Shedinja
  465. # checks if a Pokeball is available for Shedinja
  466. next poke if $PokemonBag.pbQuantity(getConst(PBItems,:POKEBALL))>0
  467. elsif evonib == PBEvolution::TradeItem || evonib == PBEvolution::DayHoldItem || evonib == PBEvolution::NightHoldItem
  468. # consumes evolutionary item
  469. removeItem = true if poke == @newspecies
  470. end
  471. next -1
  472. }
  473. @pokemon.setItem(0) if removeItem
  474. @pokemon.species = @newspecies
  475. $Trainer.seen[@newspecies] = true
  476. $Trainer.owned[@newspecies] = true
  477. pbSeenForm(@pokemon)
  478. @pokemon.name = newspeciesname if @pokemon.name == oldspeciesname
  479. @pokemon.calcStats
  480. # checking moves for new species
  481. movelist = @pokemon.getMoveList
  482. for i in movelist
  483. if i[0] == @pokemon.level
  484. # learning new moves
  485. pbLearnMove(@pokemon,i[1],true) { self.update }
  486. end
  487. end
  488. # adding new species of pokemon to the party
  489. if createSpecies>0 && $Trainer.party.length<6
  490. newpokemon = @pokemon.clone
  491. newpokemon.iv = @pokemon.iv.clone
  492. newpokemon.ev = @pokemon.ev.clone
  493. newpokemon.species = createSpecies
  494. newpokemon.name = PBSpecies.getName(createSpecies)
  495. newpokemon.setItem(0)
  496. newpokemon.clearAllRibbons
  497. newpokemon.markings = 0
  498. newpokemon.ballused = 0
  499. newpokemon.calcStats
  500. newpokemon.heal
  501. $Trainer.party.push(newpokemon)
  502. $Trainer.seen[createSpecies] = true
  503. $Trainer.owned[createSpecies] = true
  504. pbSeenForm(newpokemon)
  505. $PokemonBag.pbDeleteItem(getConst(PBItems,:POKEBALL))
  506. end
  507. end
  508. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement