package ggj2014BsAs.grupoJ.gui 
{
	import flash.display.Sprite;
	import ggj2014BsAs.grupoJ.datos.LColores;
	/**
	 * ...
	 * @author Damián Flores
	 */
	public class Relojito extends Sprite
	{
		protected var _valor:Number = 0;
		protected var _colorActual:int;
		public var colorInminente:int;
		protected var _tiempoActual:Number;
		protected var _tiempoInicial:Number;
		
		function Relojito(colorActual:int, colorInminente:int, tiempoInicial:int)
		{
			_colorActual = colorActual;
			this.colorInminente = colorInminente;
			
			graphics.beginFill(LColores.COLORES[_colorActual]);
			graphics.drawCircle(0, 0, 20);
			graphics.endFill();
			addChild(new Sprite());
			
			_tiempoActual = _tiempoInicial = tiempoInicial;
		}
		
		public function get valor():Number { return _valor; }
		public function set valor(valorNuevo:Number):void
		{
			_valor = valorNuevo;
			var sprite:Sprite = getChildAt(0) as Sprite;
			var angulo:Number = Math.PI * 2 * _valor;
			var radio:Number = 16;
			//sprite.graphics.beginFill(LColores.COLORES[colorInminente]);
			//sprite.graphics.drawCircle(0, 0, radio);
			var radio2:Number = 20;
			var medioPI:Number = Math.PI / 2;
			var anguloMenosMedioPI:Number = angulo - medioPI;
			
			
			sprite.graphics.beginFill(LColores.COLORES[colorInminente]);
			sprite.graphics.moveTo(0, 0);
			var amplitud:Number = Math.PI / 36;
			sprite.graphics.lineTo(Math.sin(angulo - amplitud) * radio2 , -Math.cos(angulo - amplitud) * radio2);
			sprite.graphics.lineTo(Math.sin(angulo + amplitud) * radio2 , -Math.cos(angulo + amplitud) * radio2);
			sprite.graphics.endFill();
		}
		
		public function actualizar(funcionFinal:Function):void
		{
			valor = (--_tiempoActual) / _tiempoInicial;
			if (valor <= 0)
			{
				funcionFinal(this);
			}
		}
	}
}