Advertisement
roninator2

Change MP Colour by State

Dec 17th, 2024
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 10.60 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Change MP Bar Colour                   ║  Version: 1.1      ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║ Display different colours by state            ║    13 May 2021     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║   Displays the MP bar in another colour when the                   ║
  16. # ║   battler is inflicted with a state note tagged.                   ║
  17. # ╚════════════════════════════════════════════════════════════════════╝
  18. # ╔════════════════════════════════════════════════════════════════════╗
  19. # ║ Instructions:                                                      ║
  20. # ║ Place the following note tag on the state that will                ║
  21. # ║ change the MP bar colour                                           ║
  22. # ║ <state color: 0, 0>                                                ║
  23. # ║ This will make the MP bar show as white                            ║
  24. # ║ The numbers are from the VX Ace colour wheel                       ║
  25. # ║                                                                    ║
  26. # ║ The first number is for the state of the bar,                      ║
  27. # ║ The second number is for the end of the bar.                       ║
  28. # ║ By default the mp bar colours are 22, 23                           ║
  29. # ║                                                                    ║
  30. # ║  0 - white,         1 - medium blue,   2 - red-orange              ║
  31. # ║  3 - light green,   4 - light blue,    5 - light purple            ║
  32. # ║  6 - yellow-orange, 7 - medium grey,   8 - light grey              ║
  33. # ║  9 - deep blue.    10 - red,          11 - deep green              ║
  34. # ║ 12 - blue,         13 - purple-blue,  14 - orange-yellow           ║
  35. # ║ 15 - black,        16 - blue-purple,  17 - yellow                  ║
  36. # ║ 18 - deep red,     19 - dark grey,    20 - orange                  ║
  37. # ║ 21 - light orange, 22 - dark blue,    23 - bright blue             ║
  38. # ║ 24 - bright green, 25 - brown,        26 - blue-purple-red         ║
  39. # ║ 27 - pink,         28 - deep green,   29 - green                   ║
  40. # ║ 30 - deep purple,  31 - purple                                     ║
  41. # ║                                                                    ║
  42. # ║ The second value to use is optional                                ║
  43. # ║    <state color order: 3>                                          ║
  44. # ║ This will make the priority of this state colour change            ║
  45. # ║ take third priority. So if state 2 is applied and is               ║
  46. # ║ priority 4, then state 6 is applied and is priority 3,             ║
  47. # ║ state 2 will stay the colour and it will not change to             ║
  48. # ║ state 6. Without this state 6 would take over and apply            ║
  49. # ║ it's colour change as it is further down in order.                 ║
  50. # ║ NOTE*                                                              ║
  51. # ║ If you use the second note tag in only a few states,               ║
  52. # ║ you may not get the desired results.                               ║
  53. # ║                                                                    ║
  54. # ║ This was as best my eye and monitor could see the colours          ║
  55. # ║ You can search for VX ACE color codes for a second look.           ║
  56. # ╚════════════════════════════════════════════════════════════════════╝
  57. # ╔════════════════════════════════════════════════════════════════════╗
  58. # ║ Updates:                                                           ║
  59. # ║ 1.00 - 13 May 2021 - Script finished                               ║
  60. # ║                                                                    ║
  61. # ╚════════════════════════════════════════════════════════════════════╝
  62. # ╔════════════════════════════════════════════════════════════════════╗
  63. # ║ Credits and Thanks:                                                ║
  64. # ║   Roninator2                                                       ║
  65. # ║                                                                    ║
  66. # ╚════════════════════════════════════════════════════════════════════╝
  67. # ╔════════════════════════════════════════════════════════════════════╗
  68. # ║ Terms of use:                                                      ║
  69. # ║  Follow the original Authors terms of use where applicable         ║
  70. # ║    - When not made by me (Roninator2)                              ║
  71. # ║  Free for all uses in RPG Maker except nudity                      ║
  72. # ║  Anyone using this script in their project before these terms      ║
  73. # ║  were changed are allowed to use this script even if it conflicts  ║
  74. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  75. # ║  No part of this code can be used with AI programs or tools        ║
  76. # ║  Credit must be given                                              ║
  77. # ╚════════════════════════════════════════════════════════════════════╝
  78.  
  79. module R2_MP_Colour_Change
  80.   MP_STATE_COLOUR = /<state[-_ ]color:[ ](\d+),[ ](\d+)>/i
  81.   MP_COLOUR_ORDER = /<state[-_ ]color[-_ ]order:[ ](\d+)>/i
  82. end
  83. # Color.new(255, 255, 255, 255)
  84. module DataManager
  85.  
  86.   class <<self; alias load_database_original_state_colour load_database; end
  87.   def self.load_database
  88.     load_database_original_state_colour
  89.     load_notetags_mp_colour
  90.   end
  91.  
  92.   def self.load_notetags_mp_colour
  93.     for state in $data_states
  94.       next if state.nil?
  95.       state.load_notetags_mp_colour
  96.     end
  97.   end
  98.  
  99. end # DataManager
  100.  
  101. class RPG::State < RPG::BaseItem
  102.  
  103.   #--------------------------------------------------------------------------
  104.   # public instance variables
  105.   #--------------------------------------------------------------------------
  106.   attr_accessor :state_mp_colour
  107.   attr_accessor :state_mp_colour_order
  108.  
  109.   #--------------------------------------------------------------------------
  110.   # common cache: load_notetags_sani
  111.   #--------------------------------------------------------------------------
  112.   def load_notetags_mp_colour
  113.     @state_mp_colour = []
  114.     #---
  115.     self.note.split(/[\r\n]+/).each { |line|
  116.       case line
  117.       #---
  118.       when R2_MP_Colour_Change::MP_STATE_COLOUR
  119.         @state_mp_colour = [$1.to_i, $2.to_i]
  120.       when R2_MP_Colour_Change::MP_COLOUR_ORDER
  121.         @state_mp_colour_order = $1.to_i
  122.       end
  123.     } # self.note.split
  124.     #---
  125.   end
  126.  
  127. end # RPG::State
  128.  
  129. class Window_Base < Window
  130.   def draw_actor_mp(actor, x, y, width = 124)
  131.     @colour_order = 0
  132.     @previous_colour = []
  133.     draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
  134.     change_color(system_color)
  135.     draw_text(x, y, 30, line_height, Vocab::mp_a)
  136.     actor.states.each do |state|
  137.       if !state.state_mp_colour.empty?
  138.         if !state.state_mp_colour_order.nil? && @colour_order < state.state_mp_colour_order
  139.           draw_gauge(x, y, width, actor.mp_rate, text_color(state.state_mp_colour[0]), text_color(state.state_mp_colour[1]))
  140.           change_color(text_color(state.state_mp_colour[1]))
  141.           draw_text(x, y, 30, line_height, Vocab::mp_a)
  142.         else
  143.           state.state_mp_colour = @previous_colour if !@previous_colour.empty?
  144.           draw_gauge(x, y, width, actor.mp_rate, text_color(state.state_mp_colour[0]), text_color(state.state_mp_colour[1]))
  145.           change_color(text_color(state.state_mp_colour[1]))
  146.           draw_text(x, y, 30, line_height, Vocab::mp_a)
  147.         end
  148.       end
  149.       @colour_order = state.state_mp_colour_order
  150.       @previous_colour = state.state_mp_colour
  151.     end
  152.     draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
  153.       mp_color(actor), normal_color)
  154.   end
  155. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement