Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.39 KB | None | 0 0
  1. #===============================================================================
  2. # Neo PauseMenu (for v17.x)
  3. # by Luka S.J. edited by #Not Important to support derFishae's quest thingy
  4. # ----------------
  5. # Provides only features present in the default version of the Pokedex in
  6. # Essentials. Mean as a new cosmetic overhaul, adhering to the UI design
  7. # language of the Elite Battle System: The Next Generation
  8. #
  9. # Enjoy the script, and make sure to give credit!
  10. # (DO NOT ALTER THE NAMES OF THE INDIVIDUAL SCRIPT SECTIONS OR YOU WILL BREAK
  11. # YOUR SYSTEM!)
  12. #-------------------------------------------------------------------------------
  13. # Main module for handling each menu item/entry
  14. #===============================================================================
  15. class PokemonPauseMenu
  16. def initialize(scene)
  17. @scene = scene
  18. end
  19.  
  20. def pbShowMenu
  21. @scene.pbRefresh
  22. @scene.pbShowMenu
  23. end
  24.  
  25. def pbStartPokemonMenu
  26. pbSetViableDexes
  27. @scene.pbStartScene
  28. endscene = true
  29. commands = []
  30. cmdPokedex = -1
  31. cmdPokemon = -1
  32. cmdBag = -1
  33. cmdTrainer = -1
  34. cmdSave = -1
  35. cmdOption = -1
  36. cmdPokegear = -1
  37. cmdDebug = -1
  38. cmdQuit = -1
  39. cmdEndGame = -1
  40. if !$Trainer
  41. if $DEBUG
  42. Kernel.pbMessage(_INTL("The player trainer was not defined, so the menu can't be displayed."))
  43. Kernel.pbMessage(_INTL("Please see the documentation to learn how to set up the trainer player."))
  44. end
  45. return
  46. end
  47. commands[cmdPokedex = commands.length] = _INTL("Pokédex") if $Trainer.pokedex && $PokemonGlobal.pokedexViable.length>0
  48. commands[cmdPokemon = commands.length] = _INTL("Pokémon") if $Trainer.party.length>0
  49. commands[cmdQuests = commands.length] = _INTL("Quests")
  50. commands[cmdBag = commands.length] = _INTL("Bag") if !pbInBugContest?
  51. commands[cmdPokegear = commands.length] = _INTL("Pokégear") if $Trainer.pokegear
  52. commands[cmdTrainer = commands.length] = $Trainer.name
  53. if pbInSafari?
  54. if SAFARISTEPS<=0
  55. @scene.pbShowInfo(_INTL("Balls: {1}",pbSafariState.ballcount))
  56. else
  57. @scene.pbShowInfo(_INTL("Steps: {1}/{2}\nBalls: {3}",
  58. pbSafariState.steps,SAFARISTEPS,pbSafariState.ballcount))
  59. end
  60. commands[cmdQuit = commands.length] = _INTL("Quit")
  61. elsif pbInBugContest?
  62. if pbBugContestState.lastPokemon
  63. @scene.pbShowInfo(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}",
  64. PBSpecies.getName(pbBugContestState.lastPokemon.species),
  65. pbBugContestState.lastPokemon.level,
  66. pbBugContestState.ballcount))
  67. else
  68. @scene.pbShowInfo(_INTL("Caught: None\nBalls: {1}",pbBugContestState.ballcount))
  69. end
  70. commands[cmdQuit = commands.length] = _INTL("Quit Contest")
  71. else
  72. commands[cmdSave = commands.length] = _INTL("Save") if $game_system && !$game_system.save_disabled
  73. end
  74. commands[cmdOption = commands.length] = _INTL("Options")
  75. commands[cmdDebug = commands.length] = _INTL("Debug") if $DEBUG
  76. commands[cmdEndGame = commands.length] = _INTL("Quit Game")
  77. loop do
  78. command = @scene.pbShowCommands(commands)
  79. if cmdPokedex>=0 && command==cmdPokedex
  80. if DEXDEPENDSONLOCATION
  81. pbFadeOutIn(99999){
  82. scene = PokemonPokedex_Scene.new
  83. screen = PokemonPokedexScreen.new(scene)
  84. screen.pbStartScreen
  85. @scene.pbRefresh
  86. }
  87. else
  88. if $PokemonGlobal.pokedexViable.length==1
  89. $PokemonGlobal.pokedexDex = $PokemonGlobal.pokedexViable[0]
  90. $PokemonGlobal.pokedexDex = -1 if $PokemonGlobal.pokedexDex==$PokemonGlobal.pokedexUnlocked.length-1
  91. pbFadeOutIn(99999){
  92. scene = PokemonPokedex_Scene.new
  93. screen = PokemonPokedexScreen.new(scene)
  94. screen.pbStartScreen
  95. @scene.pbRefresh
  96. }
  97. else
  98. pbFadeOutIn(99999){
  99. scene = PokemonPokedexMenu_Scene.new
  100. screen = PokemonPokedexMenuScreen.new(scene)
  101. screen.pbStartScreen
  102. @scene.pbRefresh
  103. }
  104. end
  105. end
  106. elsif cmdPokemon>=0 && command==cmdPokemon
  107. hiddenmove = nil
  108. pbFadeOutIn(99999){
  109. sscene = PokemonParty_Scene.new
  110. sscreen = PokemonPartyScreen.new(sscene,$Trainer.party)
  111. hiddenmove = sscreen.pbPokemonScreen
  112. (hiddenmove) ? @scene.pbEndScene : @scene.pbRefresh
  113. }
  114. if hiddenmove
  115. $game_temp.in_menu = false
  116. Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
  117. return
  118. end
  119. elsif cmdBag>=0 && command==cmdBag
  120. item = 0
  121. pbFadeOutIn(99999){
  122. scene = PokemonBag_Scene.new
  123. screen = PokemonBagScreen.new(scene,$PokemonBag)
  124. item = screen.pbStartScreen
  125. (item>0) ? @scene.pbEndScene : @scene.pbRefresh
  126. }
  127. if item>0
  128. Kernel.pbUseKeyItemInField(item)
  129. return
  130. end
  131. elsif cmdPokegear>=0 && command==cmdPokegear
  132. pbFadeOutIn(99999){
  133. scene = PokemonPokegear_Scene.new
  134. screen = PokemonPokegearScreen.new(scene)
  135. screen.pbStartScreen
  136. @scene.pbRefresh
  137. }
  138. elsif cmdTrainer>=0 && command==cmdTrainer
  139. pbFadeOutIn(99999){
  140. scene = PokemonTrainerCard_Scene.new
  141. screen = PokemonTrainerCardScreen.new(scene)
  142. screen.pbStartScreen
  143. @scene.pbRefresh
  144. }
  145. elsif cmdQuit>=0 && command==cmdQuit
  146. @scene.pbHideMenu
  147. if pbInSafari?
  148. if Kernel.pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?"))
  149. @scene.pbEndScene
  150. pbSafariState.decision = 1
  151. pbSafariState.pbGoToStart
  152. return
  153. else
  154. pbShowMenu
  155. end
  156. else
  157. if Kernel.pbConfirmMessage(_INTL("Would you like to end the Contest now?"))
  158. @scene.pbEndScene
  159. pbBugContestState.pbStartJudging
  160. return
  161. else
  162. pbShowMenu
  163. end
  164. end
  165. elsif cmdSave>=0 && command==cmdSave
  166. @scene.pbHideMenu
  167. scene = PokemonSave_Scene.new
  168. screen = PokemonSaveScreen.new(scene)
  169. if screen.pbSaveScreen
  170. @scene.pbEndScene
  171. endscene = false
  172. break
  173. else
  174. pbShowMenu
  175. end
  176. elsif cmdOption>=0 && command==cmdOption
  177. pbFadeOutIn(99999){
  178. scene = PokemonOption_Scene.new
  179. screen = PokemonOptionScreen.new(scene)
  180. screen.pbStartScreen
  181. pbUpdateSceneMap
  182. @scene.pbRefresh
  183. }
  184. elsif cmdDebug>=0 && command==cmdDebug
  185. pbFadeOutIn(99999){
  186. pbDebugMenu
  187. @scene.pbRefresh
  188. }
  189. elsif cmdEndGame>=0 && command==cmdEndGame
  190. @scene.pbHideMenu
  191. if Kernel.pbConfirmMessage(_INTL("Are you sure you want to quit the game?"))
  192. scene = PokemonSave_Scene.new
  193. screen = PokemonSaveScreen.new(scene)
  194. if screen.pbSaveScreen
  195. @scene.pbEndScene
  196. end
  197. @scene.pbEndScene
  198. $scene = nil
  199. return
  200. else
  201. pbShowMenu
  202. end
  203. else
  204. break
  205. end
  206. end
  207. @scene.pbEndScene if endscene
  208. end
  209. end
  210. #here be neo
  211. module MenuHandlers
  212. # hash used to store the elements inside of the menu
  213. @@menuEntry = {}
  214. # hash used to store whether or not an element is unlocked
  215. @@available = {}
  216. # hash used to store the index of each element; for sorting
  217. @@indexes = {}
  218. @@index = 0
  219. # function to add a new element/entry to the menu.
  220. def self.addEntry(ref,name,icon,proc,conditional)
  221. @@menuEntry[ref] = [name,icon,proc]
  222. @@available[ref] = conditional
  223. @@indexes[ref] = @@index
  224. @@index += 1
  225. end
  226. # function to get the name of an element/entry
  227. def self.getName(ref)
  228. return @@menuEntry[ref][0]
  229. end
  230. # function to get the icon of an element/entry
  231. def self.getIcon(ref)
  232. return "Graphics/Icons/#{@@menuEntry[ref][1]}"
  233. end
  234. # function to get all the possible keys from the main hash
  235. def self.getKeys
  236. entries = Array.new(@@menuEntry.keys.length)
  237. for key in @@menuEntry.keys
  238. entries[@@indexes[key]] = key
  239. end
  240. return entries
  241. end
  242. # function used to invoke the stored code for each element/entry
  243. def self.runAction(ref,scene)
  244. @@menuEntry[ref][2].call(scene)
  245. end
  246. # function to check if the player has access to an element/entry
  247. def self.available?(ref)
  248. return @@available[ref].call
  249. end
  250. # function that lists all accessible menu elements/entries
  251. def self.elements?
  252. ent = self.getKeys
  253. items = 0
  254. for val in ent
  255. items += 1 if self.available?(val)
  256. end
  257. return items
  258. end
  259. end
  260. #-------------------------------------------------------------------------------
  261. # Main class used to handle the visuals
  262. #-------------------------------------------------------------------------------
  263. class PokemonPauseMenu_Scene
  264. attr_accessor :index
  265. attr_accessor :entries
  266. attr_accessor :endscene
  267. attr_accessor :close
  268. attr_accessor :hidden
  269.  
  270. # retained for compatibility
  271. def pbShowInfo(text)
  272. @sprites["helpwindow"].resizeToFit(text,Graphics.height)
  273. @sprites["helpwindow"].text = text
  274. @sprites["helpwindow"].visible = true
  275. @helpstate = true
  276. pbBottomLeft(@sprites["helpwindow"])
  277. end
  278. # retained for compatibility
  279. def pbShowHelp(text)
  280. @sprites["helpwindow"].resizeToFit(text,Graphics.height)
  281. @sprites["helpwindow"].text = text
  282. @sprites["helpwindow"].visible = true
  283. @helpstate = true
  284. pbBottomLeft(@sprites["helpwindow"])
  285. end
  286. # main scene generation
  287. def pbStartScene
  288. pbSetViableDexes
  289. # sets the default index
  290. @index = $PokemonTemp.menuLastChoice.nil? ? 0 : $PokemonTemp.menuLastChoice
  291. @index = 0 if @index >= MenuHandlers.elements?
  292. @oldindex = 0
  293. @endscene = true
  294. @close = false
  295. @hidden = false
  296. # loads the visual parts of the
  297. @viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
  298. @viewport.z = 99999
  299. @sprites = {}
  300. # initializes the background graphic
  301. @bitmap = Graphics.snap_to_bitmap if !@bitmap
  302. @sprites["background"] = Sprite.new(@viewport)
  303. @sprites["background"].bitmap = @bitmap
  304. @sprites["background"].blur_sprite(3)
  305. @sprites["background"].bitmap.blt(0,0,pbBitmap("Graphics/Pictures/PauseMenu/bg"),Rect.new(0,0,Graphics.width,Graphics.height))
  306. bmp = pbBitmap("Graphics/Pictures/Common/scrollbar_bg")
  307. @sprites["background"].bitmap.blt(Graphics.width - 28,(Graphics.height - bmp.height)/2,bmp,Rect.new(0,0,bmp.width,bmp.height))
  308. # initializes the scrolling panorama
  309. @sprites["panorama"] = ScrollingSprite.new(@viewport)
  310. @sprites["panorama"].setBitmap("Graphics/Pictures/Common/panorama")
  311. @sprites["panorama"].speed = 1
  312. # retained for compatibility
  313. @sprites["infowindow"] = Window_UnformattedTextPokemon.newWithSize("",0,0,32,32,@viewport)
  314. @sprites["infowindow"].visible = false
  315. @sprites["helpwindow"] = Window_UnformattedTextPokemon.newWithSize("",0,0,32,32,@viewport)
  316. @sprites["helpwindow"].visible = false
  317. # draw the contest crap
  318. @sprites["textOverlay"] = Sprite.new(@viewport)
  319. @sprites["textOverlay"].bitmap = Bitmap.new(@viewport.rect.width,@viewport.rect.height)
  320. @sprites["textOverlay"].end_x = 0
  321. @sprites["textOverlay"].x = -@viewport.rect.width
  322. pbSetSystemFont(@sprites["textOverlay"].bitmap)
  323. bmp = pbBitmap("Graphics/Pictures/Common/partyBar")
  324. content = []
  325. text = []
  326. if pbInSafari?
  327. content.push(_INTL("Steps: {1}/{2}",pbSafariState.steps,SAFARISTEPS)) if SAFARISTEPS > 0
  328. content.push(_INTL("Balls: {1}",pbSafariState.ballcount))
  329. elsif pbInBugContest?
  330. if pbBugContestState.lastPokemon
  331. content.push(_INTL("Caught: {1}",PBSpecies.getName(pbBugContestState.lastPokemon.species)))
  332. content.push(_INTL("Level: {1}",pbBugContestState.lastPokemon.level))
  333. content.push(_INTL("Balls: {1}",pbBugContestState.ballcount))
  334. else
  335. content.push("Caught: none")
  336. end
  337. content.push(_INTL("Balls: {1}",pbBugContestState.ballcount))
  338. end
  339. for i in 0...content.length
  340. text.push([content[i],16, 60 + i*50, 0, Color.new(255,255,255),Color.new(0,0,0,65)])
  341. @sprites["textOverlay"].bitmap.blt(-2,92 + i*50,bmp,Rect.new(0,0,bmp.width,bmp.height))
  342. end
  343. pbDrawTextPositions(@sprites["textOverlay"].bitmap,text)
  344. # initializes the scroll bar
  345. @sprites["scroll"] = Sprite.new(@viewport)
  346. # rendering elements on screen
  347. self.refresh
  348. self.update
  349. # memorizes the target opacities and sets them to 0
  350. @opacities = {}
  351. for key in @sprites.keys
  352. @opacities[key] = @sprites[key].opacity
  353. @sprites[key].opacity = 0
  354. end
  355. end
  356.  
  357. def pbHideMenu
  358. # animations for closing the menu
  359. @sprites["textOverlay"].end_x = -@viewport.rect.width
  360. 8.times do
  361. for key in @sprites.keys
  362. next if !@sprites[key] || @sprites[key].disposed?
  363. @sprites[key].opacity -= 32
  364. end
  365. @sprites["textOverlay"].x += (@sprites["textOverlay"].end_x - @sprites["textOverlay"].x)*0.2
  366. Graphics.update
  367. end
  368. end
  369.  
  370. def pbShowMenu
  371. # animations for opening the menu
  372. @sprites["textOverlay"].end_x = 0
  373. 8.times do
  374. for key in @sprites.keys
  375. next if !@sprites[key] || @sprites[key].disposed?
  376. @sprites[key].opacity += 32 if @sprites[key].opacity < @opacities[key]
  377. end
  378. @sprites["textOverlay"].x += (@sprites["textOverlay"].end_x - @sprites["textOverlay"].x)*0.4
  379. Graphics.update
  380. end
  381. end
  382.  
  383. def refresh
  384. # index safety
  385. @index = MenuHandlers.elements? - 1 if @index >= MenuHandlers.elements?
  386. @oldindex = @index
  387. # disposes old items in the menu
  388. if @entries
  389. for i in 0...@entries.length
  390. @sprites["#{i}"].dispose if @sprites["#{i}"]
  391. end
  392. end
  393. # creates a new list of available items
  394. ent = MenuHandlers.getKeys
  395. @entries = []
  396. for val in ent
  397. @entries.push(val) if MenuHandlers.available?(val)
  398. end
  399. # draws individual item entries
  400. bmp = pbBitmap("Graphics/Pictures/PauseMenu/sel")
  401. for i in 0...@entries.length
  402. key = @entries[i]
  403. @sprites["#{i}"] = Sprite.new(@viewport)
  404. @sprites["#{i}"].bitmap = Bitmap.new(bmp.width,bmp.height)
  405. pbSetSystemFont(@sprites["#{i}"].bitmap)
  406. @sprites["#{i}"].src_rect.set(0,0,bmp.width/2,bmp.height)
  407. @sprites["#{i}"].bitmap.blt(0,0,bmp,Rect.new(0,0,bmp.width,bmp.height))
  408. for j in 0...2
  409. opac = j == 0 ? 155 : 255
  410. icon = pbBitmap(MenuHandlers.getIcon(key))
  411. text = MenuHandlers.getName(key)
  412. text.gsub!("\\pn"){"#{$Trainer.name}"}
  413. text.gsub!("\\contest"){pbInSafari? ? "Quit" : "Quit Contest"}
  414. @sprites["#{i}"].bitmap.blt(18 + j*bmp.width/2,6,icon,Rect.new(0,0,48,48),opac)
  415. pbDrawOutlineText(@sprites["#{i}"].bitmap,66 + j*bmp.width/2,6,136,48,text,Color.new(255,255,255),Color.new(64,64,64),1)
  416. end
  417. @sprites["#{i}"].x = Graphics.width - bmp.width/2 - 52
  418. @sprites["#{i}"].y = 49 + (bmp.height + 12)*i
  419. @sprites["#{i}"].opacity = 128
  420. end
  421. # configures the scroll bar
  422. n = (@entries.length < 4 ? 1 : @entries.length - 3)
  423. height = 204/n
  424. height += 204 - (height*n)
  425. height += 16
  426. @sprites["scroll"].bitmap = Bitmap.new(16,height)
  427. bmp = pbBitmap("Graphics/Pictures/Common/scrollbar_kn")
  428. @sprites["scroll"].bitmap.blt(0,0,bmp,Rect.new(0,0,16,6))
  429. @sprites["scroll"].bitmap.stretch_blt(Rect.new(0,6,16,height-14),bmp,Rect.new(0,6,16,1))
  430. @sprites["scroll"].bitmap.blt(0,height-8,bmp,Rect.new(0,8,16,8))
  431. @sprites["scroll"].x = Graphics.width - 32
  432. @sprites["scroll"].y = (Graphics.height - 204)/2
  433. @sprites["scroll"].end_y = (Graphics.height - 204)/2
  434. end
  435.  
  436. def update
  437. # scrolling background image
  438. @sprites["panorama"].update
  439. # calculations for updating the scrollbar position
  440. k = (@entries.length < 4 ? 0 : @index - 3)
  441. k = 0 if k < 0
  442. n = (@entries.length < 4 ? 1 : @entries.length - 3)
  443. height = 204/n
  444. @sprites["scroll"].end_y = (Graphics.height-204)/2 + height*k
  445. @sprites["scroll"].y += (@sprites["scroll"].end_y - @sprites["scroll"].y)*0.2
  446. # updates for each element/entry in the menu
  447. for i in 0...@entries.length
  448. j = @entries.length < 4 ? 0 : (@index - 3)
  449. j = 0 if j < 0
  450. y = (-j)*(@sprites["#{i}"].src_rect.height + 12) + 49 + i*(@sprites["#{i}"].src_rect.height + 12)
  451. @sprites["#{i}"].y -= (@sprites["#{i}"].y - y)*0.1
  452. @sprites["#{i}"].src_rect.x = @sprites["#{i}"].src_rect.width*(@index == i ? 1 : 0)
  453. @sprites["#{i}"].x += 2 if @sprites["#{i}"].x < Graphics.width - @sprites["#{i}"].src_rect.width - 52
  454. if i.between?(j,j+3)
  455. @sprites["#{i}"].opacity += 15 if @sprites["#{i}"].opacity < 255
  456. else
  457. @sprites["#{i}"].opacity -= 15 if @sprites["#{i}"].opacity > 128
  458. end
  459. if @index == i
  460. @sprites["#{i}"].tone.gray -= 51 if @sprites["#{i}"].tone.gray > 0
  461. else
  462. @sprites["#{i}"].tone.gray += 51 if @sprites["#{i}"].tone.gray < 255
  463. end
  464. end
  465. # sets the index
  466. if @oldindex != @index
  467. @sprites["#{@index}"].x -= 6
  468. @oldindex = @index
  469. end
  470. end
  471.  
  472. def pbEndScene
  473. # disposes the sprite hash
  474. pbHideMenu
  475. pbDisposeSpriteHash(@sprites)
  476. @viewport.dispose
  477. end
  478.  
  479. def pbRefresh
  480. end
  481. end
  482. #-------------------------------------------------------------------------------
  483. # Main class used to handle the logic of the pause menu
  484. #-------------------------------------------------------------------------------
  485. class PokemonPauseMenu
  486. def initialize(scene)
  487. @scene = scene
  488. end
  489.  
  490. def pbShowMenu
  491. #@scene.pbRefresh
  492. @scene.pbShowMenu
  493. end
  494.  
  495. def pbStartPokemonMenu
  496. # loads up the scene
  497. @scene.pbStartScene
  498. @scene.pbShowMenu
  499. loop do
  500. # main loop
  501. Graphics.update
  502. Input.update
  503. @scene.update
  504. if Input.repeat?(Input::DOWN)
  505. @scene.index += 1
  506. @scene.index = 0 if @scene.index > @scene.entries.length - 1
  507. $PokemonTemp.menuLastChoice = @scene.index
  508. pbSEPlay("SE_Select1")
  509. elsif Input.repeat?(Input::UP)
  510. @scene.index -= 1
  511. @scene.index = @scene.entries.length - 1 if @scene.index < 0
  512. $PokemonTemp.menuLastChoice = @scene.index
  513. pbSEPlay("SE_Select1")
  514. elsif Input.trigger?(Input::C)
  515. MenuHandlers.runAction(@scene.entries[@scene.index],@scene)
  516. end
  517. break if @scene.close || Input.trigger?(Input::B)
  518. end
  519. # used to dispose of the scene
  520. @scene.pbEndScene if @scene.endscene
  521. end
  522. end
  523. #-------------------------------------------------------------------------------
  524. # Your own entries for the pause menu
  525. #
  526. # How to use
  527. #
  528. # MenuHandlers.addEntry(:name,"button text","icon name",proc{|menu|
  529. # # code you want to run
  530. # # when the entry in the menu is selected
  531. # },proc{ # code to check if menu entry is available })
  532. #-------------------------------------------------------------------------------
  533. # PokeDex
  534. MenuHandlers.addEntry(:POKEDEX,_INTL("Pokédex"),"menuPokedex",proc{|menu|
  535. if DEXDEPENDSONLOCATION
  536. pbFadeOutIn(99999){
  537. scene = PokemonPokedex_Scene.new
  538. screen = PokemonPokedexScreen.new(scene)
  539. screen.pbStartScreen
  540. menu.refresh
  541. }
  542. else
  543. if $PokemonGlobal.pokedexViable.length==1
  544. $PokemonGlobal.pokedexDex = $PokemonGlobal.pokedexViable[0]
  545. $PokemonGlobal.pokedexDex = -1 if $PokemonGlobal.pokedexDex==$PokemonGlobal.pokedexUnlocked.length-1
  546. pbFadeOutIn(99999){
  547. scene = PokemonPokedex_Scene.new
  548. screen = PokemonPokedexScreen.new(scene)
  549. screen.pbStartScreen
  550. menu.refresh
  551. }
  552. else
  553. pbFadeOutIn(99999){
  554. scene = PokemonPokedexMenu_Scene.new
  555. screen = PokemonPokedexMenuScreen.new(scene)
  556. screen.pbStartScreen
  557. menu.refresh
  558. }
  559. end
  560. end
  561. },proc{ return $Trainer.pokedex && $PokemonGlobal.pokedexViable.length > 0 })
  562. # Party Screen
  563. MenuHandlers.addEntry(:POKEMON,_INTL("Pokémon"),"menuPokemon",proc{|menu|
  564. sscene = PokemonParty_Scene.new
  565. sscreen = PokemonPartyScreen.new(sscene,$Trainer.party)
  566. hiddenmove = nil
  567. pbFadeOutIn(99999) {
  568. hiddenmove = sscreen.pbPokemonScreen
  569. if hiddenmove
  570. menu.pbEndScene
  571. menu.endscene = false
  572. end
  573. }
  574. if hiddenmove
  575. Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
  576. menu.close = true
  577. end
  578. },proc{ return $Trainer.party.length > 0 })
  579. # Bag Screen
  580. MenuHandlers.addEntry(:BAG,_INTL("Bag"),"menuBag",proc{|menu|
  581. item = 0
  582. scene = PokemonBag_Scene.new
  583. screen = PokemonBagScreen.new(scene,$PokemonBag)
  584. pbFadeOutIn(99999) {
  585. item = screen.pbStartScreen
  586. if item > 0
  587. menu.pbEndScene
  588. menu.endscene = false
  589. end
  590. }
  591. if item > 0
  592. Kernel.pbUseKeyItemInField(item)
  593. menu.close = true
  594. end
  595. },proc{ return true })
  596. # Quest Menü
  597. MenuHandlers.addEntry(:QUESTS,_INTL("Quests"),"menuQuests",proc{|menu|
  598. scene = QuestScene.new
  599. screen = QuestScreen.new(scene)
  600. pbFadeOutIn(99999) {
  601. screen.pbStartScreen
  602. }
  603. },proc{ return true })
  604. # PokeGear
  605. MenuHandlers.addEntry(:POKEGEAR,_INTL("Pokégear"),"menuPokegear",proc{|menu|
  606. scene = PokemonPokegear_Scene.new
  607. screen = PokemonPokegearScreen.new(scene)
  608. pbFadeOutIn(99999) {
  609. screen.pbStartScreen
  610. }
  611. },proc{ return $Trainer.pokegear })
  612. # Trainer Card
  613. MenuHandlers.addEntry(:TRAINER,_INTL("\\pn"),"menuTrainer",proc{|menu|
  614. scene = PokemonTrainerCard_Scene.new
  615. screen = PokemonTrainerCardScreen.new(scene)
  616. pbFadeOutIn(99999) {
  617. screen.pbStartScreen
  618. }
  619. },proc{ return true })
  620. # Save Screen
  621. MenuHandlers.addEntry(:SAVE,_INTL("Save"),"menuSave",proc{|menu|
  622. scene = PokemonSave_Scene.new
  623. screen = PokemonSaveScreen.new(scene)
  624. menu.pbEndScene
  625. menu.endscene = false
  626. if screen.pbSaveScreen
  627. menu.close = true
  628. else
  629. menu.pbStartScene
  630. menu.pbShowMenu
  631. menu.close = false
  632. end
  633. },proc{ return !$game_system || !$game_system.save_disabled && !(pbInSafari? || pbInBugContest?)})
  634. # Quit Safari-Zone
  635. MenuHandlers.addEntry(:QUIT,_INTL("\\contest"),"menuQuit",proc{|menu|
  636. if pbInSafari?
  637. if Kernel.pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?"))
  638. menu.pbEndScene
  639. menu.endscene = false
  640. menu.close = true
  641. pbSafariState.decision=1
  642. pbSafariState.pbGoToStart
  643. end
  644. else
  645. if Kernel.pbConfirmMessage(_INTL("Would you like to end the Contest now?"))
  646. menu.pbEndScene
  647. menu.endscene = false
  648. menu.close = true
  649. pbBugContestState.pbStartJudging
  650. return
  651. end
  652. end
  653. },proc{ return pbInSafari? || pbInBugContest? })
  654. # Options Screen
  655. MenuHandlers.addEntry(:OPTIONS,_INTL("Options"),"menuOptions",proc{|menu|
  656. scene = PokemonOption_Scene.new
  657. screen = PokemonOptionScreen.new(scene)
  658. pbFadeOutIn(99999) {
  659. screen.pbStartScreen
  660. pbUpdateSceneMap
  661. }
  662. },proc{ return true })
  663. # Debug Menu
  664. MenuHandlers.addEntry(:DEBUG,_INTL("Debug"),"menuDebug",proc{|menu|
  665. pbFadeOutIn(99999) {
  666. pbDebugMenu
  667. menu.refresh
  668. }
  669. },proc{ return $DEBUG })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement