Advertisement
roninator2

Pre Skill Animation

Dec 11th, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.39 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Pre Skill Animation                    ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║  Show an animation before the skill           ║    09 Jun 2022     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Display additional animation on skills                       ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║    Add note tag to skills that will show an                        ║
  20. # ║    animation before the skill is done                              ║
  21. # ║       <pre anim: x>                                                ║
  22. # ║                                                                    ║
  23. # ║    Add note for changing the subject target                        ║
  24. # ║    of the animation                                                ║
  25. # ║       <pre target: user>                                           ║
  26. # ║     Options are user, ally or enemy                                ║
  27. # ╚════════════════════════════════════════════════════════════════════╝
  28. # ╔════════════════════════════════════════════════════════════════════╗
  29. # ║ Updates:                                                           ║
  30. # ║ 1.00 - 09 Jun 2022 - Initial publish                               ║
  31. # ╚════════════════════════════════════════════════════════════════════╝
  32. # ╔════════════════════════════════════════════════════════════════════╗
  33. # ║ Credits and Thanks:                                                ║
  34. # ║   Roninator2                                                       ║
  35. # ║                                                                    ║
  36. # ╚════════════════════════════════════════════════════════════════════╝
  37. # ╔════════════════════════════════════════════════════════════════════╗
  38. # ║ Terms of use:                                                      ║
  39. # ║  Follow the original Authors terms of use where applicable         ║
  40. # ║    - When not made by me (Roninator2)                              ║
  41. # ║  Free for all uses in RPG Maker except nudity                      ║
  42. # ║  Anyone using this script in their project before these terms      ║
  43. # ║  were changed are allowed to use this script even if it conflicts  ║
  44. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  45. # ║  No part of this code can be used with AI programs or tools        ║
  46. # ║  Credit must be given                                              ║
  47. # ╚════════════════════════════════════════════════════════════════════╝
  48.  
  49. module R2_Pre_Skill_Animation
  50.   PREANIM = /<pre anim:[ ](\d+)>/i
  51.   TARGET = /<pre target:[ ](\w*)>/i
  52. end
  53.  
  54. module DataManager
  55.   class <<self; alias load_database_pre_anim load_database; end
  56.   def self.load_database
  57.     load_database_pre_anim
  58.     load_notetags_pre_anim
  59.   end
  60.   def self.load_notetags_pre_anim
  61.     for obj in $data_skills
  62.       next if obj.nil?
  63.       obj.load_notetags_pre_anim
  64.     end
  65.   end
  66. end
  67.  
  68. class RPG::Skill < RPG::UsableItem
  69.   attr_accessor :pre_animation
  70.   attr_accessor :pre_target
  71.   def load_notetags_pre_anim
  72.     @pre_animation = 0
  73.     @pre_target = 'user'
  74.     self.note.split(/[\r\n]+/).each { |line|
  75.       case line
  76.       when R2_Pre_Skill_Animation::PREANIM
  77.         @pre_animation = $1.to_i
  78.       when R2_Pre_Skill_Animation::TARGET
  79.         @pre_target = $1.to_s.downcase
  80.       end
  81.     }
  82.   end
  83. end
  84. class Scene_Battle
  85.   def use_item
  86.     item = @subject.current_action.item
  87.     @log_window.display_use_item(@subject, item)
  88.     if item.pre_animation != 0
  89.       pre_target = item.pre_target
  90.       total = []
  91.       target = @subject.current_action.make_targets.compact
  92.       clear = target.size - 1
  93.       if clear > 1
  94.         for i in 1..clear
  95.           target[i].pop
  96.         end
  97.       end
  98.       case pre_target
  99.       when 'user'
  100.         target[0] = @subject
  101.       when 'ally'
  102.         target[0] = @subject.friends_unit.random_target
  103.       when 'enemy'
  104.         target[0] = @subject.opponents_unit.random_target
  105.       end
  106.       show_animation(target, item.pre_animation)
  107.     end
  108.     @subject.use_item(item)
  109.     refresh_status
  110.     targets = @subject.current_action.make_targets.compact
  111.     show_animation(targets, item.animation_id)
  112.     targets.each {|target| item.repeats.times { invoke_item(target, item) } }
  113.   end
  114. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement