class Game_Player < Game_Character
  attr_reader :cast_color
  def rest_cast_time
    @rest_cast_time = 0 unless @rest_cast_time
    @rest_cast_time
  end  
  
  def rest_cast_time=(val) 
    @rest_cast_time = val
  end    
  
  def cast_time
    @cast_time = 0 unless @cast_time
    @cast_time
  end  
  
  def cast_time=(val) 
    @cast_time = val
  end      
  def cast_id
    @cast_id = 0 unless @cast_id
    @cast_id
  end  
  alias takocastinitialize initialize
  def initialize
    takocastinitialize
    @rest_cast_time = 0
    @cast_time = 0
    @cast_id = 0
    set_cast_color_default
  end  
  
  def cast_id=(val) 
    @cast_id = val
  end     
  alias takocastupdate update
  def update
    rest_cast_time
    update_cast_time
    takocastupdate
  end  
  def update_cast_time
    return unless @cast_time > 0
    
    if (@rest_cast_time > 0)
      @rest_cast_time -= 1
    else 
      exe_event_at_cast_time
    end  
    
  end  
  
  def set_cast_time(t)
    @rest_cast_time = t
    @cast_time = t
  end
  
  def set_cast_event(id)
    cast_obj = $data_cast_break[id]
    @cast_id = cast_obj.common_event
    set_cast_time(cast_obj.cast_time)
    
  end  
  
  def exe_event_at_cast_time
    $game_temp.reserve_common_event(@cast_id)
    set_cast_time(0)
  end  
  
  def set_cast_color(r,g,b,a = 255)
    @cast_color = Color.new(r,g,b,a)
  end  
  def set_cast_color_default
    @cast_color = $cast_color
  end   
end  