Advertisement
roninator2

Mr. Trivel - Crafting Simple - Popup

Nov 19th, 2024 (edited)
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.81 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. module R2_Trivel_craft_message
  45.   CONFIRM = " crafted!"
  46. end
  47. class Window_Craft_ConfirmPopup < Window_Selectable
  48.   def initialize
  49.     super(320, 300, window_width, window_height)
  50.     self.openness = 0
  51.   end
  52.   def window_width; 320; end
  53.   def window_height; 48; end
  54.   def refresh; end
  55.   def craft_item(item)
  56.     contents.clear
  57.     text1, text2 = item.name, R2_Trivel_craft_message::CONFIRM
  58.     width = contents.text_size(text1 + text2).width + 30
  59.     create_contents
  60.     draw_text(24,1,contents.width,24,text1)
  61.     change_color(normal_color)
  62.     draw_text(24+contents.text_size(text1).width,1,contents.width,24,text2)
  63.     draw_icon(item.icon_index,0,0)
  64.     open
  65.   end
  66.   def process_ok
  67.     if current_item_enabled?
  68.       Input.update
  69.       deactivate
  70.       call_ok_handler
  71.     end
  72.   end
  73. end
  74.  
  75. class MrTS_Scene_Crafting < Scene_Base
  76.   def create_all_windows
  77.     create_help_window
  78.     create_main_command_window
  79.     create_discipline_info_window
  80.     create_item_list_window
  81.     create_requirements_window
  82.     create_disciplines_command_window
  83.     create_craft_success_window
  84.     @command_window.deactivate
  85.     @discipline_command_window.open
  86.     @discipline_command_window.activate
  87.   end
  88.   def create_craft_success_window
  89.     @craft_success = Window_Craft_ConfirmPopup.new
  90.     @craft_success.set_handler(:ok, method(:craft_ok))
  91.     @craft_success.set_handler(:cancel, method(:craft_ok))
  92.     @craft_success.deactivate
  93.   end
  94.   def craft_ok
  95.     @craft_success.deactivate
  96.     @craft_success.close
  97.     @item_window.activate
  98.   end
  99.   def item_list_ok_on
  100.     check = @requirements_window.check_item
  101.     if !check
  102.       Sound.play_buzzer
  103.       @item_window.activate
  104.     else
  105.       @requirements_window.craft_item
  106.       @requirements_window.refresh
  107.       @discipline_info_window.refresh
  108.       @item_window.refresh
  109.       item = @requirements_window.find_item
  110.       @item_window.deactivate
  111.       @craft_success.craft_item(item)
  112.       @craft_success.activate
  113.       Sound.play_use_item
  114.     end
  115.   end
  116. end
  117.  
  118. class MrTS_Requirements_Window < Window_Base
  119.   def find_item
  120.     geto = get_true_item(MrTS::Crafting::RECIPES[@recipe][:item])
  121.     return geto[0]
  122.   end
  123.   def check_item
  124.     @item_list.each do |il|
  125.       if $game_party.item_number(il[0]) < il[1]
  126.         return false
  127.       end
  128.     end
  129.     return true
  130.   end
  131. end
  132.  
  133. class MrTS_Item_Window < Window_Selectable
  134.   def process_ok
  135.     if current_item_enabled?
  136.       Input.update
  137.       deactivate
  138.       call_ok_handler
  139.     end
  140.   end
  141. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement