Advertisement
roninator2

Mr Trivel Crafting Addon - Swap craft ingredients

Nov 3rd, 2020 (edited)
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.26 KB | Source Code | 0 0
  1. # ╔═════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Swap Craft                   ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                  ║                    ║
  4. # ╠═════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                           ║   Date Created     ║
  6. # ║ Mr Trivel Crafting -                ╠════════════════════╣
  7. # ║ Lets you swap items in the receipe  ║    01 Nov 2020     ║
  8. # ╚═════════════════════════════════════╩════════════════════╝
  9. # ╔══════════════════════════════════════════════════════════╗
  10. # ║ Allows swapped items to be returned to inventory         ║
  11. # ║ and not used when the item is crafted.                   ║
  12. # ║                                                          ║
  13. # ║ Can only substitute items for items, weapons for weapons ║
  14. # ║ The notetag is placed on the receipe ingredients         ║
  15. # ║ not the item getting swapped in.                         ║
  16. # ║                                                          ║
  17. # ║ Then if the swap item is in your inventory, the          ║
  18. # ║ original item is not used.                               ║
  19. # ║                                                          ║
  20. # ║ Use note tag <swap craft: X> on the item, weapon, armor  ║
  21. # ║ x being the id of the item, weapon used for crafting     ║
  22. # ╚══════════════════════════════════════════════════════════╝
  23. # ╔═════════════════════════════════════╗
  24. # ║ Terms of use:                       ║
  25. # ║ Follow the Original Authors terms   ║
  26. # ╚═════════════════════════════════════╝
  27.  
  28. module R2
  29.   module Trivel_Craft
  30.     Regex = /<swap[-_ ]craft:[-_ ]\s*(\d+)\s*>/imx
  31.   end
  32. end
  33.  
  34. class MrTS_Requirements_Window < Window_Base
  35.  
  36.   def set_recipe(item)
  37.     return unless item
  38.     @recipe = item
  39.     @item_list = []
  40.     @saveitem = []
  41.     MrTS::Crafting::RECIPES[@recipe][:ingredients].each { |i|
  42.       type = i[0].to_i
  43.       if type == 0
  44.         item = $data_items[i[1]]
  45.         results = item.note.scan(R2::Trivel_Craft::Regex)
  46.         results.each do |res|
  47.           repitem = res[0].to_i
  48.           if $game_party.has_item?($data_items[repitem], false)
  49.             @item_list.delete(i)
  50.             i = [type, repitem, 1]
  51.             @saveitem << i
  52.             @saveitem.uniq!
  53.           end
  54.         end
  55.       end
  56.       if type == 1
  57.         item = $data_weapons[i[1]]
  58.         results = item.note.scan(R2::Trivel_Craft::Regex)
  59.         results.each do |res|
  60.           repitem = res[0].to_i
  61.           if $game_party.has_item?($data_weapons[repitem], false)
  62.             @item_list.delete(i)
  63.             i = [type, repitem, 1]
  64.             @saveitem << i
  65.             @saveitem.uniq!
  66.           end
  67.         end
  68.       end
  69.       if type == 2
  70.         item = $data_armors[i[1]]
  71.         results = item.note.scan(R2::Trivel_Craft::Regex)
  72.         results.each do |res|
  73.           repitem = res[0].to_i
  74.           if $game_party.has_item?($data_armors[repitem], false)
  75.             @item_list.delete(i)
  76.             i = [type, repitem, 1]
  77.             @saveitem << i
  78.             @saveitem.uniq!
  79.           end
  80.         end
  81.       end
  82.       @item_list.push(get_true_item(i))
  83.       @item_list.uniq!
  84.     }
  85.     refresh
  86.   end
  87.  
  88.   alias r2_trivel_craft_item_83v    craft_item
  89.   def craft_item
  90.     r2_trivel_craft_item_83v
  91.     @saveitem.each do |il|
  92.       keep = get_true_item(il)
  93.       $game_party.gain_item(keep[0], keep[1])
  94.     end
  95.   end
  96.  
  97. end
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement