package ggj2014BsAs.grupoJ.juego.escena 
{
	import entities.Cog;
	import entities.TimedCog;
	/**
	 * ...
	 * @author Damián Flores
	 */
	public class LLevels 
	{
		public static function get datosNivelActual():LevelData
		{
			switch(Registry.currentLevel)
			{
				default:
				case 1: return nivel2;
				case 2: return nivel3;
				case 3: return nivel4;
				//case 4: return nivel4;
				//case 5: return nivel5;
			}
		}
		
		protected static function get nivel1():LevelData
		{
			var cogs:Vector.<Cog> = Vector.<Cog>
			([
				new Cog(200, 200, 2),
				new Cog(700, 150, 1),
				new Cog(1000, 50, 5)
			]);
			
			var cuerpo1:PlataformaVariable = new PlataformaVariable(false, false, 2, 15, 3, 9, 11);
			var cuerpo1B:PlataformaVariable = new PlataformaVariable(true, false, 1, 15, 10, 6, 2, cuerpo1);
			var cuerpo2:PlataformaVariable = new PlataformaVariable(false, false, 1, 39, 4, 9, 10);
			var cuerpo4:PlataformaVariable = new PlataformaVariable(false, false, -1, 31, 6, 2, 8);
			var cuerpo3:PlataformaVariable = new PlataformaVariable(false, false, 5, 52, 3, 11, 11);
			
			var platforms:Vector.<PlataformaVariable> = Vector.<PlataformaVariable>
			([
				cuerpo1,
				cuerpo1B,
				new PlataformaVariable(true, false, 3, 15, 12, 9, 2, cuerpo1),
				cuerpo2,
				new PlataformaVariable(true, false, 0, 40, 9, 4, 5, cuerpo2),
				new PlataformaVariable(true, true, 0, 44, 11, 2, 1, cuerpo2),
				cuerpo4,
				new PlataformaVariable(true, false, 1, 31, 6, 2, 5, cuerpo4),
				cuerpo3,
				new PlataformaVariable(true, false, -1, 57, 10, 2, 4, cuerpo3),
				new PlataformaVariable(true, false, -1, 59, 8, 2, 6, cuerpo3),
				new PlataformaVariable(true, false, -1, 61, 6, 2, 8, cuerpo3)
			]);
			
			return new LevelData( -1, cogs, platforms);
		}
		
		protected static function get nivel2():LevelData
		{
			var cogs:Vector.<Cog> = Vector.<Cog>
			([
				new Cog(200, 200, 2),
				new Cog(700, 150, 1),
				new Cog(1000, 50, 5)
			]);
			
			var cuerpo1:PlataformaVariable = new PlataformaVariable(false, false, 2, 15, 3, 9, 11);
			var cuerpo1B:PlataformaVariable = new PlataformaVariable(true, true, 1, 15, 10, 6, 2, cuerpo1);
			var cuerpo2:PlataformaVariable = new PlataformaVariable(false, false, 1, 39, 4, 9, 10);
			var cuerpo4:PlataformaVariable = new PlataformaVariable(false, false, -1, 31, 6, 2, 8);
			var cuerpo3:PlataformaVariable = new PlataformaVariable(false, false, 5, 52, 3, 11, 11);
			
			var platforms:Vector.<PlataformaVariable> = Vector.<PlataformaVariable>
			([
				cuerpo1,
				cuerpo1B,
				new PlataformaVariable(false, true, 3, 15, 12, 9, 2, cuerpo1B),
				cuerpo2,
				new PlataformaVariable(true, false, 0, 40, 9, 4, 5, cuerpo2),
				new PlataformaVariable(true, true, 0, 44, 11, 2, 1, cuerpo2),
				cuerpo4,
				new PlataformaVariable(true, false, 1, 31, 6, 2, 5, cuerpo4),
				cuerpo3,
				new PlataformaVariable(true, false, -1, 57, 10, 2, 4, cuerpo3),
				new PlataformaVariable(true, false, -1, 59, 8, 2, 6, cuerpo3),
				new PlataformaVariable(true, false, -1, 61, 6, 2, 8, cuerpo3)
			]);
			
			return new LevelData( -1, cogs, platforms);
		}
		
		protected static function get nivel3():LevelData
		{
			var cogs:Vector.<Cog> = Vector.<Cog>
			([
				new Cog(100, 400, 5),
				new TimedCog(700, 250, 1, 400),
				new TimedCog(1150, 200, 2, 400),
				//new TimedCog(1450, 150, 5, 400)
			]);
			var platforms:Vector.<PlataformaVariable> = Vector.<PlataformaVariable>
			([
				new PlataformaVariable(true, false, 5, 12, 12, 2, 2),
				new PlataformaVariable(true, false, 1, 20, 10, 10, 2),
				new PlataformaVariable(true, false, 2, 35, 8, 10, 2),
				new PlataformaVariable(true, false, 2, 49, 4, 1, 6),
				new PlataformaVariable(true, false, 5, 50, 6, 10, 2),
			]);
			return new LevelData( -1, cogs, platforms);
		}
		
		protected static function get nivel4():LevelData
		{
			var cogs:Vector.<Cog> = Vector.<Cog>
			([
				new Cog(300, 20, 0),
				new TimedCog(900, 270, 2, 400),
				new TimedCog(1200, 50, 1, 400)
			]);
			var platforms:Vector.<PlataformaVariable> = Vector.<PlataformaVariable>
			([
				new PlataformaVariable(false, true, 3, 2, 4, 8, 2),
				new PlataformaVariable(true, false, 0, 16, 4, 2, 8),
				
				new PlataformaVariable(true, false, 0, 27, 4, 1, 8),
				new PlataformaVariable(true, false, 2, 27, 10, 6, 2),
				
				new PlataformaVariable(true, false, 2, 33, 7, 2, 2),
				new PlataformaVariable(true, false, 2, 38, 5, 2, 2),
				
				new PlataformaVariable(true, false, 1, 38, 9, 6, 2),
				new PlataformaVariable(true, false, 1, 43, 2, 1, 9),
				new PlataformaVariable(true, false, 0, 44, 9, 6, 2),
				new PlataformaVariable(true, false, 2, 55, 6, 8, 2),
				//new PlataformaVariable(true, false, 1, 25, 2, 3, 10),
				
				//new PlataformaVariable(true, false, -1, 25, 8, 3, 2),
				//
				//
				//new PlataformaVariable(true, false, 1, 28, 7, 1, 1),
				//new PlataformaVariable(true, false, 1, 28, 10, 3, 2),
				//new PlataformaVariable(true, false, 2, 25, 12, 3, 2),
			]);
			return new LevelData( -1, cogs, platforms);
		}
		
		protected static function get nivel5():LevelData
		{
			var cogs:Vector.<Cog> = Vector.<Cog>
			([
				new Cog(250, 50, 2),
				new Cog(750, 150, 1),
				new Cog(1000, 50, 5)
			]);
			var platforms:Vector.<PlataformaVariable> = Vector.<PlataformaVariable>
			([
				new PlataformaVariable(false, true, 3, 2, 4, 8, 2),
				
				new PlataformaVariable(true, false, 1, 25, 2, 3, 10),
				new PlataformaVariable(true, false, -1, 25, 8, 3, 2),
				new PlataformaVariable(true, false, 1, 28, 7, 1, 1),
				new PlataformaVariable(true, false, 1, 28, 10, 3, 2),
				new PlataformaVariable(true, false, 2, 25, 12, 3, 2),
			]);
			return new LevelData( -1, cogs, platforms);
		}
	}
}