Esempio n. 1
0
    public void Deactivate()
    {
        if (m_indicator != null)
        {
            Destroy(m_indicator.gameObject);
        }
        else
        {
            Debug.Log("This dude is having trouble yo " + this.m_currentProblem.GetName() + " on " + this.name.ToString());
        }
        if (m_currentProblem.GetPhsyicsObject() != null)
        {
            m_currentProblem.GetPhsyicsObject().ResetToStartPosition();
        }
        if (m_currentProblem.GetWhileBrokenParticle() != null)
        {
            if (m_currentProblem.GetWhileBrokenParticle().Count != 0)
            {
                foreach (ParticleSystem particle in m_currentParticle)
                {
                    particle.Stop();
                    Destroy(particle.gameObject, 2);
                }
                m_currentParticle.Clear();
            }
        }

        m_ui.gameObject.SetActive(false);
        m_ui.ResetSprites();
        // Success case
        if (m_buttonPresses >= m_currentProblem.GetMaxButtonPresses())
        {
            if (m_currentProblem.GetFixedParticle() != null) // Checks if any particle plays.
            {
                if (m_currentProblem.GetFixedParticle().Count != 0)
                {
                    List <ParticleSystem> particles = m_currentProblem.GetFixedParticle();
                    foreach (ParticleSystem particle in particles)
                    {
                        ParticleSystem t = Instantiate <ParticleSystem>(particle);
                        t.transform.SetParent(this.transform); // EXPERIMENT
                        t.transform.position = t.transform.position + m_particleOffset;
                        t.Play();
                        t.transform.position = this.transform.position;
                        // Could use a stop here.
                        Destroy(t.gameObject, 2);
                    }
                    m_currentParticle.Clear();
                }
            }
        }
        // Fail case
        else if (m_currentProblem.GetFailedParticle() != null) // Checks if any particle plays.
        {
            if (m_currentProblem.GetFailedParticle().Count != 0)
            {
                List <ParticleSystem> particles = m_currentProblem.GetFailedParticle();
                foreach (ParticleSystem particle in particles)
                {
                    ParticleSystem t = Instantiate <ParticleSystem>(particle);
                    t.transform.SetParent(this.transform); // EXPERIMENT
                    t.transform.position = t.transform.position + m_particleOffset;
                    t.Play();
                    t.transform.position = this.transform.position;
                    // Could use a stop here.
                    Destroy(t.gameObject, 2);
                }
                m_currentParticle.Clear();
            }
        }
        //if (m_currentProblem.GetProblemIndicator() != null)
        //{
        //}

        if (m_currentProblem.GetAnimationController() == null)
        {
            ModelSwap();
        }
        else
        {
            m_currentProblem.GetAnimationController().SetTrigger("EndAnimation");
        }

        m_isActive = false;
    }