Advertisement
roninator2

Mr. Trivel - Crafting Simple - Popup

Nov 19th, 2024
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.73 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Mr. Trivel - Crafting Simple - Popup   ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Play sound on Crafting                      ║    16 May 2020     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Mr. Trivel - Crafting Simple                             ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Adds a popup when the item is successfully crafted           ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   I designed this for my own game Path of Life                     ║
  20. # ║   The sound was changed to prevent the play_ok from happening      ║
  21. # ║   every single time you pressed a button                           ║
  22. # ╚════════════════════════════════════════════════════════════════════╝
  23. # ╔════════════════════════════════════════════════════════════════════╗
  24. # ║ Updates:                                                           ║
  25. # ║ 1.00 - 16 May 2020 - Script finished                               ║
  26. # ║                                                                    ║
  27. # ╚════════════════════════════════════════════════════════════════════╝
  28. # ╔════════════════════════════════════════════════════════════════════╗
  29. # ║ Credits and Thanks:                                                ║
  30. # ║   Roninator2                                                       ║
  31. # ║                                                                    ║
  32. # ╚════════════════════════════════════════════════════════════════════╝
  33. # ╔════════════════════════════════════════════════════════════════════╗
  34. # ║ Terms of use:                                                      ║
  35. # ║  Follow the original Authors terms of use where applicable         ║
  36. # ║    - When not made by me (Roninator2)                              ║
  37. # ║  Free for all uses in RPG Maker except nudity                      ║
  38. # ║  Anyone using this script in their project before these terms      ║
  39. # ║  were changed are allowed to use this script even if it conflicts  ║
  40. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  41. # ║  No part of this code can be used with AI programs or tools        ║
  42. # ║  Credit must be given                                              ║
  43. # ╚════════════════════════════════════════════════════════════════════╝
  44.  
  45. class Window_Craft_ConfirmPopup < Window_Selectable
  46.   def initialize
  47.     super(320, 300, window_width, window_height)
  48.     self.openness = 0
  49.   end
  50.   def window_width; 320; end
  51.   def window_height; 48; end
  52.   def refresh; end
  53.   def craft_item(item)
  54.     contents.clear
  55.     text1, text2 = item.name, " crafted!"
  56.     width = contents.text_size(text1 + text2).width + 30
  57.     create_contents
  58.     draw_text(24,1,contents.width,24,text1)
  59.     change_color(normal_color)
  60.     draw_text(24+contents.text_size(text1).width,1,contents.width,24,text2)
  61.     draw_icon(item.icon_index,0,0)
  62.     open
  63.   end
  64.   def process_ok
  65.     if current_item_enabled?
  66.       Input.update
  67.       deactivate
  68.       call_ok_handler
  69.     end
  70.   end
  71. end
  72.  
  73. class MrTS_Scene_Crafting < Scene_Base
  74.   def create_all_windows
  75.     create_help_window
  76.     create_main_command_window
  77.     create_discipline_info_window
  78.     create_item_list_window
  79.     create_requirements_window
  80.     create_disciplines_command_window
  81.     create_craft_success_window
  82.     @command_window.deactivate
  83.     @discipline_command_window.open
  84.     @discipline_command_window.activate
  85.   end
  86.   def create_craft_success_window
  87.     @craft_success = Window_Craft_ConfirmPopup.new
  88.     @craft_success.set_handler(:ok, method(:craft_ok))
  89.     @craft_success.set_handler(:cancel, method(:craft_ok))
  90.     @craft_success.deactivate
  91.   end
  92.   def craft_ok
  93.     @craft_success.deactivate
  94.     @craft_success.close
  95.     @item_window.activate
  96.   end
  97.   def item_list_ok_on
  98.     check = @requirements_window.check_item
  99.     if !check
  100.       Sound.play_buzzer
  101.       @item_window.activate
  102.     else
  103.       @requirements_window.craft_item
  104.       @requirements_window.refresh
  105.       @discipline_info_window.refresh
  106.       @item_window.refresh
  107.       item = @requirements_window.find_item
  108.       @item_window.deactivate
  109.       @craft_success.craft_item(item)
  110.       @craft_success.activate
  111.       Sound.play_use_item
  112.     end
  113.   end
  114. end
  115.  
  116. class MrTS_Requirements_Window < Window_Base
  117.   def find_item
  118.     geto = get_true_item(MrTS::Crafting::RECIPES[@recipe][:item])
  119.     return geto[0]
  120.   end
  121.   def check_item
  122.     @item_list.each do |il|
  123.       if $game_party.item_number(il[0]) < il[1]
  124.         return false
  125.       end
  126.     end
  127.     return true
  128.   end
  129. end
  130.  
  131. class MrTS_Item_Window < Window_Selectable
  132.   def process_ok
  133.     if current_item_enabled?
  134.       Input.update
  135.       deactivate
  136.       call_ok_handler
  137.     end
  138.   end
  139. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement