Advertisement
roninator2

Selchar Random Shop affixes

Dec 15th, 2024
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.28 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Shop Random Affixes                    ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║ Show Random Affixes in Shop                   ║    18 Sep 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Selchar's Random Shop                                    ║
  11. # ║           Hime's Item Affixes                                      ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Add affixes to shop items                                    ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Plug and Play                                                    ║
  20. # ║                                                                    ║
  21. # ╚════════════════════════════════════════════════════════════════════╝
  22. # ╔════════════════════════════════════════════════════════════════════╗
  23. # ║ Updates:                                                           ║
  24. # ║ 1.00 - 18 Sep 2023 - Script finished                               ║
  25. # ║                                                                    ║
  26. # ╚════════════════════════════════════════════════════════════════════╝
  27. # ╔════════════════════════════════════════════════════════════════════╗
  28. # ║ Credits and Thanks:                                                ║
  29. # ║   Roninator2                                                       ║
  30. # ║                                                                    ║
  31. # ╚════════════════════════════════════════════════════════════════════╝
  32. # ╔════════════════════════════════════════════════════════════════════╗
  33. # ║ Terms of use:                                                      ║
  34. # ║  Follow the original Authors terms of use where applicable         ║
  35. # ║    - When not made by me (Roninator2)                              ║
  36. # ║  Free for all uses in RPG Maker except nudity                      ║
  37. # ║  Anyone using this script in their project before these terms      ║
  38. # ║  were changed are allowed to use this script even if it conflicts  ║
  39. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  40. # ║  No part of this code can be used with AI programs or tools        ║
  41. # ║  Credit must be given                                              ║
  42. # ╚════════════════════════════════════════════════════════════════════╝
  43.  
  44. module RPG
  45.   class EquipItem < BaseItem
  46.     attr_accessor :affix_set
  47.   end
  48. end
  49.  
  50. class Window_ShopBuy < Window_Selectable
  51.   #--------------------------------------------------------------------------
  52.   # * Create Item List
  53.   #--------------------------------------------------------------------------
  54.   def make_item_list
  55.     return if @data != nil
  56.     @data = []
  57.     @price = {}
  58.     @shop_goods.each do |goods|
  59.       case goods[0]
  60.       when 0;  item = $data_items[goods[1]]
  61.       when 1
  62.         item = $data_weapons[goods[1]]
  63.         item = InstanceManager.get_instance(item)
  64.         item = InstanceManager.setup_equip_instance(item) unless item.affix_set == true
  65.       when 2
  66.         item = $data_armors[goods[1]]
  67.         item = InstanceManager.get_instance(item)
  68.         item = InstanceManager.setup_equip_instance(item) unless item.affix_set == true
  69.       end
  70.       if item
  71.         @data.push(item)
  72.         @price[item] = goods[2] == 0 ? item.price : goods[3]
  73.       end
  74.     end
  75.   end
  76.   def disable_instance_item(io)
  77.     return if io.is_a?(RPG::Item)
  78.     @data.each_with_index do |itm, i|
  79.       if itm == io
  80.         @data[i] = nil
  81.       end
  82.     end
  83.     @data.compact!
  84.     refresh
  85.   end
  86. end
  87.  
  88. class Scene_Shop < Scene_MenuBase
  89.   #--------------------------------------------------------------------------
  90.   # * Execute Purchase
  91.   #--------------------------------------------------------------------------
  92.   def do_buy(number)
  93.     $game_party.lose_gold(number * buying_price)
  94.     $game_party.gain_item(@item, number)
  95.     @buy_window.disable_instance_item(@item)
  96.   end
  97. end
  98.  
  99. module InstanceManager
  100.   def self.setup_equip_instance(obj)
  101.     random_affix_equip_setup(obj)
  102.     return if TH_Instance::Equip::Random_Affix_Allowed[SceneManager.scene.class.to_s].nil?
  103.     if eval(TH_Instance::Equip::Random_Affix_Allowed[SceneManager.scene.class.to_s])
  104.       obj.prefix_id = obj.random_prefix unless obj.affix_set == true
  105.       obj.suffix_id = obj.random_suffix unless obj.affix_set == true
  106.       obj.affix_set = true
  107.     end
  108.   end
  109. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement