public void ChangeSolved(int index, bool value, PuzzlesOnThePlanet planet)
    {
        multiPuzzles[index].isSolved = value;

        isPuzzleAreaFinished = CheckIfPuzzleAreaFinished();
        _puzzleManager.CheckIfPlanetAllPuzzlesAreSolved(planet);
    }
Esempio n. 2
0
    public void CheckIfPlanetAllPuzzlesAreSolved(PuzzlesOnThePlanet planetWithPuzzles)
    {
        var findPlanetIndex = planetsWithPuzzles.FindIndex(planet =>
                                                           planet.planet == planetWithPuzzles);

        for (int i = 0; i < planetsWithPuzzles[findPlanetIndex].planet._puzzleTriggers.Count; i++)
        {
            if (planetsWithPuzzles[findPlanetIndex].planet._puzzleTriggers.Exists(area => area.isPuzzleAreaFinished == false))
            {
                planetsWithPuzzles[findPlanetIndex].planetSolved = false;
                if (planetWithPuzzles.isBeamOn)
                {
                    planetWithPuzzles.BeamOff(true);
                }
            }
            else
            {
                planetsWithPuzzles[findPlanetIndex].planetSolved = true;
                if (!planetWithPuzzles.isBeamOn)
                {
                    planetWithPuzzles.BeamOn();
                }
            }
        }


        CheckHowManyAreSolvedOnThePlanet();

        DisplayPuzzleAmount();
    }