private void Awake() { InitalizeLibrary(); main = this; currentSpelling = ""; state = SpellingState.SpawningWord; }
private void Update() { //Check state switch (state) { case SpellingState.SpawningWord: if (wordSpawnReference.position.y - wordInitalY >= wordSpawnOffset) { SpawnNewWord(); } break; case SpellingState.DespawningWord: if (spawnedWord.transform.position.y < wordSpawnReference.position.y - (wordSpawnOffset)) { if (spawnedWord.activeSelf) { spawnedWord.SetActive(false); LevelController.main.DestroyLater(spawnedWord); } state = SpellingState.Spelling; } else if ((spawnedWord.transform.position.y < wordSpawnReference.position.y) /*&& (!bubbleGen.isSpawning)*/) { bubbleGen.isSpawning = true; } break; case SpellingState.WaitingToDespawn: bubbleGen.isSpawning = false; if (spawnedWord == null) { state = SpellingState.SpawningWord; } else if (spawnedWord.transform.position.y < wordSpawnReference.position.y - (wordSpawnOffset)) { if (spawnedWord.activeSelf) { spawnedWord.SetActive(false); LevelController.main.DestroyLater(spawnedWord); } state = SpellingState.SpawningWord; } break; case SpellingState.Spelling: break; } }
private void SpawnNewWord() { if (spawnedWord != null) { if (spawnedWord.activeSelf) { spawnedWord.SetActive(false); LevelController.main.DestroyLater(spawnedWord); } } spawnedWord = (GameObject)Instantiate(wordPrefab, this.transform); Vector3 newPos = spawnedWord.transform.position; newPos.y = wordSpawnReference.position.y + wordSpawnOffset; spawnedWord.transform.position = newPos; spawnedWord.GetComponentInChildren <Font3D> ().SetText(NewWord()); state = SpellingState.DespawningWord; }
public void AddLetter(char letter, Bubble poppedBubble) { currentSpelling += letter.ToString(); displayText.text = currentSpelling; if (letter != currentWordLetters [currentLetterIndex]) { //Wrong word PlayerController.Pitch = 0.1f; if ((Score.main.nextLevelReady) && (!Score.main.isCapped)) { NewWordGroup(); Score.main.nextLevelReady = false; } else if (Score.main.isCapped) { NewWordGroup(); } //Change bubble to red SpriteRenderer bubbleRen = poppedBubble.GetComponent <SpriteRenderer>(); if (bubbleRen != null) { bubbleRen.color = Color.red; } TextMesh bubbleText = poppedBubble.GetComponentInChildren <TextMesh>(); if (bubbleText != null) { bubbleText.color = Color.red; } bubbleGen.isSpawning = false; state = SpellingState.WaitingToDespawn; CrossOut.main.CrossWordOut(currentWord, displayText.fontSize); LevelController.main.RemoveBubbles(); Score.main.RestartWordMultiplier(); } else { currentLetterIndex++; if (currentWordLetters.Length == currentLetterIndex) { //Right word audioSource.PlayOneShot(correct); Instantiate(correctSpellingPrefab, Camera.main.transform); if (Score.main.nextLevelReady) { NewWordGroup(); Score.main.nextLevelReady = false; } bubbleGen.isSpawning = false; StartCoroutine(CorrectSpellingTimer()); LevelController.main.RemoveBubbles(); state = SpellingState.WaitingToDespawn; Score.main.CheckWordCount(true); if (currentWordIndex < currentWordGroup.Count) { currentWordGroup.RemoveAt(currentWordIndex); } else { Debug.LogError("Error to report to Ben: Word index greater than word list length. Index: " + currentWordIndex.ToString() + " List Length: " + currentWordGroup.Count); } } } }