Advertisement
DarkSoul144

DSI Equip Upgrade System

May 28th, 2021
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.89 KB | None | 0 0
  1. #==============================================================================
  2. # > DSI Equip Upgrade System
  3. # Last Updated: 28/5/2021
  4. # Author: dsiver144
  5. # --------------------------------------------------------------------------
  6. # > Item / Weapon / Armor Notetags:
  7. # --------------------------------------------------------------------------
  8. # To make an item is a free uprade: <free upgrade>
  9. # - Setup upgradeable item/weapon/armor, use these notes:
  10. # For example.
  11. # <upgradeable>
  12. # target: w63
  13. # cost: 2000G, w1x1, a1x1, i18x1
  14. # chance: 60%
  15. # </upgradeable>
  16. # --------------------------------------------------------------------------
  17. # Script call: SceneManager.call(Scene_UpgradeOptions)
  18. # Use that to open upgrade scene.
  19. #==============================================================================
  20. module DSIVER144
  21. module EQUIP_UPGRADE
  22. GOLD_ITEM = 23 # An item for display currency in the requirement list.
  23. # Set below variable to a picture filename if you want to have a background
  24. OPTION_SCENE_BG = nil # Ex: OPTION_SCENE_BG = "Background"
  25.  
  26. SUCCESS_ME = RPG::ME.new("Item", 70, 100)
  27. FAIL_ME = RPG::ME.new("Gag", 70, 100)
  28. end
  29. end
  30.  
  31. #==============================================================================
  32. # ■ DataManager
  33. #==============================================================================
  34.  
  35. module DataManager
  36. #--------------------------------------------------------------------------
  37. # alias method: load_database
  38. #--------------------------------------------------------------------------
  39. class <<self;
  40. alias_method(:dsi_load_database_eus, :load_database)
  41. end
  42. def self.load_database
  43. dsi_load_database_eus
  44. load_weapon_notetags_eus
  45. end
  46. #--------------------------------------------------------------------------
  47. # new method: load_weapon_notetags_eus
  48. #--------------------------------------------------------------------------
  49. def self.load_weapon_notetags_eus
  50. groups = [$data_weapons, $data_armors, $data_items]
  51. groups.each do |data|
  52. data.each do |item|
  53. next unless item
  54. item.load_custom_notetag
  55. end
  56. end
  57. end
  58.  
  59. end # DataManager
  60.  
  61. class RPG::BaseItem
  62. attr_accessor :upgrade_info
  63. attr_accessor :free_upgrade
  64. #--------------------------------------------------------------------------
  65. # new method: load_custom_notetag
  66. #--------------------------------------------------------------------------
  67. def load_custom_notetag
  68. read_note = false
  69. self.note.split(/[\r\n]+/).each do |line|
  70. if line =~ /<free upgrade>/i
  71. @free_upgrade = true
  72. end
  73. if line =~ /<upgradeable>/i
  74. @upgrade_info = {}
  75. read_note = true
  76. next
  77. end
  78. if line =~ /<\/upgradeable>/i
  79. read_note = false
  80. next
  81. end
  82. if read_note
  83. if line =~ /target:\s*(\w)(\d+)/i
  84. @upgrade_info[:target] = {}
  85. @upgrade_info[:target][:etype] = $1
  86. @upgrade_info[:target][:id] = $2.to_i
  87. end
  88. if line =~ /cost:\s*(.+)/i
  89. result = []
  90. items = $1.split(",")
  91. items.each do |str|
  92. if str =~ /(\d+)G/i
  93. data = []
  94. data << "$data_items[#{DSIVER144::EQUIP_UPGRADE::GOLD_ITEM}]"#DSIVER144::EQUIP_UPGRADE::GOLD_ICON
  95. data << true
  96. data << $1.to_i
  97. result << data
  98. end
  99. if str =~ /(w|i|a)(\d+)x(\d+)/i
  100. case $1
  101. when "w"
  102. data = []
  103. data << "$data_weapons[#{$2.to_i}]"
  104. data << nil
  105. data << $3.to_i
  106. result << data
  107. when "a"
  108. data = []
  109. data << "$data_armors[#{$2.to_i}]"
  110. data << nil
  111. data << $3.to_i
  112. result << data
  113. when "i"
  114. data = []
  115. data << "$data_items[#{$2.to_i}]"
  116. data << nil
  117. data << $3.to_i
  118. result << data
  119. end
  120. end
  121. end
  122. @upgrade_info[:cost] = result
  123. end
  124. if line =~ /chance:\s*(\d+)%?/i
  125. @upgrade_info[:chance] = $1.to_i
  126. end
  127. end
  128. end
  129. end
  130. end
  131.  
  132. class Scene_UpgradeOptions < Scene_MenuBase
  133. #--------------------------------------------------------------------------
  134. # new method: start
  135. #--------------------------------------------------------------------------
  136. def start
  137. super
  138. @upgrade_type = :normal
  139. @sprite_bg = Sprite.new
  140. if DSIVER144::EQUIP_UPGRADE::OPTION_SCENE_BG
  141. @sprite_bg.bitmap = Cache.picture(DSIVER144::EQUIP_UPGRADE::OPTION_SCENE_BG)
  142. end
  143. @option_window = Window_UpgradeOptions.new(0, 0)
  144. @option_window.x = (Graphics.width - @option_window.width) / 2
  145. @option_window.y = (Graphics.height - @option_window.height) / 2
  146. @option_window.set_handler(:upgrade, method(:on_normal_upgrade))
  147. @option_window.set_handler(:free_upgrade, method(:on_free_upgrade))
  148. @option_window.set_handler(:cancel, method(:return_scene))
  149.  
  150. @title_window = Window_Base.new(0, 0, @option_window.width + 80, @option_window.fitting_height(1))
  151. @title_window.x = (Graphics.width - @title_window.width) / 2
  152. @title_window.y = 12
  153. @title_window.draw_text(0, 0, @title_window.contents_width, @title_window.line_height, "UPGRADE SYSTEM", 1)
  154.  
  155. @list_window_width = Graphics.width - 24
  156.  
  157. @item_list = Window_UpgradeableItemList.new(0, 0, @list_window_width, @title_window.fitting_height(9))
  158. @item_list.category = :weapon
  159.  
  160. @item_category = Window_UpgradeableItemCategory.new
  161. @item_category.width = @item_list.width
  162. @item_category.create_contents
  163. @item_category.refresh
  164.  
  165. @item_category.x = (Graphics.width - @item_category.width) / 2
  166. @item_category.y = @title_window.y + @title_window.height + 12
  167.  
  168. @item_list.x = (Graphics.width - @item_list.width) / 2
  169. @item_list.y = @item_category.y + @item_category.height + 12
  170.  
  171. @item_category.item_window = @item_list
  172. @item_category.set_handler(:ok, method(:on_category_ok))
  173. @item_category.set_handler(:cancel, method(:on_category_cancel))
  174.  
  175. @item_list.set_handler(:ok, method(:on_list_ok))
  176. @item_list.set_handler(:cancel, method(:on_list_cancel))
  177.  
  178. @item_category.deactivate
  179. @item_category.close
  180. @item_category.openness = 0
  181. @item_list.close
  182. @item_list.openness = 0
  183.  
  184. @upgrade_item_list = Window_UpgradeInfoList.new(0, 0, @item_list.width, @item_list.fitting_height(1))
  185. @upgrade_item_list.x = @item_list.x
  186. @upgrade_item_list.y = @item_list.y
  187. @upgrade_item_list.deactivate
  188. @upgrade_item_list.hide
  189. @upgrade_item_list.opacity = 0
  190. @upgrade_item_list.back_opacity = 0
  191. @upgrade_item_list.set_handler(:ok, method(:on_upgrade_list_ok))
  192. @upgrade_item_list.set_handler(:cancel, method(:on_upgrade_list_cancel))
  193.  
  194. @help_window = Window_Help.new(2)
  195. @help_window.width = @upgrade_item_list.width
  196. @help_window.create_contents
  197.  
  198. @upgrade_item_list.help_window = @help_window
  199. @help_window.close
  200. @help_window.openness = 0
  201.  
  202. @upgrade_require_list = Window_UpgradeRequireItemList.new(0, 0, @item_list.width, @item_list.height - @upgrade_item_list.height)
  203. @upgrade_require_list.hide
  204. @upgrade_require_list.opacity = 0
  205. @upgrade_require_list.back_opacity = 0
  206.  
  207. @result_window = Window_UpgradeResult.new(0, 0, @upgrade_require_list.width - 30, @upgrade_require_list.fitting_height(2))
  208. @result_window.x = (Graphics.width - @result_window.width) / 2
  209. @result_window.y = (Graphics.height - @result_window.height) / 2
  210. @result_window.close
  211. @result_window.openness = 0
  212.  
  213. @free_upgrade_list = Window_FreeUpgradeItemList.new(0, 0, 300, @upgrade_require_list.fitting_height(6))
  214. @free_upgrade_list.x = (Graphics.width - @free_upgrade_list.width) / 2
  215. @free_upgrade_list.y = (Graphics.height - @free_upgrade_list.height) / 2 + 40
  216. @free_upgrade_list.close
  217. @free_upgrade_list.openness = 0
  218. @free_upgrade_list.set_handler(:ok, method(:on_select_free_upgrade_item))
  219. @free_upgrade_list.set_handler(:cancel, method(:select_free_upgrade_cancel))
  220.  
  221. @original_y = @item_list.y
  222.  
  223. end
  224. #--------------------------------------------------------------------------
  225. # new method: open_upgrade_windows
  226. #--------------------------------------------------------------------------
  227. def open_upgrade_windows(type = :normal)
  228. @last_category_index = nil
  229. @free_upgrade_item = nil
  230. @upgrade_type = type
  231. @option_window.close
  232. @item_category.open
  233. @item_list.unselect
  234. @item_list.open
  235. if type == :normal
  236. @item_category.activate
  237. else
  238. @item_category.unselect
  239. @free_upgrade_list.refresh
  240. @free_upgrade_list.open
  241. @free_upgrade_list.activate
  242. @free_upgrade_list.select(0)
  243. end
  244. end
  245. #--------------------------------------------------------------------------
  246. # new method: on_select_free_upgrade_item
  247. #--------------------------------------------------------------------------
  248. def on_select_free_upgrade_item
  249. @free_upgrade_item = @free_upgrade_list.item
  250. @free_upgrade_list.close
  251. @item_category.activate
  252. @item_category.select(@last_category_index ? @last_category_index : 0)
  253. end
  254. #--------------------------------------------------------------------------
  255. # new method: select_free_upgrade_cancel
  256. #--------------------------------------------------------------------------
  257. def select_free_upgrade_cancel
  258. @free_upgrade_list.close
  259. on_category_cancel
  260. end
  261. #--------------------------------------------------------------------------
  262. # new method: on_normal_upgrade
  263. #--------------------------------------------------------------------------
  264. def on_normal_upgrade
  265. open_upgrade_windows
  266. end
  267. #--------------------------------------------------------------------------
  268. # new method: on_free_upgrade
  269. #--------------------------------------------------------------------------
  270. def on_free_upgrade
  271. open_upgrade_windows(:free)
  272. end
  273. #--------------------------------------------------------------------------
  274. # new method: on_category_ok
  275. #--------------------------------------------------------------------------
  276. def on_category_ok
  277. @item_list.activate
  278. @item_list.select_last
  279. end
  280. #--------------------------------------------------------------------------
  281. # new method: on_category_cancel
  282. #--------------------------------------------------------------------------
  283. def on_category_cancel
  284. @item_category.close
  285. @item_list.close
  286. @option_window.refresh
  287. @option_window.open
  288. @option_window.activate
  289. end
  290. #--------------------------------------------------------------------------
  291. # new method: free_upgrade_item
  292. #--------------------------------------------------------------------------
  293. def free_upgrade_item
  294. return @free_upgrade_item
  295. end
  296. #--------------------------------------------------------------------------
  297. # new method: on_list_ok
  298. #--------------------------------------------------------------------------
  299. def on_list_ok
  300. upgrade_item = @item_list.item
  301. @item_category.close
  302. tween(@item_list, [[:y, @item_category.y]], 15) do
  303. @help_window.x = @item_list.x
  304. @help_window.y = @item_list.y + @item_list.height + 12
  305. @help_window.open
  306. @upgrade_item_list.activate
  307. end
  308. @last_select = @item_list.index
  309. @upgrade_item_list.set_item(upgrade_item)
  310. @upgrade_require_list.set_item(upgrade_item)
  311. @item_list.unselect
  312. @item_list.contents.clear
  313. @upgrade_item_list.show
  314. @upgrade_item_list.select(1)
  315. @upgrade_require_list.show
  316. @item_list.show_info(upgrade_item)
  317. end
  318. #--------------------------------------------------------------------------
  319. # new method: on_list_cancel
  320. #--------------------------------------------------------------------------
  321. def on_list_cancel
  322. @item_list.unselect
  323. @item_category.activate
  324. end
  325. #--------------------------------------------------------------------------
  326. # new method: on_upgrade_list_ok
  327. #--------------------------------------------------------------------------
  328. def on_upgrade_list_ok
  329. if @upgrade_require_list.can_be_upgraded?
  330. Sound.play_ok
  331. @result_window.open
  332. @result_window.set_item(*@upgrade_item_list.upgrade_item(@upgrade_type)) do
  333. if @upgrade_type == :free && $game_party.item_number(free_upgrade_item) == 0
  334. @last_category_index = @item_category.index
  335. if @option_window.has_free_upgrade?
  336. on_upgrade_list_cancel(false)
  337. @item_list.unselect
  338. @free_upgrade_list.refresh
  339. @free_upgrade_list.open
  340. @free_upgrade_list.activate
  341. else
  342. on_upgrade_list_cancel(false) do
  343. on_category_cancel
  344. end
  345. end
  346.  
  347. else
  348. on_upgrade_list_cancel
  349. end
  350. end
  351. else
  352. Sound.play_buzzer
  353. @upgrade_item_list.activate
  354. end
  355. end
  356. #--------------------------------------------------------------------------
  357. # new method: on_upgrade_list_cancel
  358. #--------------------------------------------------------------------------
  359. def on_upgrade_list_cancel(activate_item_list = true, &callback)
  360. @help_window.close
  361. tween(@item_list, [[:y, @original_y]], 15) do
  362. @item_category.open
  363. @item_list.activate if activate_item_list
  364. callback.call if callback
  365. end
  366. @upgrade_require_list.hide
  367. @upgrade_item_list.hide
  368. @item_list.refresh
  369. @item_list.select(@last_select)
  370. end
  371. #--------------------------------------------------------------------------
  372. # new method: update
  373. #--------------------------------------------------------------------------
  374. def update
  375. super
  376. @upgrade_item_list.x = @item_list.x
  377. @upgrade_item_list.y = @item_list.y
  378. @upgrade_require_list.x = @item_list.x
  379. @upgrade_require_list.y = @item_list.y + @item_list.height - @upgrade_require_list.height
  380. end
  381. #--------------------------------------------------------------------------
  382. # new method: terminate
  383. #--------------------------------------------------------------------------
  384. def terminate
  385. super
  386. @sprite_bg.dispose
  387. end
  388.  
  389. end
  390.  
  391. class Window_UpgradeOptions < Window_Command
  392. #--------------------------------------------------------------------------
  393. # * Has Free Upgrade?
  394. #--------------------------------------------------------------------------
  395. def has_free_upgrade?
  396. $game_party.items.any? {|item| item.free_upgrade }
  397. end
  398. #--------------------------------------------------------------------------
  399. # * Alignment
  400. #--------------------------------------------------------------------------
  401. def alignment
  402. 1
  403. end
  404. #--------------------------------------------------------------------------
  405. # * Get Window Width
  406. #--------------------------------------------------------------------------
  407. def window_width
  408. return 250
  409. end
  410.  
  411. def make_command_list
  412. add_command("Upgrade", :upgrade, true)
  413. add_command("Free Upgrade", :free_upgrade, has_free_upgrade?)
  414. add_command("Exit", :cancel, true)
  415. end
  416.  
  417. end
  418.  
  419. class Window_UpgradeableItemCategory < Window_ItemCategory
  420. #--------------------------------------------------------------------------
  421. # * Get Window Width
  422. #--------------------------------------------------------------------------
  423. def window_width
  424. Graphics.width
  425. end
  426. #--------------------------------------------------------------------------
  427. # * Get Digit Count
  428. #--------------------------------------------------------------------------
  429. def col_max
  430. return 3
  431. end
  432. #--------------------------------------------------------------------------
  433. # * Frame Update
  434. #--------------------------------------------------------------------------
  435. def update
  436. super
  437. @item_window.category = current_symbol if @item_window
  438. end
  439. #--------------------------------------------------------------------------
  440. # * Create Command List
  441. #--------------------------------------------------------------------------
  442. def make_command_list
  443. add_command(Vocab::item, :item)
  444. add_command(Vocab::weapon, :weapon)
  445. add_command(Vocab::armor, :armor)
  446. end
  447. end
  448.  
  449. class Window_UpgradeableItemList < Window_ItemList
  450. #--------------------------------------------------------------------------
  451. # * upgradeable?
  452. #--------------------------------------------------------------------------
  453. def upgradeable?(item)
  454. return !!item.upgrade_info
  455. end
  456. #--------------------------------------------------------------------------
  457. # * Include in Item List?
  458. #--------------------------------------------------------------------------
  459. def include?(item)
  460. return super && upgradeable?(item)
  461. end
  462. #--------------------------------------------------------------------------
  463. # * Display in Enabled State?
  464. #--------------------------------------------------------------------------
  465. def enable?(item)
  466. !!item
  467. end
  468. #--------------------------------------------------------------------------
  469. # * Create Item List
  470. #--------------------------------------------------------------------------
  471. def make_item_list
  472. @data = $game_party.all_items.select {|item| include?(item) }
  473. @data.push(nil) if include?(nil)
  474. end
  475. #--------------------------------------------------------------------------
  476. # * Show Info
  477. #--------------------------------------------------------------------------
  478. def show_info(item)
  479. dx = 0
  480. dy = 0
  481. cw = contents_width
  482. ch = contents_height
  483. lh = line_height
  484. dy = line_height
  485. draw_icon(726, (cw - 24) / 2, 0)
  486. draw_text(dx, dy, cw, lh, "- Requirements -", 1)
  487. dy += line_height
  488. end
  489.  
  490. end
  491.  
  492. class Window_UpgradeInfoList < Window_ItemList
  493. #--------------------------------------------------------------------------
  494. # * Processing When OK Button Is Pressed
  495. #--------------------------------------------------------------------------
  496. def process_ok
  497. if current_item_enabled?
  498. Input.update
  499. deactivate
  500. call_ok_handler
  501. else
  502. Sound.play_buzzer
  503. end
  504. end
  505. #--------------------------------------------------------------------------
  506. # * Display in Enabled State?
  507. #--------------------------------------------------------------------------
  508. def enable?(item)
  509. true
  510. end
  511. #--------------------------------------------------------------------------
  512. # * Create Item List
  513. #--------------------------------------------------------------------------
  514. def set_item(item)
  515. @upgrade_item = item
  516. refresh
  517. end
  518. #--------------------------------------------------------------------------
  519. # *
  520. #--------------------------------------------------------------------------
  521. def draw_item_number(rect, item)
  522. # Do nothing
  523. end
  524. #--------------------------------------------------------------------------
  525. # * Create Item List
  526. #--------------------------------------------------------------------------
  527. def upgrade_item(upgrade_type = :normal)
  528. target = @data[1]
  529. chance = @upgrade_item.upgrade_info[:chance]
  530. cost = @upgrade_item.upgrade_info[:cost]
  531. if upgrade_type == :normal
  532. cost.each do |data|
  533. item = eval(data[0])
  534. if data[1]
  535. $game_party.lose_gold(data[2])
  536. else
  537. $game_party.lose_item(item, data[2])
  538. end
  539. end
  540. else
  541. free_upgrade_item = SceneManager.scene.free_upgrade_item
  542. $game_party.lose_item(free_upgrade_item, 1)
  543. end
  544. result = rand(100) <= chance
  545. if result
  546. $game_party.gain_item(target, 1)
  547. $game_party.lose_item(@data[0], 1)
  548. else
  549. target = @data[0]
  550. end
  551. p [result, @data]
  552. return [result, target]
  553. end
  554. #--------------------------------------------------------------------------
  555. # * Create Item List
  556. #--------------------------------------------------------------------------
  557. def make_item_list
  558. return unless @upgrade_item
  559. target_item = nil
  560. id = @upgrade_item.upgrade_info[:target][:id]
  561. case @upgrade_item.upgrade_info[:target][:etype]
  562. when "i"
  563. target_item = $data_items[id]
  564. when "w"
  565. target_item = $data_weapons[id]
  566. when "i"
  567. target_item = $data_armors[id]
  568. end
  569. @data = [@upgrade_item, target_item]
  570. end
  571.  
  572. end
  573.  
  574. class Window_UpgradeRequireItemList < Window_ItemList
  575. #--------------------------------------------------------------------------
  576. # * Display in Enabled State?
  577. #--------------------------------------------------------------------------
  578. def enable?(item)
  579. true
  580. end
  581. #--------------------------------------------------------------------------
  582. # * Create Item List
  583. #--------------------------------------------------------------------------
  584. def set_item(item)
  585. @upgrade_item = item
  586. refresh
  587. end
  588. #--------------------------------------------------------------------------
  589. # * Draw Item
  590. #--------------------------------------------------------------------------
  591. def draw_item(index)
  592. @current_draw_index = index
  593. brect = item_rect(index).clone
  594. brect.y += 1
  595. brect.height -= 2
  596. contents.fill_rect(brect, Color.new(0,0,0,100))
  597. super(index)
  598. end
  599. #--------------------------------------------------------------------------
  600. # * Draw Number of Items
  601. #--------------------------------------------------------------------------
  602. def draw_item_number(rect, item)
  603. index = @current_draw_index
  604. return unless @custom_data[index]
  605. left_num = 0
  606. if @custom_data[index][0]
  607. left_num = $game_party.gold
  608. else
  609. left_num = $game_party.item_number(item)
  610. end
  611. right_num = @custom_data[index][1]
  612. if left_num >= right_num
  613. change_color(text_color(3))
  614. @can_upgrade_count += 1
  615. else
  616. change_color(text_color(10))
  617. end
  618. draw_text(rect, sprintf("%2d/%2d", left_num, right_num), 2)
  619. end
  620. #--------------------------------------------------------------------------
  621. # * Create Item List
  622. #--------------------------------------------------------------------------
  623. def spacing
  624. return 4
  625. end
  626. #--------------------------------------------------------------------------
  627. # * Can be upgraded?
  628. #--------------------------------------------------------------------------
  629. def can_be_upgraded?
  630. @can_upgrade_count >= @custom_data.size
  631. end
  632. #--------------------------------------------------------------------------
  633. # * Create Item List
  634. #--------------------------------------------------------------------------
  635. def make_item_list
  636. return unless @upgrade_item
  637. @can_upgrade_count = 0
  638. target_item = nil
  639. cost = @upgrade_item.upgrade_info[:cost]
  640. @custom_data = []
  641. @data = []
  642. free_upgrade_item = SceneManager.scene.free_upgrade_item
  643. if free_upgrade_item
  644. @data << free_upgrade_item
  645. @custom_data << [false, 1]
  646. else
  647. cost.each do |data|
  648. item = eval(data[0])
  649. @data << item
  650. @custom_data << [data[1], data[2]]
  651. end
  652. end
  653. end
  654.  
  655. end
  656.  
  657. class Window_UpgradeResult < Window_ItemList
  658. #--------------------------------------------------------------------------
  659. # * Enable
  660. #--------------------------------------------------------------------------
  661. def enable?(item)
  662. true
  663. end
  664. #--------------------------------------------------------------------------
  665. # * Set Item
  666. #--------------------------------------------------------------------------
  667. def set_item(result, item, &callback)
  668. base_width = self.width
  669. @result_item = item
  670. @result = result
  671. contents.clear
  672. change_color(text_color(0))
  673. draw_text(0, 0, contents_width, line_height, "Upgrading...", 1)
  674. color1 = Color.new(235, 179, 59)
  675. color2 = Color.new(235, 112, 59)
  676. color3 = Color.new(0, 0, 0, 150)
  677. rate = 0
  678. wait = 60
  679. wait.times do |i|
  680. contents.clear_rect(0, line_height, contents_width, line_height)
  681. contents.fill_rect(0, line_height, contents_width, line_height, color3)
  682. contents.gradient_fill_rect(2, line_height + 2, (contents_width - 4) * (i / wait.to_f), line_height - 4, color1, color2)
  683. SceneManager.scene.update
  684. end
  685. close
  686. while self.openness > 0
  687. SceneManager.scene.update
  688. end
  689. result_text = result ? "Upgrade successfully!" : "Upgrade fail!"
  690. new_width = text_size(item.name).width + 32 + 32
  691. new_width = [new_width, text_size(result_text).width + 32].max
  692. self.width = new_width
  693. self.x = (Graphics.width - self.width) / 2
  694. create_contents
  695. refresh
  696. if result
  697. change_color(text_color(3))
  698. draw_text(0, line_height, contents_width, line_height, result_text)
  699. DSIVER144::EQUIP_UPGRADE::SUCCESS_ME.play
  700. else
  701. change_color(text_color(10))
  702. draw_text(0, line_height, contents_width, line_height, result_text)
  703. DSIVER144::EQUIP_UPGRADE::FAIL_ME.play
  704. end
  705. open
  706. while self.openness < 255
  707. SceneManager.scene.update
  708. end
  709. 60.times do
  710. if Input.trigger?(:C)
  711. break
  712. end
  713. SceneManager.scene.update
  714. end
  715. close
  716. callback.call if callback
  717. self.width = base_width
  718. self.x = (Graphics.width - self.width) / 2
  719. create_contents
  720. end
  721. #--------------------------------------------------------------------------
  722. # * Item Rect
  723. #--------------------------------------------------------------------------
  724. def item_rect(index)
  725. return super(index)
  726. end
  727. #--------------------------------------------------------------------------
  728. # * Draw Item Number
  729. #--------------------------------------------------------------------------
  730. def draw_item_number(rect, item)
  731. end
  732. #--------------------------------------------------------------------------
  733. # * Make Item LIst
  734. #--------------------------------------------------------------------------
  735. def make_item_list
  736. @data = [@result_item]
  737. end
  738. #--------------------------------------------------------------------------
  739. # * Col Max
  740. #--------------------------------------------------------------------------
  741. def col_max
  742. return 1
  743. end
  744.  
  745. end
  746.  
  747. class Window_FreeUpgradeItemList < Window_ItemList
  748. #--------------------------------------------------------------------------
  749. # * Col Max
  750. #--------------------------------------------------------------------------
  751. def col_max
  752. return 1
  753. end
  754. #--------------------------------------------------------------------------
  755. # * Make Item LIst
  756. #--------------------------------------------------------------------------
  757. def make_item_list
  758. @data = $game_party.all_items.select {|item| item.free_upgrade}
  759. end
  760. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement