Advertisement
roninator2

Battle Overheal - State Required

Dec 17th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.38 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Battle Overheal                        ║  Version: 1.01     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║  HP goes above max in battle                  ║    18 Sep 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Make Hp go above MHP in battle                               ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║                                                                    ║
  20. # ║   Plug and play                                                    ║
  21. # ║   Effects are temporary                                            ║
  22. # ║                                                                    ║
  23. # ║   Updated to only work with a state inflicted                      ║
  24. # ║   Change the state id below                                        ║
  25. # ║                                                                    ║
  26. # ║   The state will be removed at the end of battle                   ║
  27. # ║                                                                    ║
  28. # ╚════════════════════════════════════════════════════════════════════╝
  29. # ╔════════════════════════════════════════════════════════════════════╗
  30. # ║ Updates:                                                           ║
  31. # ║ 1.00 - 18 Sep 2023 - Script finished                               ║
  32. # ║ 1.01 - 18 Sep 2023 - Added State needed to function                ║
  33. # ║                                                                    ║
  34. # ╚════════════════════════════════════════════════════════════════════╝
  35. # ╔════════════════════════════════════════════════════════════════════╗
  36. # ║ Credits and Thanks:                                                ║
  37. # ║   Roninator2                                                       ║
  38. # ║                                                                    ║
  39. # ╚════════════════════════════════════════════════════════════════════╝
  40. # ╔════════════════════════════════════════════════════════════════════╗
  41. # ║ Terms of use:                                                      ║
  42. # ║  Follow the original Authors terms of use where applicable         ║
  43. # ║    - When not made by me (Roninator2)                              ║
  44. # ║  Free for all uses in RPG Maker except nudity                      ║
  45. # ║  Anyone using this script in their project before these terms      ║
  46. # ║  were changed are allowed to use this script even if it conflicts  ║
  47. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  48. # ║  No part of this code can be used with AI programs or tools        ║
  49. # ║  Credit must be given                                              ║
  50. # ╚════════════════════════════════════════════════════════════════════╝
  51.  
  52. module R2_Overheal
  53.   State = 26 # change this number to the state you set up
  54. end
  55.  
  56. # ╔════════════════════════════════════════════════════════════════════╗
  57. # ║                      End of editable region                        ║
  58. # ╚════════════════════════════════════════════════════════════════════╝
  59.  
  60. module BattleManager
  61.   class << self
  62.     alias :pro_vic :process_victory
  63.     alias :pro_esp :process_escape
  64.     alias :pro_abt :process_abort
  65.   end
  66.  
  67.   #--------------------------------------------------------------------------
  68.   # * Victory Processing
  69.   #--------------------------------------------------------------------------
  70.   def self.process_victory
  71.     reset_hp
  72.     pro_vic
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # * Escape Processing
  76.   #--------------------------------------------------------------------------
  77.   def self.process_escape
  78.     reset_hp
  79.     pro_esp
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # * Abort Processing
  83.   #--------------------------------------------------------------------------
  84.   def self.process_abort
  85.     reset_hp
  86.     pro_abt
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # * Reset HP
  90.   #--------------------------------------------------------------------------
  91.   def self.reset_hp
  92.     $game_party.members.each do |act|
  93.       act.remove_state(R2_Overheal::State)
  94.       act.hp = act.mhp if act.hp > act.mhp
  95.     end
  96.   end
  97. end
  98.  
  99. class Game_BattlerBase
  100.   #--------------------------------------------------------------------------
  101.   # * Refresh
  102.   #--------------------------------------------------------------------------
  103.   def refresh
  104.     state_resist_set.each {|state_id| erase_state(state_id) }
  105.     if SceneManager.scene_is?(Scene_Battle)
  106.       if self.is_a?(Game_Actor)
  107.         if self.hp > self.mhp && self.state?(R2_Overheal::State)
  108.           @hp = [@hp, mhp].max
  109.         else
  110.           @hp = [[@hp, mhp].min, 0].max
  111.         end
  112.       else
  113.         @hp = [[@hp, mhp].min, 0].max
  114.       end
  115.     else
  116.       @hp = [[@hp, mhp].min, 0].max
  117.     end
  118.     @mp = [[@mp, mmp].min, 0].max
  119.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  120.   end
  121. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement