public void Reset() { droppedLetter = null; correctLetter = null; Unhighlight(); isChosen = false; rotateButtonController.Disable(); boxCollider.enabled = true; }
private IEnumerator SpawnLettersCoroutine(List <ILivingLetterData> lettersToSpawn, Action spawnOverCallback) { PlayCartoonFightSfx(); yield return(new WaitForSeconds(1)); List <int> indices = new List <int>(); for (int i = 0; i < lettersToSpawn.Count; i++) { indices.Add(i); } bool throwLetterToTheRight = Random.Range(1, 40) % 2 == 0; bool spawnLettersInOrder = MixedLettersGame.instance.Difficulty == MixedLettersGame.MixedLettersDifficulty.VeryEasy; int numDegreesOfRotation = GetNumDegreesOfRotation(); for (int i = 0; i < lettersToSpawn.Count; i++) { int indexToSpawn = spawnLettersInOrder ? i : indices[Random.Range(0, indices.Count)]; indices.Remove(indexToSpawn); LL_LetterData letterToSpawn = (LL_LetterData)lettersToSpawn[indexToSpawn]; SeparateLetterController separateLetterController = separateLetterControllers[i]; separateLetterController.Enable(); separateLetterController.SetPosition(transform.position, false); separateLetterController.SetLetter(letterToSpawn); separateLetterController.SetRotation(new Vector3(0, 0, Random.Range(0, numDegreesOfRotation + 1) * -90)); separateLetterController.SetIsKinematic(false); separateLetterController.SetCorrectDropZone(MixedLettersGame.instance.dropZoneControllers[indexToSpawn]); MixedLettersGame.instance.dropZoneControllers[indexToSpawn].correctLetter = separateLetterController; separateLetterController.SetIsSubjectOfTutorial(MixedLettersGame.instance.roundNumber == 0 && indexToSpawn == 0 && MixedLettersGame.instance.TutorialEnabled); separateLetterController.AddForce(new Vector3(throwLetterToTheRight ? Random.Range(2f, 6f) : Random.Range(-6f, -2f), Constants.GRAVITY.y * -0.45f), ForceMode.VelocityChange); throwLetterToTheRight = !throwLetterToTheRight; MixedLettersConfiguration.Instance.Context.GetAudioManager().PlaySound(Sfx.ThrowObj); MixedLettersConfiguration.Instance.Context.GetAudioManager().PlayVocabularyData(letterToSpawn); yield return(new WaitForSeconds(0.75f)); } yield return(new WaitForSeconds(1)); audioSource.Stop(); spawnOverCallback.Invoke(); }
public void VerifyLetters() { bool isValid = true; for (int i = 0; i < PromptLettersInOrder.Count; i++) { DropZoneController dropZone = dropZoneControllers[i]; if (dropZone.droppedLetter == null || !MixedLettersConfiguration.Instance.IsDataMatching(dropZone.droppedLetter.GetLetter(), PromptLettersInOrder[i]) || Mathf.Abs(dropZone.droppedLetter.transform.rotation.z) > 0.1f) { if (isValid) { for (int j = 0; j < PromptLettersInOrder.Count; j++) { SeparateLetterController letter = SeparateLettersSpawnerController.instance.separateLetterControllers[j]; letter.SetIsSubjectOfTutorial( roundNumber == 0 && TutorialEnabled && letter == dropZone.correctLetter); } } isValid = false; } else { if (dropZone.gameObject.activeInHierarchy) { dropZone.droppedLetter.DisableCollider(); dropZone.Disable(); dropZone.DisableCollider(); dropZone.ShowGreenTick(); } } } if (isValid) { for (int i = 0; i < PromptLettersInOrder.Count; i++) { dropZoneControllers[i].droppedLetter.EnableCollider(); } OnRoundWon(); } }
public void SetDroppedLetter(SeparateLetterController letter) { if (letter != null) { if (droppedLetter != null) { Vector3 position = transform.position; position.y += LETTER_SWAP_DROP_OFFSET; droppedLetter.SetPosition(position, false); droppedLetter.SetIsKinematic(false); droppedLetter.droppedZone = null; } rotateButtonController.Enable(); } else { rotateButtonController.Disable(); } droppedLetter = letter; Unhighlight(); }