Advertisement
roninator2

Skill applies a state to the user on successful hit

Dec 10th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.50 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Skills applies a user state            ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║ Add a state to the user on skill hit          ║    09 Sep 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Allow states to be applied through skills upon hit           ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Use <self_state: id, X> on skill that will add a state           ║
  20. # ║   The skill used will then add the state (id) when used            ║
  21. # ║   The X is the percentage of change that it will work.             ║
  22. # ╚════════════════════════════════════════════════════════════════════╝
  23. # ╔════════════════════════════════════════════════════════════════════╗
  24. # ║ Updates:                                                           ║
  25. # ║ 1.00 - 09 Sep 2023 - Script finished                               ║
  26. # ║                                                                    ║
  27. # ╚════════════════════════════════════════════════════════════════════╝
  28. # ╔════════════════════════════════════════════════════════════════════╗
  29. # ║ Credits and Thanks:                                                ║
  30. # ║   Roninator2                                                       ║
  31. # ║                                                                    ║
  32. # ╚════════════════════════════════════════════════════════════════════╝
  33. # ╔════════════════════════════════════════════════════════════════════╗
  34. # ║ Terms of use:                                                      ║
  35. # ║  Follow the original Authors terms of use where applicable         ║
  36. # ║    - When not made by me (Roninator2)                              ║
  37. # ║  Free for all uses in RPG Maker except nudity                      ║
  38. # ║  Anyone using this script in their project before these terms      ║
  39. # ║  were changed are allowed to use this script even if it conflicts  ║
  40. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  41. # ║  No part of this code can be used with AI programs or tools        ║
  42. # ║  Credit must be given                                              ║
  43. # ╚════════════════════════════════════════════════════════════════════╝
  44.  
  45. module R2_Skill_State_Apply_Self
  46.   Self_State = /<self[ _-]state:[ _-](\d+),[ -_](\d+*.\d+*)>/i
  47. end
  48.  
  49. module DataManager
  50.   class <<self
  51.     alias :load_database_original_r2_skill_state_self_apply :load_database
  52.   end
  53.   def self.load_database
  54.     load_database_original_r2_skill_state_self_apply
  55.     load_r2_skill_state_self_apply
  56.   end
  57.   def self.load_r2_skill_state_self_apply
  58.     for obj in $data_skills
  59.       next if obj.nil?
  60.       obj.load_r2_skill_state_self_apply
  61.     end
  62.   end
  63. end
  64.  
  65. class RPG::Skill
  66.   attr_accessor :sass
  67.   attr_accessor :sassc
  68.  
  69.   def load_r2_skill_state_self_apply
  70.     @sass = 0 # skill apply self state
  71.     @sassc = 0 # skill apply self state chance
  72.     self.note.split(/[\r\n]+/).each { |line|
  73.       case line
  74.       when R2_Skill_State_Apply_Self::Self_State
  75.         @sass = $1.to_i
  76.         @sassc = $2.to_f
  77.       end
  78.     }
  79.   end
  80. end
  81.  
  82. class Game_BattlerBase
  83.   alias :r2_pay_skill_cost_self_state_apply   :pay_skill_cost
  84.   def pay_skill_cost(skill)
  85.     r2_pay_skill_cost_self_state_apply(skill)
  86.     if skill.sass != (0 || nil)
  87.       rdnum = ((rand(1000) + 1) / 10).to_f
  88.       self.add_state(skill.sass) if rdnum <= skill.sassc
  89.     end
  90.   end
  91. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement