void Update() { // Se não há mais ondas para realizar e não esta acontecendo nenhuma onda if (ondasRealizadas == quantidadeDeOndas && ondaAtual == null) { // Avisamos para o gerenciador de jogo que esta fase está completa e desativamos este script GerenciadorJogo.instancia.FaseCompleta(); gameObject.SetActive(false); } // Se não es tamos realizando uma onda no momento if (ondaAtual == null) { // Incrementa o cronometro cronometro = cronometro + Time.deltaTime; } // Se esta na hora de iniciar uma nova onda if (cronometro >= tempoEntreOndas) { // Adicionamos o script de onda neste GameObject ondaAtual = gameObject.AddComponent <Onda>(); // Inicializamos suas variaveis publicas ondaAtual.numeroInimigos = inimigosPorOnda; ondaAtual.inimigo = inimigo; // Contamos esta onda como realizada e zeramos o cronometro ondasRealizadas = ondasRealizadas + 1; cronometro = 0.0f; } }
Onda CriarNovaOndaSobrevivencia() { int dir = 1; if (Utilidade.MeiaChance()) { dir = -1; } List <Passante> listapassantes = new List <Passante>(); float vel = Random.Range(1.0f, 1.5f) * ((float)Dados.jogoRapidoDificuldade * dir); Passante passante = new Passante(vel, Pontes.Cima); listapassantes.Add(passante); if (podeLancarMaisDeUmSobrevivencia) { float changeVir1 = ((float)Dados.jogoRapidoDificuldadeMaxima - Dados.jogoRapidoDificuldade + 1); changeVir1 /= ((float)Dados.jogoRapidoDificuldadeMaxima); float chanceVir2 = 1f - changeVir1; float chanceVir3 = chanceVir2 * 0.333f; float aleatorio = Random.value; if (aleatorio < chanceVir2) { Passante passante2 = new Passante(vel * 0.8f, Pontes.Cima); listapassantes.Add(passante2); } if (aleatorio < chanceVir3) { Passante passante3 = new Passante(vel * 0.6f, Pontes.Cima); listapassantes.Add(passante3); } } Onda onda = new Onda(listapassantes); return(onda); }
Onda IServicioOnda.ModificarRecorridoOnda(Onda onda, float recorrido) // recorrido = y { return(onda); }
Onda IServicioOnda.ModificarFrequenciaOnda(Onda onda, float longitud) // longitud = x { return(onda); }