Inheritance: MonoBehaviour
	/*
	 * If the user was classify with amateur, the game will add easy level features, and ..
	 * Se o usuario for classificadao como amador, o jogo ira adicionar caracteristicas de nivel facil, e ..
	 * 
	 */
	void AdaptModeAdd (Done_Mover velo, Done_WeaponController armas, Done_EvasiveManeuver evazao){

		if(modeler.GetPlayerType() == "amateur"){
			EasyModeAdd(velo, armas, evazao);
			Debug.LogWarning("Add Adapt Amateur!");

		}else if (modeler.GetPlayerType() == "intermediate"){
			MediumModeAdd(velo,armas,evazao);
			Debug.LogWarning("Add Adat Intermediate!");

		}else if (modeler.GetPlayerType() == "hardcore"){
			HardModeAdd(velo,armas,evazao);
			Debug.LogWarning("Adapt Mode Hardcore!");
		}
	}
	void HardMode(Done_Mover velo, Done_WeaponController armas, Done_EvasiveManeuver evazao, int wave){

		this.velocidadeAsteroide_1.speed = this.speedAsteroide - (wave * 0.3f);
		this.velocidadeAsteroide_2.speed = this.speedAsteroide - (wave * 0.3f);
		this.velocidadeAsteroide_3.speed = this.speedAsteroide - (wave * 0.3f);
				
		velo.speed = this.speedNave_Vermellha - (wave * 0.3f);
		armas.fireRate = this.fireRateNave_Vermellha - (wave * 0.15f);
		armas.delay = this.delayNave_Vermellha - (wave * 0.15f);
		evazao.tilt = this.tiltNave_Vermellha + (wave * 0.5f);
		evazao.dodge = this.dodgeNave_Vermellha + (wave * 0.5f);			

		Debug.LogWarning("HardMOde!");
	}
	void HardModeAdd(Done_Mover velo, Done_WeaponController armas, Done_EvasiveManeuver evazao){

		//Ships
		armas.fireRate -= 0.15f;
		armas.delay -= 0.15f;
		velo.speed -= 1.0f;
		evazao.tilt += 1.0f;
		evazao.dodge += 1.0f;

		//Ast
		this.velocidadeAsteroide_1.speed -= 0.3f;
		this.velocidadeAsteroide_2.speed -= 0.3f;
		this.velocidadeAsteroide_3.speed -= 0.3f;

		Debug.LogWarning("Hard mode Add!");
	}
	void MediumMode(Done_Mover velo, Done_WeaponController armas, Done_EvasiveManeuver evazao, int wave){

		this.velocidadeAsteroide_1.speed = this.speedAsteroide - (wave * 0.1f);
		this.velocidadeAsteroide_2.speed = this.speedAsteroide - (wave * 0.1f);
		this.velocidadeAsteroide_3.speed = this.speedAsteroide - (wave * 0.1f);

		velo.speed = this.speedNave_Roxa - (wave * 0.2f);
		armas.fireRate = this.fireRateNave_Roxa - (wave * 0.10f);
		armas.delay = this.delayNave_Roxa - (wave * 0.10f);
		evazao.tilt = this.tiltNave_Roxa + (wave * 0.2f); 
		evazao.dodge = this.dodgeNave_Roxa + (wave * 0.2f);

		Debug.LogWarning("MedMode!");
	}
	void Start () {

		game = FindObjectOfType(typeof(Done_GameController)) as Done_GameController;

		player = FindObjectOfType(typeof(Player)) as Player;

		modeler = FindObjectOfType(typeof(Modeler)) as Modeler;

		/*
		 * Adiquirindo os script para efetuar a modificaçao por "Onda".
		 */
		velocidadeAsteroide_1 = asteroide1.GetComponent<Done_Mover>();
		velocidadeAsteroide_2 = asteroide2.GetComponent<Done_Mover>();
		velocidadeAsteroide_3 = asteroide3.GetComponent<Done_Mover>();
		
		velocidadeNaveRoxa = naveRoxa.GetComponent<Done_Mover>();
		armasNaveRoxa = naveRoxa.GetComponent<Done_WeaponController>();
		evazaoNaveRoxa = naveRoxa.GetComponent<Done_EvasiveManeuver>();
		
		velocidadeNaveVermelha = naveVermelha.GetComponent<Done_Mover> ();
		armasNaveVermelha = naveVermelha.GetComponent<Done_WeaponController>();
		evazaoNaveVermelha = naveVermelha.GetComponent<Done_EvasiveManeuver>();
		
		/*velocidadeNaveBranca = naveBranca.GetComponent<Done_Mover>();
		armasNaveBranca = naveBranca.GetComponent<Done_WeaponController>();
		evazaoNaveBranca = naveBranca.GetComponent<Done_EvasiveManeuver>();*/

		InitialStatusMobs();

		localSpawnWait = game.spawnWait;

	}
    void Start()
    {
        capitaoNave = FindObjectOfType(typeof(Jogador)) as Jogador;

        coletor.gameObject.GetComponent<Coletor>();

        StatusIniciaisGame();

        UpdateScore ();

        StartCoroutine (SpawnWaves ());

        /*
         * Adiquirindo os script para efetuar a modificaçao por "Onda".
         */

        velocidadeAsteroide_1 = asteroide1.GetComponent<Done_Mover>();
        velocidadeAsteroide_2 = asteroide2.GetComponent<Done_Mover>();
        velocidadeAsteroide_3 = asteroide3.GetComponent<Done_Mover>();

        velocidadeNaveRoxa = naveRoxa.GetComponent<Done_Mover>();
        armasNaveRoxa = naveRoxa.GetComponent<Done_WeaponController>();
        evazaoNaveRoxa = naveRoxa.GetComponent<Done_EvasiveManeuver>();

        velocidadeNaveVermelha = naveVermelha.GetComponent<Done_Mover> ();
        armasNaveVermelha = naveVermelha.GetComponent<Done_WeaponController>();
        evazaoNaveVermelha = naveVermelha.GetComponent<Done_EvasiveManeuver>();

        velocidadeNaveBranca = naveBranca.GetComponent<Done_Mover>();
        armasNaveBranca = naveBranca.GetComponent<Done_WeaponController>();
        evazaoNaveBranca = naveBranca.GetComponent<Done_EvasiveManeuver>();

        StatusIniciaisMobs();
    }
    void AcrescimoNave(Done_Mover velo, Done_WeaponController armas, Done_EvasiveManeuver evazao)
    {
        armas.fireRate -= 0.1f;
        armas.delay -= 0.1f;

        if(this.numeroDaOnda <= 4){
            velo.speed -= 0.2f;
            evazao.tilt += 2;
            evazao.dodge += 1;

        }else if(this.numeroDaOnda > 4 && this.numeroDaOnda <= 8){
            velo.speed -= 0.2f;
            evazao.tilt += 1;
            evazao.dodge += 1;

        }else{
            velo.speed -= 0.3f;
            evazao.tilt += 0.5f;
            evazao.dodge += 0.5f;
        }
    }
 void Start()
 {
     jugador = GameObject.FindGameObjectWithTag ("Player");
     moverScrpt = GetComponent<Done_Mover>();
 }