/// <summary> /// Se o teclado digita estiver liberado, recebe a letra digitada e concatena com as previamente digitadas (se não atingiu o máximo de letras) /// Após concatenar, verifica se pode liberar o botão para confirmar a resposta /// </summary> public void buttonPressed() { if (!LevelController.bloqueiaBotao) { click.Play(0); // toca som de apertando o botao (click_tecla01) int i = 0; // Encontra em qual silaba está (i = silaba em que está - 1) while (i < LevelController.textSlots && LevelController.inputText[i] != null && LevelController.originalText[i].Length <= LevelController.inputText[i].Length) { i++; } // Verificar se a silaba em questão está completa (todas as letras) e se pode liberar o botão confirma if (i < LevelController.textSlots) { if (LevelController.inputText[i] == null || LevelController.inputText[i].Length < LevelController.originalText[i].Length) { LevelController.inputText[i] = string.Concat(LevelController.inputText[i], currentButton.name); } if (stageManager.textSlots == i + 1 && LevelController.inputText[i].Length == LevelController.originalText[i].Length) { LevelController.BotaoConfirmaResposta = true; } } // Verifica se há mais algum espaço a ser preenchido while (i < LevelController.textSlots && LevelController.inputText[i] != null && LevelController.originalText[i].Length <= LevelController.inputText[i].Length) { i++; } if (i == LevelController.textSlots) { LevelController.BotaoConfirmaResposta = true; } SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); } }
/// <summary> /// Verifica se tem alguma silaba escrita e apaga somente a ultima silaba escrita /// </summary> public void buttonPressed() { // Verifica se os botões não estão bloqueados if (!LevelController.bloqueiaBotao) { //click.Play(0); // Encontra o máximo de sílabas existentes menos 1 - vetor inicia em 0 int i = LevelController.textSlots - 1; SilabaControl silabaControl = SilabaControl.instance; // Varre o vetor a partir do final procurando a última sílaba digitada while (i > -1) { // Se o vetor é vazio, não faz nada if (LevelController.inputText[i] != null) { // Se não for vazio, verifica se existe alguma letra na posição i do vetor if (LevelController.inputText[i].Length > 0) { // Se tem letra, ve se pode apagar if (silabaControl.isPlanetLetter[i]) { // Apaga e sai LevelController.inputText[i] = "";//.Remove(LevelController.silabasDigitadas[1].Length - 1); break; } } } i--; } // Bloqueia o botão de confirmar resposta, pois todas as sílabas não foram digitadas LevelController.BotaoConfirmaResposta = false; } SetaIndicadora.DestroiSeta(); SetaIndicadora.IndicarPos(); }
/// <summary> /// Verifica se o jogador já está pronto para ir para o próximo nível ou se voltará para o nível anterior /// </summary> /// <param name="seconds"></param> /// <param name="NextLevel"></param> /// <param name="PreviousLevel"></param> /// <returns></returns> public IEnumerator CheckScore(float seconds, string NextLevel, string PreviousLevel) { GameObject resultado; yield return(new WaitForSeconds(seconds + 0.2f)); stageManager = StageManager.instance; //Pega a atual instância do Stage Manager DataManager.SelectProperFile(); // Salva as estatísticas atuais do jogador DataManager.SaveStatistics(); bool playConclusionVideo = false; //Se o resultado estiver correto if (getScorePositive() == maxScore) { if (stageManager.currentPlanet == 4 && !SaveManager.player.CompletouPlaneta(4)) { firstTimeBeatingRev1 = true; } GiveMoney(); GiveStars(); ResetTimePlaying(); resultado = Resources.Load("Prefabs/Feedback/Level Clear Message") as GameObject; resultado = Instantiate(resultado, GameObject.Find("Canvas").transform); // Se for o último ato do planeta, libera o próximo planeta. if (stageManager.currentAct == 3) { SaveManager.player.planeta[stageManager.currentPlanet].liberado = true; } // Caso seja a revisão verifica se é do sistema 0 if (stageManager.eRevisao) { // Se for do sistema 0, libera todos os outros if (!SaveManager.player.sistemaLiberado) { SaveManager.player.sistemaLiberado = true; } // Se não for o 0, verifica se concluiu todos os sistemas pela primeira vez else if (SaveManager.player.CompletouTodosSistemas() && !SaveManager.player.jaConcluiuJogo) { SaveManager.player.jaConcluiuJogo = true; playConclusionVideo = true; } } //// Se ganhar uma fase de revisão e for o último ato (caso tenha mais que um), libera o próximo sistema //if (stageManager.NextLevel.Contains("stageSelect") && stageManager.eRevisao) //{ // // Pega o inteiro no final do stageSelect (indica qual sistema está) e libera o proximo sistema (+1) // SaveManager.player.sistemaLiberado[System.Int32.Parse(stageManager.NextLevel.Substring(stageManager.NextLevel.Length - 1)) + 1] = true; //} SaveManager.Save(); yield return(new WaitForSeconds(2)); GameObject feedbackEstrelas; if (stars == 1) { feedbackEstrelas = Resources.Load("Prefabs/Feedback/GanhaUmaEstrela") as GameObject; Instantiate(feedbackEstrelas, GameObject.Find("Canvas").transform); yield return(new WaitForSeconds(1)); } else if (stars == 2) { feedbackEstrelas = Resources.Load("Prefabs/Feedback/GanhaDuasEstrela") as GameObject; Instantiate(feedbackEstrelas, GameObject.Find("Canvas").transform); yield return(new WaitForSeconds(2)); } else if (stars == 3) { feedbackEstrelas = Resources.Load("Prefabs/Feedback/GanhaTresEstrela") as GameObject; Instantiate(feedbackEstrelas, GameObject.Find("Canvas").transform); yield return(new WaitForSeconds(2)); } if (playConclusionVideo) { UnityEngine.Video.VideoClip videoClip = Resources.Load <UnityEngine.Video.VideoClip>(conclusionVideoName); GameObject loadScene = new GameObject(); loadScene.AddComponent <LoadScene>(); loadScene.GetComponent <LoadScene>().LoadSceneWithFade(videoClip, NextLevel); } else { if (firstTimeBeatingRev1) { UnityEngine.Video.VideoClip videoClip = Resources.Load(caminhoVideoSystem) as UnityEngine.Video.VideoClip; stageManager.video = videoClip; firstTimeBeatingRev1 = false; StartCoroutine(stageManager.CallAnotherLevel(3, "06_systemSelect", true)); } else { UnityEngine.Video.VideoClip videoClip = Resources.Load <UnityEngine.Video.VideoClip>(conclusionVideoName); StartCoroutine(stageManager.CallAnotherLevel(3, NextLevel, true));//espera o dobro do tempo pois esta funcao é chamada ao mesmo tempo que a da linha de cima } } } //Caso o resultado esteja errado else if (getScoreNegative() == maxScore) { resultado = Resources.Load("Prefabs/Feedback/Level Failed Message") as GameObject; resultado = Instantiate(resultado, GameObject.Find("Canvas").transform); SaveManager.Save(); yield return(new WaitForSeconds(4)); StartCoroutine(stageManager.CallAnotherLevel(3, PreviousLevel, false));//espera o dobro do tempo pois esta funcao é chamada ao mesmo tempo que a da linha de cima } else { // Limpa os TextSlots para a proxima palavra for (int i = 0; i < LevelController.textSlots; i++) { LevelController.inputText[i] = "";//reset var after confirm button is clicked } SetaIndicadora.DestroiSeta(); StartCoroutine(silabaControl.CallSilaba(0));//chama nova sílaba } }