Advertisement
roninator2

Spell Charge System Battle

Nov 17th, 2024 (edited)
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.83 KB | Gaming | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Spell Charge System Battle             ║  Version: 1.01     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║  Battle System for Spell Charges              ║    14 Feb 2024     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Spell Charge System Base                                 ║
  11. # ╚════════════════════════════════════════════════════════════════════╝
  12. # ╔════════════════════════════════════════════════════════════════════╗
  13. # ║ Brief Description:                                                 ║
  14. # ║ Use spell charges in battle                                        ║
  15. # ╚════════════════════════════════════════════════════════════════════╝
  16. # ╔════════════════════════════════════════════════════════════════════╗
  17. # ║ Instructions:                                                      ║
  18. # ║   Configure settings Below                                         ║
  19. # ║                                                                    ║
  20. # ╚════════════════════════════════════════════════════════════════════╝
  21. # ╔════════════════════════════════════════════════════════════════════╗
  22. # ║ Updates:                                                           ║
  23. # ║ 1.00 - 14 Feb 2024 - Script finished                               ║
  24. # ║ 1.01 - 29 Jul 2024 - fixed bug                                     ║
  25. # ╚════════════════════════════════════════════════════════════════════╝
  26. # ╔════════════════════════════════════════════════════════════════════╗
  27. # ║ Credits and Thanks:                                                ║
  28. # ║   Roninator2                                                       ║
  29. # ║                                                                    ║
  30. # ╚════════════════════════════════════════════════════════════════════╝
  31. # ╔════════════════════════════════════════════════════════════════════╗
  32. # ║ Terms of use:                                                      ║
  33. # ║  Follow the original Authors terms of use where applicable         ║
  34. # ║    - When not made by me (Roninator2)                              ║
  35. # ║  Free for all uses in RPG Maker except nudity                      ║
  36. # ║  Anyone using this script in their project before these terms      ║
  37. # ║  were changed are allowed to use this script even if it conflicts  ║
  38. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  39. # ║  No part of this code can be used with AI programs or tools        ║
  40. # ║  Credit must be given                                              ║
  41. # ╚════════════════════════════════════════════════════════════════════╝
  42.  
  43. #==============================================================================
  44. # ** Vocab
  45. #==============================================================================
  46. module Vocab
  47.  
  48.   # Spell Battle Screen - Actor Command
  49.   Battle_Spell = "Magic"
  50.  
  51. end
  52.  
  53. # ╔══════════════════════════════════════════════════════════╗
  54. # ║              End of Editable section                     ║
  55. # ╚══════════════════════════════════════════════════════════╝
  56.  
  57. #==============================================================================
  58. # ** Window_ActorCommand
  59. #==============================================================================
  60.  
  61. class Window_ActorCommand < Window_Command
  62.   #--------------------------------------------------------------------------
  63.   # * Create Command List
  64.   #--------------------------------------------------------------------------
  65.   def make_command_list
  66.     return unless @actor
  67.     add_attack_command
  68.     add_spell_command
  69.     add_skill_commands if Spell_Charge::Options::INCLUDE_SKILLS
  70.     add_guard_command
  71.     add_item_command
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # * Add Magic Command to List
  75.   #--------------------------------------------------------------------------
  76.   def add_spell_command
  77.     add_command(Vocab::Battle_Spell, :spell)
  78.   end
  79. end
  80.  
  81. #==============================================================================
  82. # ** Window_BattleSpell
  83. #==============================================================================
  84.  
  85. class Window_BattleSpell < Window_Spell_List
  86.   #--------------------------------------------------------------------------
  87.   # * Object Initialization
  88.   #     info_viewport : Viewport for displaying information
  89.   #--------------------------------------------------------------------------
  90.   def initialize(help_window, info_viewport)
  91.     y = help_window.height
  92.     super(0, y, Graphics.width, info_viewport.rect.y - y)
  93.     self.visible = false
  94.     @help_window = help_window
  95.     @info_viewport = info_viewport
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # * Show Window
  99.   #--------------------------------------------------------------------------
  100.   def show
  101.     select_last
  102.     @help_window.show
  103.     super
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # * Hide Window
  107.   #--------------------------------------------------------------------------
  108.   def hide
  109.     @help_window.hide
  110.     super
  111.   end
  112. end
  113.  
  114. #==============================================================================
  115. # ** Scene_Battle
  116. #==============================================================================
  117.  
  118. class Scene_Battle < Scene_Base
  119.   #--------------------------------------------------------------------------
  120.   # * Create All Windows
  121.   #--------------------------------------------------------------------------
  122.   def create_all_windows
  123.     create_message_window
  124.     create_scroll_text_window
  125.     create_log_window
  126.     create_status_window
  127.     create_info_viewport
  128.     create_party_command_window
  129.     create_actor_command_window
  130.     create_help_window
  131.     create_skill_window if Spell_Charge::Options::INCLUDE_SKILLS
  132.     create_spell_window
  133.     create_item_window
  134.     create_actor_window
  135.     create_enemy_window
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # * Create Actor Commands Window
  139.   #--------------------------------------------------------------------------
  140.   alias :r2_battle_spell_actor_command_window   :create_actor_command_window
  141.   def create_actor_command_window
  142.     r2_battle_spell_actor_command_window
  143.     @actor_command_window.set_handler(:spell,  method(:command_spell))
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # * Create Spell Window
  147.   #--------------------------------------------------------------------------
  148.   def create_spell_window
  149.     @spell_window = Window_BattleSpell.new(@help_window, @info_viewport)
  150.     @spell_window.set_handler(:ok,     method(:on_spell_ok))
  151.     @spell_window.set_handler(:cancel, method(:on_spell_cancel))
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # * Actor [OK]
  155.   #--------------------------------------------------------------------------
  156.   def on_actor_ok
  157.     BattleManager.actor.input.target_index = @actor_window.index
  158.     @actor_window.hide
  159.     @skill_window.hide if @skill_window
  160.     @spell_window.hide if @spell_window
  161.     @item_window.hide
  162.     next_command
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # * Actor [Cancel]
  166.   #--------------------------------------------------------------------------
  167.   def on_actor_cancel
  168.     @actor_window.hide
  169.     case @actor_command_window.current_symbol
  170.     when :spell
  171.       on_spell_cancel
  172.     when :item
  173.       @item_window.activate
  174.     end
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # * Enemy [OK]
  178.   #--------------------------------------------------------------------------
  179.   def on_enemy_ok
  180.     BattleManager.actor.input.target_index = @enemy_window.enemy.index
  181.     @enemy_window.hide
  182.     @skill_window.hide if @skill_window
  183.     @spell_window.hide if @spell_window
  184.     @item_window.hide
  185.     next_command
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # * [Spell] Command
  189.   #--------------------------------------------------------------------------
  190.   def command_spell
  191.     @spell_window.actor = BattleManager.actor
  192.     @spell_window.refresh
  193.     @spell_window.show.activate
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # * Spell [OK]
  197.   #--------------------------------------------------------------------------
  198.   def on_spell_ok
  199.     @spell = @spell_window.item
  200.     BattleManager.actor.input.set_skill(@spell.id)
  201.     BattleManager.actor.last_skill.object = @spell
  202.     if !@spell.need_selection?
  203.       @spell_window.hide
  204.       next_command
  205.     elsif @spell.for_opponent?
  206.       select_enemy_selection
  207.     else
  208.       select_actor_selection
  209.     end
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # * Spell [Cancel]
  213.   #--------------------------------------------------------------------------
  214.   def on_spell_cancel
  215.     @spell_window.hide
  216.     @actor_command_window.activate
  217.   end
  218. end
  219.  
  220.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement