// Update is called once per frame
    void Update()
    {
        int activeCount  = 0;
        int correctCount = 0;

        for (int index = 0; index < targets.Length; ++index)
        {
            TargetScript targetScript = targets[index].GetComponent <TargetScript>();
            if (targetScript.IsTriggered())
            {
                ++activeCount;
                if (Contains(index))
                {
                    ++correctCount;
                }
                if (activeCount == goalTargets.Length)
                {
                    break;
                }
            }
        }
        if (correctCount == goalTargets.Length)
        {
            foreach (GameObject target in targets)
            {
                target.SetActive(false);
            }
            GameObject.FindGameObjectWithTag("PhaseManager").GetComponent <PhaseScript>().AdvanceToPhase(4);
        }
        else if (activeCount == goalTargets.Length)
        {
            foreach (GameObject target in targets)
            {
                TargetScript targetScript = target.GetComponent <TargetScript>();
                targetScript.Deactivate();
            }
        }
    }