Advertisement
Szyu

BaseItem Level Requirements

Apr 20th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.57 KB | None | 0 0
  1. #==============================================================================
  2. # BaseItem Level Requirements
  3. # Version 1.1
  4. # By Szyu
  5. #
  6. # About:
  7. # Get level requirements for weapon/armor equipment and item usage
  8. #
  9. # Instructions:
  10. # - Place below "▼ Materials" but above "▼ Main Process".
  11. #
  12. # How to Use:
  13. # Add "<rlvl: x>" to the notes of an item, weapon, armor to set the required level to x
  14. #==============================================================
  15. #   * Configuration
  16. #==============================================================
  17.  
  18. # Shows the level requirements in the item description
  19. SHOW_LVL_REQ_IN_DESCRIPTION = true
  20. # Term for item description
  21. DESCRIPTION_LVL_REQ_TERM = "Lv: "
  22.  
  23. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  24. #==============================================================
  25. #   * Game_BattlerBase
  26. #==============================================================
  27. class Game_BattlerBase
  28.   attr_reader   :level
  29.  
  30.   alias equippable_lvl_req equippable?
  31.   def equippable?(item)
  32.     result = equippable_lvl_req(item)
  33.     return false if item.nil?
  34.     if (!item.required_level.nil?)
  35.       return false if @level < item.required_level
  36.     end
  37.     return result
  38.   end
  39.  
  40.   alias usable_lvl_req usable_item_conditions_met?
  41.   def usable_item_conditions_met?(item)
  42.     result = usable_lvl_req(item)
  43.     return false if item.nil?
  44.     if (!item.required_level.nil?)
  45.       return false if @level < item.required_level
  46.     end
  47.     return result
  48.   end
  49. end
  50.  
  51. #==============================================================
  52. #   * DataManager
  53. #==============================================================
  54. class << DataManager
  55.   alias load_lv_rq_sz_crafting load_database
  56.  
  57.   def load_database
  58.     load_lv_rq_sz_crafting
  59.     load_lvl_req_item_notetags
  60.   end
  61.  
  62.   def load_lvl_req_item_notetags
  63.     groups = [$data_items, $data_weapons, $data_armors]
  64.     for group in groups
  65.       for obj in group
  66.         next if obj.nil?
  67.         obj.load_lvl_requirements
  68.       end
  69.     end
  70.   end
  71. end
  72.  
  73. #==============================================================
  74. #   * BaseItems
  75. #==============================================================
  76. class RPG::BaseItem
  77.   attr_accessor :required_level
  78.  
  79.  
  80.   def load_lvl_requirements
  81.     @required_level = 1
  82.     self.note.split(/[\r\n]+/).each do |line|
  83.       next unless line =~ /<rlvl:\s*?(\d*)>/i
  84.       @required_level = $1.to_i
  85.       @description += sprintf("(%s%d)", DESCRIPTION_LVL_REQ_TERM, @required_level) if SHOW_LVL_REQ_IN_DESCRIPTION
  86.     end
  87.   end
  88. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement