Advertisement
DrDhoom

[RGSS3] FP Inventory Addon

Sep 24th, 2014
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.79 KB | None | 0 0
  1. class Game_Inventory
  2.   alias dhoom_fp_inventory_gminv_update_inventory update_inventory
  3.   def update_inventory(container, item, added)
  4.     return if item.is_a?(RPG::Item) and item.itype_id == 2
  5.     dhoom_fp_inventory_gminv_update_inventory(container, item, added)
  6.   end
  7. end
  8.  
  9. class Window_ItemList < Window_Selectable
  10.   def get_item_rect
  11.     item_rect(self.index)
  12.   end
  13.  
  14.   def current_item_enabled?
  15.     return true if SceneManager.scene_is?(Scene_Item)
  16.     return enable?(@data[index])
  17.   end
  18.  
  19.   def category
  20.     @category
  21.   end
  22. end
  23.  
  24. class Window_Item_Discard < Window_Command
  25.   def window_width
  26.     return 160
  27.   end
  28.  
  29.   def make_command_list
  30.     add_command("Use", :use)
  31.     add_command("Discard", :discard)
  32.   end
  33. end
  34.  
  35. class Window_Item_Discard2 < Window_Command
  36.   def window_width
  37.     return 160
  38.   end
  39.  
  40.   def make_command_list
  41.     add_command("Discard", :discard)
  42.   end
  43. end
  44.  
  45. class Scene_Item < Scene_ItemBase
  46.  
  47.   alias dhoom_fpinv_scitem_start start
  48.   def start
  49.     dhoom_fpinv_scitem_start
  50.     create_discard_windows
  51.   end
  52.  
  53.   def create_discard_windows
  54.     @discard_window = Window_Item_Discard.new(0,0)
  55.     @discard_window.set_handler(:use, method(:on_item_ok))
  56.     @discard_window.set_handler(:discard, method(:on_discard_ok))
  57.     @discard_window.set_handler(:cancel, method(:on_discard_cancel))
  58.     @discard2_window = Window_Item_Discard2.new(0,0)
  59.     @discard2_window.set_handler(:discard, method(:on_discard_ok))
  60.     @discard2_window.set_handler(:cancel, method(:on_discard_cancel))
  61.     @discard_window.z = @discard2_window.z = 9999
  62.     @discard_window.deactivate
  63.     @discard2_window.deactivate
  64.     @discard_window.visible = @discard2_window.visible = false
  65.     @item_window.set_handler(:ok,     method(:on_item_discarduse_ok))
  66.   end
  67.  
  68.   def on_discard_ok
  69.     $game_party.lose_item(item, 1, true)
  70.     @item_window.refresh
  71.     on_discard_cancel
  72.   end
  73.  
  74.   def on_discard_cancel
  75.     @discard_window.deactivate
  76.     @discard2_window.deactivate
  77.     @discard_window.visible = @discard2_window.visible = false
  78.     @item_window.activate
  79.   end
  80.  
  81.   alias dhoom_fpinv_scitem_on_item_ok on_item_ok
  82.   def on_item_ok
  83.     @discard_window.visible = @discard2_window.visible = false
  84.     dhoom_fpinv_scitem_on_item_ok
  85.   end
  86.  
  87.   def on_item_discarduse_ok
  88.     if @item_window.category == :key_item
  89.       on_item_ok
  90.       return
  91.     end
  92.     rect = @item_window.get_item_rect
  93.     rect.x += @item_window.x
  94.     rect.y += @item_window.y
  95.     if @item_window.enable?(item)
  96.       @discard_window.x, @discard_window.y = rect.x, rect.y
  97.       @discard_window.visible = true
  98.       @discard_window.activate
  99.     else
  100.       @discard2_window.x, @discard2_window.y = rect.x, rect.y
  101.       @discard2_window.visible = true
  102.       @discard2_window.activate
  103.     end
  104.   end  
  105. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement