khanhdu

Relative Basic Stats

Jul 27th, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.60 KB | None | 0 0
  1. module RINOBI module RBS # DO NOT MODIFY
  2. #==============================================================================
  3. # # RELATIVE BASIC STATS
  4. # -----------------------------------------------------------------------------
  5. # 1.0 [06/06/2016] Completed
  6. #-
  7. # Adjusts a battler's HP, MP, and TP values to remain relative to maximum
  8. # values when modified by buffs, states, equipment, and levels.
  9. #==============================================================================
  10. # # TERMS OF USE
  11. #------------------------------------------------------------------------------
  12. # 1. Preserve this header.
  13. # 2. Do not re-upload this script.
  14. # 3. Do not claim this script as your own work.
  15. # 4. Do not release modified versions of this script.
  16. # 5. Free commercial use, credit Rinobi.
  17. #==============================================================================
  18. end end # DO NOT MODIFY
  19. #==============================================================================
  20. # ** IMPORT SCRIPT
  21. #------------------------------------------------------------------------------
  22. $imported = {} if $imported.nil?
  23. $imported[:RIN_RBS] = true
  24. #==============================================================================
  25. # ** Game_BattlerBase
  26. #------------------------------------------------------------------------------
  27. #  This base class handles battlers. It mainly contains methods for calculating
  28. # parameters. It is used as a super class of the Game_Battler class.
  29. #==============================================================================
  30. class Game_BattlerBase
  31.   #--------------------------------------------------------------------------
  32.   # * Alias Method: Erase States
  33.   #--------------------------------------------------------------------------
  34.   alias :rbs_erase_state :erase_state
  35.   def erase_state(state_id)
  36.     get_relative_values
  37.     rbs_erase_state(state_id)
  38.     set_relative_values
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # * New Method: Get Rate Values
  42.   #--------------------------------------------------------------------------
  43.   def get_relative_values
  44.     @ohp_rate = hp_rate
  45.     @omp_rate = mp_rate
  46.     @otp_rate = tp_rate
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # * New Method: Set Relative Values
  50.   #--------------------------------------------------------------------------
  51.   def set_relative_values
  52.     @hp = [mhp * @ohp_rate, 0].max.round.to_i
  53.     @mp = [mmp * @omp_rate, 0].max.round.to_i
  54.     @tp = [max_tp * @otp_rate, 0].max.round.to_i
  55.   end
  56. end
  57. #==============================================================================
  58. # ** Game_Battler
  59. #------------------------------------------------------------------------------
  60. #  A battler class with methods for sprites and actions added. This class
  61. # is used as a super class of the Game_Actor class and Game_Enemy class.
  62. #==============================================================================
  63. class Game_Battler < Game_BattlerBase
  64.   #--------------------------------------------------------------------------
  65.   # * Inherit Rate Values
  66.   #--------------------------------------------------------------------------
  67.   def get_relative_values; super end
  68.   #--------------------------------------------------------------------------
  69.   # * Inherit Relative Values
  70.   #--------------------------------------------------------------------------
  71.   def set_relative_values; super end
  72.   #--------------------------------------------------------------------------
  73.   # * Alais Method: Add New State
  74.   #--------------------------------------------------------------------------
  75.   alias :rbs_add_new_state :add_new_state
  76.   def add_new_state(state_id)
  77.     get_relative_values
  78.     rbs_add_new_state(state_id)
  79.     return if state_id == death_state_id
  80.     set_relative_values
  81.   end
  82. end
  83. #==============================================================================
  84. # ** Game_Actor
  85. #------------------------------------------------------------------------------
  86. #  This class handles actors. It is used within the Game_Actors class
  87. # ($game_actors) and is also referenced from the Game_Party class ($game_party).
  88. #==============================================================================
  89. class Game_Actor < Game_Battler
  90.   #--------------------------------------------------------------------------
  91.   # * Alias Method: Change Class
  92.   #     keep_exp:  Keep EXP
  93.   #--------------------------------------------------------------------------
  94.   alias :rbs_change_class :change_class
  95.   def change_class(class_id, keep_exp = false)
  96.     get_relative_values
  97.     rbs_change_class(class_id, keep_exp = false)
  98.     set_relative_values
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # * Alias Method: Change Equipment
  102.   #     slot_id:  Equipment slot ID
  103.   #     item:    Weapon/armor (remove equipment if nil)
  104.   #--------------------------------------------------------------------------
  105.   alias :rbs_change_equip :change_equip
  106.   def change_equip(slot_id, item)
  107.     get_relative_values
  108.     rbs_change_equip(slot_id, item)
  109.     set_relative_values
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # * Alias Method: Forcibly Change Equipment
  113.   #     slot_id:  Equipment slot ID
  114.   #     item:     Weapon/armor (remove equipment if nil)
  115.   #--------------------------------------------------------------------------
  116.   alias :rbs_force_equip :force_change_equip
  117.   def force_change_equip(slot_id, item)
  118.     get_relative_values
  119.     rbs_force_equip(slot_id, item)
  120.     set_relative_values
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # * Alias Method: Level Up
  124.   #--------------------------------------------------------------------------
  125.   alias :rbs_level_up :level_up
  126.   def level_up
  127.     get_relative_values
  128.     rbs_level_up
  129.     set_relative_values
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # * Alias Method: Level Down
  133.   #--------------------------------------------------------------------------
  134.   alias :rbs_level_down :level_down
  135.   def level_down
  136.     get_relative_values
  137.     rbs_level_down
  138.     set_relative_values
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # * Alias Method: Change Level
  142.   #     show : Level up display flag
  143.   #--------------------------------------------------------------------------
  144.   alias :rbs_change_level :change_level
  145.   def change_level(level, show)
  146.     get_relative_values
  147.     rbs_change_level(level, show)
  148.     set_relative_values
  149.   end
  150. end
Advertisement
Add Comment
Please, Sign In to add comment