#==============================================================================| # ** DoubleX RMVXA Color Addon v1.02b to YSA Battle System: Classical ATB | #------------------------------------------------------------------------------| # * Changelog | # v1.02b(GMT 0700 3-12-2014): | # - Fixed atb bar colors not updating bug | # v1.02a(GMT 1200 29-7-2014): | # - Lets users set enemy back gauge rgba values | # v1.01a(GMT 0500 10-3-2014): | # - Added <custom catb rgba: R1, G1, B1, A1, R2, G2, B2, A2> notetag | # - Added ways to set rgba values of the default atb and charge bar colors | # v1.00a(GMT 1100 5-2-2014): | # - 1st version of this script finished | #------------------------------------------------------------------------------| # * Author | # DoubleX: | # - This script | # Yami: | # - YSA Battle System: Classical ATB | #------------------------------------------------------------------------------| # * Terms of use | # Same as that of YSA Battle System: Classical ATB except that you must also| # give Yami credit(you should do this anyway) if you give DoubleX or his | # alias credit | #------------------------------------------------------------------------------| # * Prerequisites | # Scripts: | # - DoubleX RMVXA Bug Fixes to YSA Battle System: Classical ATB | # Knowledge: | # - That of using the script YSA Battle System: Classical ATB | #------------------------------------------------------------------------------| # * Functions | # - Changes charge and atb bar color of specific skills or items and states | #------------------------------------------------------------------------------| # * Manual | # To use this script, open the script editor and put this script into an | # open slot between the script | # DoubleX RMVXA Bug Fixes to YSA Battle System: Classical ATB and ▼ Main. | # Save to take effect. | #------------------------------------------------------------------------------| # * Compatibility | # - Same as that of YSA Battle System: Classical ATB | #==============================================================================| ($imported ||= {})["DoubleX RMVXA Color Addon to YSA-CATB"] = true #==============================================================================| # ** You only need to edit this part as it's about what this script does | #------------------------------------------------------------------------------| #------------------------------------------------------------------------------| # * Skill/Item/State Notetags:(skill/item/state notebox in the database) | # - (v1.01a+)<custom catb rgba: R1, G1, B1, A1, R2, G2, B2, A2> | # Sets charge and atb bar colors of specific skills or items and states | # respectively as color 1 and color 2 with rgba values R1, G1, B1 and A1 | # and R2, G2, B2 and A2 respectively. | # - <custom catb color: COLOR1, COLOR2> | # Sets charge and atb bar colors of specific skills or items and states | # respectively as COLOR1 and COLOR2. | #------------------------------------------------------------------------------| module DoubleX_RMVXA module YSA_CATB_Color_Addon # (v1.01a+)Use rgba values instead of text colors for default back, atb and # chargem bars respectively, default = false, false, false ENEMY_BACK_RGBA = false ATB_RGBA = false CHARGE_RGBA = false # if ENEMY_BACK_RGBA # (v1.02a+)Sets the rgba values of back bar colors # default = Color.new(0, 0, 0, 0), Color.new(0, 0, 0, 0) ENEMY_BACK_COLOR1 = Color.new(0, 0, 0, 0) ENEMY_BACK_COLOR2 = Color.new(0, 0, 0, 0) end # ENEMY_BACK_RGBA if ATB_RGBA # (v1.01a+)Sets the rgba values of atb bar colors # default = Color.new(0, 0, 0, 0), Color.new(0, 0, 0, 0) ATB_COLOR1 = Color.new(0, 0, 0, 0) ATB_COLOR2 = Color.new(0, 0, 0, 0) end # ATB_RGBA if CHARGE_RGBA # (v1.01a+)Sets the rgba values of charge bar colors # default = Color.new(0, 0, 0, 0), Color.new(0, 0, 0, 0) CHARGE_COLOR1 = Color.new(0, 0, 0, 0) CHARGE_COLOR2 = Color.new(0, 0, 0, 0) end # CHARGE_RGBA end # YSA_CATB_Color_Addon end # DoubleX_RMVXA #==============================================================================| #==============================================================================| # ** You need not edit this part as it's about how this script works | #------------------------------------------------------------------------------| if $imported["YEA-BattleEngine"] && $imported["YSA-CATB"] && $imported["DoubleX RMVXA Bug Fixes to YSA-CATB"] class << DataManager #----------------------------------------------------------------------------| # Alias method: load_database | #----------------------------------------------------------------------------| alias load_database_catb_color_addon load_database def load_database load_database_catb_color_addon # This part is added by this script to load color notetags load_notetags_catb_color_addon # end # load_database #----------------------------------------------------------------------------| # New method: load_notetags_catb_color_addon | #----------------------------------------------------------------------------| def load_notetags_catb_color_addon [$data_skills, $data_items, $data_states].each { |data| data.each { |obj| obj.load_notetags_catb_color_addon if obj } } end # load_notetags_catb_color_addon end # DataManager class RPG::BaseItem #----------------------------------------------------------------------------| # New public instance variables | #----------------------------------------------------------------------------| attr_accessor :catb_color1 attr_accessor :catb_color2 attr_accessor :catb_color attr_accessor :catb_rgba1 attr_accessor :catb_rgba2 attr_accessor :catb_rgba #----------------------------------------------------------------------------| # New common cache: load_notetags_catb_color_addon | #----------------------------------------------------------------------------| def load_notetags_catb_color_addon @catb_color1 = @catb_color2 = nil @catb_rgba1, @catb_rgba2 = [], [] @catb_color = @catb_rgba = false self.note.split(/[\r\n]+/).each { |line| case line when /<(?:CUSTOM_CATB_COLOR|custom catb color):[ ](\d+(?:\s*,\s*\d+)*)>/i $1.scan(/\d+/).each { |num| @catb_color2 = num.to_i if num.to_i >= 0 && @catb_color1 && !@catb_color2 @catb_color1 = num.to_i if num.to_i >= 0 && !@catb_color1 } @catb_color ||= @catb_color1 && @catb_color2 next when /<(?:CUSTOM_CATB_RGBA|custom catb rgba):[ ](\d+(?:\s*,\s*\d+)*)>/i $1.scan(/\d+/).each_with_index { |num, i| @catb_rgba1.push(num.to_i % 256) if i < 4 @catb_rgba2.push(num.to_i % 256) if i >= 4 && i < 8 } @catb_rgba ||= @catb_rgba1.size == 4 && @catb_rgba2.size == 4 @catb_color = false if @catb_rgba next end } end # load_notetags_catb_color_addon end # RPG::BaseItem class Game_Battler < Game_BattlerBase #----------------------------------------------------------------------------| # New public instance variables | #----------------------------------------------------------------------------| attr_reader :custom_catb_item_color attr_reader :custom_catb_item_color1 attr_reader :custom_catb_item_color2 attr_reader :custom_catb_state_color attr_reader :custom_catb_state_color1 attr_reader :custom_catb_state_color2 #----------------------------------------------------------------------------| # New method: custom_catb_colors | #----------------------------------------------------------------------------| def custom_catb_colors custom_catb_item_colors custom_catb_state_colors end # custom_catb_colors #----------------------------------------------------------------------------| # New method: custom_catb_item_colors | #----------------------------------------------------------------------------| def custom_catb_item_colors if @custom_catb_item_color || @ct_catb_value <= 0 || !current_action || !current_action.item return @custom_catb_item_color = @custom_catb_item_color && @ct_catb_value > 0 && current_action && current_action.item && (current_action.item.catb_color || current_action.item.catb_rgba) end if current_action.item.catb_color @custom_catb_item_color1 = current_action.item.catb_color1 @custom_catb_item_color2 = current_action.item.catb_color2 elsif current_action.item.catb_rgba @custom_catb_item_color1 = current_action.item.catb_rgba1 @custom_catb_item_color2 = current_action.item.catb_rgba2 end @custom_catb_item_color = current_action.item.catb_color || current_action.item.catb_rgba end # custom_catb_item_colors #----------------------------------------------------------------------------| # New method: custom_catb_state_colors | #----------------------------------------------------------------------------| def custom_catb_state_colors return if @state_temp_catb && @state_temp_catb == states @state_temp_catb = states @custom_catb_state_color = false @state_temp_catb.each { |state| next if !state.catb_color && !state.catb_rgba if state.catb_color @custom_catb_state_color1 = state.catb_color1 @custom_catb_state_color2 = state.catb_color2 else @custom_catb_state_color1 = state.catb_rgba1 @custom_catb_state_color2 = state.catb_rgba2 end @custom_catb_state_color = true } end # custom_catb_state_colors end # Game_Battler class Window_Base < Window if DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_RGBA #----------------------------------------------------------------------------| # (v1.01a+)Rewrite method: catb_color1 | #----------------------------------------------------------------------------| def catb_color1 DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR1 end # catb_color1 #----------------------------------------------------------------------------| # (v1.01a+)Rewrite method: catb_color2 | #----------------------------------------------------------------------------| def catb_color2 DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR2 end # catb_color2 end # if DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_RGBA if DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_RGBA #----------------------------------------------------------------------------| # (v1.01a+)Rewrite method: charge_color1 | #----------------------------------------------------------------------------| def charge_color1 DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR1 end # charge_color1 #----------------------------------------------------------------------------| # (v1.01a+)Rewrite method: charge_color2 | #----------------------------------------------------------------------------| def charge_color2 DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR2 end # charge_color2 end # if DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_RGBA end # Window_Base class Window_BattleStatus < Window_Selectable #----------------------------------------------------------------------------| # Rewrite method: draw_actor_catb | #----------------------------------------------------------------------------| def draw_actor_catb(actor, dx, dy, width = 124) # This part is rewritten by this script to change atb and charge bar colors actor.custom_catb_colors if actor.custom_catb_state_color color1 = actor.custom_catb_state_color1.is_a?(Numeric) ? text_color(actor.custom_catb_state_color1) : Color.new(actor.custom_catb_state_color1[0], actor.custom_catb_state_color1[1], actor.custom_catb_state_color1[2], actor.custom_catb_state_color1[3]) color2 = actor.custom_catb_state_color2.is_a?(Numeric) ? text_color(actor.custom_catb_state_color2) : Color.new(actor.custom_catb_state_color2[0], actor.custom_catb_state_color2[1], actor.custom_catb_state_color2[2], actor.custom_catb_state_color2[3]) else color1, color2 = catb_color1, catb_color2 end draw_gauge(dx, dy, width, actor.catb_filled_rate, color1, color2) if actor.catb_ct_filled_rate > 0 if actor.custom_catb_item_color color1 = actor.custom_catb_item_color1.is_a?(Numeric) ? text_color(actor.custom_catb_item_color1) : Color.new(actor.custom_catb_item_color1[0], actor.custom_catb_item_color1[1], actor.custom_catb_item_color1[2], actor.custom_catb_item_color1[3]) color2 = actor.custom_catb_item_color2.is_a?(Numeric) ? text_color(actor.custom_catb_item_color2) : Color.new(actor.custom_catb_item_color2[0], actor.custom_catb_item_color2[1], actor.custom_catb_item_color2[2], actor.custom_catb_item_color2[3]) else color1, color2 = charge_color1, charge_color2 end draw_gauge(dx, dy, width, actor.catb_ct_filled_rate, color1, color2) end # # This part is added by this script to be compatible with DoubleX RMVXA Cooldown Addon to YSA Battle System: Classical ATB if $imported["DoubleX RMVXA Cooldown Addon to YSA-CATB"] && actor.catb_cd_filled_rate > 0 draw_gauge(dx, dy, width, actor.catb_cd_filled_rate, cooldown_color1, actor.max_catb_value? ? catb_color2 : cooldown_color2) end # change_color(system_color) cy = (Font.default_size - contents.font.size) / 2 + 1 draw_text(dx+2, dy+cy, 30, line_height, YSA::CATB::ATB_PHRASE) end # draw_actor_catb end # Window_BattleStatus class Enemy_CATB_Gauge_Viewport < Viewport #----------------------------------------------------------------------------| # (v1.02a+)Rewrite method: create_gauge_sprites | #----------------------------------------------------------------------------| def create_gauge_sprites @sprite = Plane.new(self) dw = self.rect.width * 2 @sprite.bitmap = Bitmap.new(dw, self.rect.height) case @type # This part is rewritten by this script to use rgba values according to user settings when :back back_rgba = DoubleX_RMVXA::YSA_CATB_Color_Addon::ENEMY_BACK_RGBA color1 = back_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ENEMY_BACK_COLOR1 : Colour.text_colour(YSA::CATB::ENEMY_BACKGAUGE_COLOUR) color2 = back_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ENEMY_BACK_COLOR2 : Colour.text_colour(YSA::CATB::ENEMY_BACKGAUGE_COLOUR) when :catb atb_rgba = DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_RGBA color1 = atb_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR1 : Colour.text_colour(YSA::CATB::ENEMY_ATB_GAUGE_COLOUR1) color2 = atb_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR2 : Colour.text_colour(YSA::CATB::ENEMY_ATB_GAUGE_COLOUR2) when :catbct charge_rgba = DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_RGBA color1 = charge_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR1 : Colour.text_colour(YSA::CATB::CHARGE_COLOR1) color2 = charge_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR2 : Colour.text_colour(YSA::CATB::CHARGE_COLOR2) # when :catbcd if $imported["DoubleX RMVXA Cooldown Addon to YSA-CATB"] color1 = DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR1.is_a?(Numeric) ? Colour.text_colour(DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR1) : DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR1 color2 = DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR2.is_a?(Numeric) ? Colour.text_colour(DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR2) : DoubleX_RMVXA::YSA_CATB_Cooldown_Addon::COOLDOWN_COLOR2 end when :percent if $imported["DoubleX RMVXA Percentage Addon to YSA-CATB"] color1, color2 = Color.new(0, 0, 0, 0), Color.new(0, 0, 0, 0) end end dx, dy, dw, dh = 0, 0, self.rect.width, self.rect.height self.rect.width = target_gauge_width if ![:back, :percent].include?(@type) set_percentage_font if @type == :percent && $imported["DoubleX RMVXA Percentage Addon to YSA-CATB"] @gauge_width = target_gauge_width @sprite.bitmap.gradient_fill_rect(dx, dy, dw, dh, color1, color2) @sprite.bitmap.gradient_fill_rect(dw, dy, dw, dh, color2, color1) end # create_gauge_sprites #----------------------------------------------------------------------------| # Alias method: update | #----------------------------------------------------------------------------| alias update_color_addon update def update update_color_addon # This part is rewritten by this script to change atb and charge bar colors @battler.custom_catb_colors update_color if [:catb, :catbct].include?(@type) # end # update #----------------------------------------------------------------------------| # New method: update_color | #----------------------------------------------------------------------------| def update_color case @type when :catb if @battler.custom_catb_state_color color1 = @battler.custom_catb_state_color1.is_a?(Numeric) ? Colour.text_colour(@battler.custom_catb_state_color1) : Color.new(@battler.custom_catb_state_color1[0], @battler.custom_catb_state_color1[1], @battler.custom_catb_state_color1[2], @battler.custom_catb_state_color1[3]) color2 = @battler.custom_catb_state_color2.is_a?(Numeric) ? Colour.text_colour(@battler.custom_catb_state_color2) : Color.new(@battler.custom_catb_state_color2[0], @battler.custom_catb_state_color2[1], @battler.custom_catb_state_color2[2], @battler.custom_catb_state_color2[3]) else atb_rgba = DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_RGBA color1 = atb_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR1 : Colour.text_colour(YSA::CATB::ENEMY_ATB_GAUGE_COLOUR1) color2 = atb_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::ATB_COLOR2 : Colour.text_colour(YSA::CATB::ENEMY_ATB_GAUGE_COLOUR2) end when :catbct if @battler.custom_catb_item_color color1 = @battler.custom_catb_item_color1.is_a?(Numeric) ? Colour.text_colour(@battler.custom_catb_item_color1) : Color.new(@battler.custom_catb_item_color1[0], @battler.custom_catb_item_color1[1], @battler.custom_catb_item_color1[2], @battler.custom_catb_item_color1[3]) color2 = @battler.custom_catb_item_color2.is_a?(Numeric) ? Colour.text_colour(@battler.custom_catb_item_color2) : Color.new(@battler.custom_catb_item_color2[0], @battler.custom_catb_item_color2[1], @battler.custom_catb_item_color2[2], @battler.custom_catb_item_color2[3]) else charge_rgba = DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_RGBA color1 = charge_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR1 : Colour.text_colour(YSA::CATB::CHARGE_COLOR1) color2 = charge_rgba ? DoubleX_RMVXA::YSA_CATB_Color_Addon::CHARGE_COLOR2 : Colour.text_colour(YSA::CATB::CHARGE_COLOR2) end end dx, dy, dw, dh = 0, 0, self.rect.width, self.rect.height @sprite.bitmap.gradient_fill_rect(dx, dy, dw, dh, color1, color2) @sprite.bitmap.gradient_fill_rect(dw, dy, dw, dh, color2, color1) end # update_color end # Enemy_CATB_Gauge_Viewport #------------------------------------------------------------------------------| end # if $imported["YEA-BattleEngine"] && $imported["YSA-CATB"] && $imported["DoubleX RMVXA Bug Fixes to YSA-CATB"] #==============================================================================|