private void CheckIfPuzzleComplete() { // Get all nuclei in puzzle nuclei = GameObject.FindGameObjectsWithTag("Nucleus"); GameObject activePuzzle = GameManager.Instance.FindActivePuzzle(); if (activePuzzle.name != null) { if (activePuzzle.name == "4") { foreach (GameObject atomNuclei in nuclei) { EpsilonAtomNucleus epsilonAtomNucleus = atomNuclei.GetComponent <EpsilonAtomNucleus>(); if (epsilonAtomNucleus != null) { if (epsilonAtomNucleus.IsParticleCreated) { IsPuzzleCompleted = true; } else { IsPuzzleCompleted = false; break; } } } } else { foreach (GameObject nucleus in nuclei) { // Check if all nuclei in puzzle are EpsilonNucleus epsilonNucleus = nucleus.GetComponent <EpsilonNucleus>(); if (epsilonNucleus.IsParticleCreated) { IsPuzzleCompleted = true; } else { IsPuzzleCompleted = false; break; } } } } }
private void PuzzleRestart() { GameObject[] nuclei = GameObject.FindGameObjectsWithTag("Nucleus"); // If puzzle hasnt been completed already, restart puzzle if (!_epsilonCheckPuzzle.IsPuzzleCompleted) { // Play puzzle failed sound AudioManager.Instance.Play("PuzzleFail"); if (nuclei.Length > 0) { // Delete all quarks ons in nuclei in puzzle foreach (GameObject nucleus in nuclei) { EpsilonNucleus epsilonNucleus = nucleus.GetComponent <EpsilonNucleus>(); EpsilonAtomNucleus epsilonAtomNucleus = nucleus.GetComponent <EpsilonAtomNucleus>(); if (epsilonNucleus != null) { // Delete all quarks in a nucleus if (epsilonNucleus.EpsilonQuarksInNucleus.Count > 0) { epsilonNucleus.DestroyParticlesInNucleus(epsilonNucleus.EpsilonQuarksInNucleus); } if (epsilonNucleus.EpsilonBaryonsInNucleus.Count > 0) { epsilonNucleus.DestroyParticlesInNucleus(epsilonAtomNucleus.EpsilonBaryonsInNucleus); } // Clear list epsilonNucleus.EpsilonQuarksInNucleus.Clear(); epsilonNucleus.EpsilonBaryonsInNucleus.Clear(); // Reset is particle created bool to false it is true if (epsilonNucleus.IsParticleCreated) { epsilonNucleus.IsParticleCreated = false; } } else if (epsilonAtomNucleus != null) { // Delete all quarks in a nucleus if (epsilonAtomNucleus.EpsilonQuarksInNucleus.Count > 0) { epsilonAtomNucleus.DestroyParticlesInNucleus(epsilonAtomNucleus.EpsilonQuarksInNucleus); } if (epsilonAtomNucleus.EpsilonBaryonsInNucleus.Count > 0) { epsilonAtomNucleus.DestroyParticlesInNucleus(epsilonAtomNucleus.EpsilonBaryonsInNucleus); } // Clear list epsilonAtomNucleus.EpsilonQuarksInNucleus.Clear(); epsilonAtomNucleus.EpsilonBaryonsInNucleus.Clear(); // Reset is particle created bool to false it is true if (epsilonAtomNucleus.IsParticleCreated) { epsilonAtomNucleus.IsParticleCreated = false; } } } } // Set quarks and baryons used to 0 _epsilonManager.NumQuarksUsed = 0; _epsilonManager.NumBaryonsUsed = 0; } }