Advertisement
Fomar0153

Fomar0153 - Equipment Requirements 1.2

Feb 19th, 2012
2,663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.44 KB | None | 0 0
  1. =begin
  2. Equipment Requirements
  3. by Fomar0153
  4. Version 1.2
  5. ----------------------
  6. Notes
  7. ----------------------
  8. Adds a level requirement to equipment.
  9. ----------------------
  10. Instructions
  11. ----------------------
  12. Notetag the weapons/armors like so:
  13. <levelreq x>
  14. <mhpreq x>
  15. <mmpreq x>
  16. <atkreq x>
  17. <defreq x>
  18. <matreq x>
  19. <mdfreq x>
  20. <agireq x>
  21. <lukreq x>
  22. <switchreq x>
  23. <wepreq x>
  24. <armreq x>
  25. ----------------------
  26. Change Log
  27. ----------------------
  28. 1.0 -> 1.1 Added stat requirements
  29.            Changed script name from Equipment Level Requirements
  30.            to just Equipment Requirements
  31. 1.1 -> 1.2 Added switch and other equipment requirements
  32. ----------------------
  33. Known bugs
  34. ----------------------
  35. None
  36. =end
  37.  
  38. class Game_BattlerBase
  39.   #--------------------------------------------------------------------------
  40.   # ● If set to true then it compares the requirement with the actor's base
  41.   #   stat rather than their current.
  42.   #--------------------------------------------------------------------------
  43.   EQUIPREQ_USE_BASE_STAT = true
  44.   #--------------------------------------------------------------------------
  45.   # ● Check the requirements
  46.   #--------------------------------------------------------------------------
  47.   alias level_equippable? equippable?
  48.   def equippable?(item)
  49.     return false unless item.is_a?(RPG::EquipItem)
  50.     return false if @level < item.levelreq
  51.     return false if reqstat(0) < item.mhpreq
  52.     return false if reqstat(1) < item.mmpreq
  53.     return false if reqstat(2) < item.atkreq
  54.     return false if reqstat(3) < item.defreq
  55.     return false if reqstat(4) < item.matreq
  56.     return false if reqstat(5) < item.mdfreq
  57.     return false if reqstat(6) < item.agireq
  58.     return false if reqstat(7) < item.lukreq
  59.     if item.switchreq > 0
  60.       return false unless $game_switches[item.switchreq]
  61.     end
  62.     if item.wepreq > 0
  63.       e = []
  64.       for equip in @equips
  65.         if equip.is_weapon?
  66.           e.push(equip.object.id)
  67.         end
  68.       end
  69.       return false unless e.include?(item.wepreq) unless equip.object.nil?
  70.     end
  71.     if item.armreq > 0
  72.       e = []
  73.       for equip in @equips
  74.         if equip.is_armor?
  75.           e.push(equip.object.id) unless equip.object.nil?
  76.         end
  77.       end
  78.       return false unless e.include?(item.armreq)
  79.     end
  80.     return level_equippable?(item)
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● New Method
  84.   #--------------------------------------------------------------------------
  85.   def reqstat(id)
  86.     if EQUIPREQ_USE_BASE_STAT
  87.       return param_base(id)
  88.     else
  89.       return param(id)
  90.     end
  91.   end
  92. end
  93.  
  94. module RPG
  95.   #--------------------------------------------------------------------------
  96.   # ● Equip Item is inherited by both Weapon and Armor
  97.   #--------------------------------------------------------------------------
  98.   class EquipItem
  99.     def levelreq
  100.       if self.note =~ /<levelreq (.*)>/i
  101.         return $1.to_i
  102.       else
  103.         return 0
  104.       end
  105.     end
  106.     def mhpreq
  107.       if self.note =~ /<mhpreq (.*)>/i
  108.         return $1.to_i
  109.       else
  110.         return 0
  111.       end
  112.     end
  113.     def mmpreq
  114.       if self.note =~ /<mmpreq (.*)>/i
  115.         return $1.to_i
  116.       else
  117.         return 0
  118.       end
  119.     end
  120.     def atkreq
  121.       if self.note =~ /<atkreq (.*)>/i
  122.         return $1.to_i
  123.       else
  124.         return 0
  125.       end
  126.     end
  127.     def defreq
  128.       if self.note =~ /<defreq (.*)>/i
  129.         return $1.to_i
  130.       else
  131.         return 0
  132.       end
  133.     end
  134.     def matreq
  135.       if self.note =~ /<matreq (.*)>/i
  136.         return $1.to_i
  137.       else
  138.         return 0
  139.       end
  140.     end
  141.     def mdfreq
  142.       if self.note =~ /<mdfreq (.*)>/i
  143.         return $1.to_i
  144.       else
  145.         return 0
  146.       end
  147.     end
  148.     def agireq
  149.       if self.note =~ /<agireq (.*)>/i
  150.         return $1.to_i
  151.       else
  152.         return 0
  153.       end
  154.     end
  155.     def lukreq
  156.       if self.note =~ /<lukreq (.*)>/i
  157.         return $1.to_i
  158.       else
  159.         return 0
  160.       end
  161.     end
  162.     def switchreq
  163.       if self.note =~ /<switchreq (.*)>/i
  164.         return $1.to_i
  165.       else
  166.         return 0
  167.       end
  168.     end
  169.     def wepreq
  170.       if self.note =~ /<wepreq (.*)>/i
  171.         return $1.to_i
  172.       else
  173.         return 0
  174.       end
  175.     end
  176.     def armreq
  177.       if self.note =~ /<armreq (.*)>/i
  178.         return $1.to_i
  179.       else
  180.         return 0
  181.       end
  182.     end
  183.   end
  184. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement