Ejemplo n.º 1
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (type == MechanicType.Auto_Switch)
        {
            if (collision.gameObject.name.Contains("Player"))
            {
                if (rebound <= 0f)
                {
                    state = false;

                    if (aud != null && stateChangeSound != null && TogglesValues.sound)
                    {
                        aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                    }
                }

                triggered = 0f;
            }
        }
        else if (type == MechanicType.Pressure_Plate)
        {
            WeightMechanic weightMech = collision.gameObject.GetComponent <WeightMechanic>();

            if (weightMech != null)
            {
                triggered -= weightMech.weight;

                if (rebound <= 0f)
                {
                    prevState = state;
                    state     = triggered >= weightRequired;

                    if (prevState != state)
                    {
                        if (aud != null && stateChangeSound != null && TogglesValues.sound)
                        {
                            aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                        }
                    }
                }
            }
        }
        else
        {
            triggered = 0f;
        }
    }
Ejemplo n.º 2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (type == MechanicType.Auto_Switch)
        {
            if (collision.gameObject.name.Contains("Player"))
            {
                state = true;

                triggered = weightRequired;

                if (aud != null && stateChangeSound != null && TogglesValues.sound)
                {
                    aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                }
            }
        }
        else if (type == MechanicType.Switch)
        {
            ThrownObject to = collision.gameObject.GetComponent <ThrownObject>();

            if (collision.gameObject.tag == "PlayerAttack" && to == null)
            {
                if (collision.gameObject.transform.parent.parent.parent.gameObject.GetComponent <Animator>().GetBool("isAttacking"))
                {
                    state = !state;

                    triggered = weightRequired;

                    if (aud != null && stateChangeSound != null && TogglesValues.sound)
                    {
                        aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                    }
                }
            }
        }
        else if (type == MechanicType.Wall_Switch)
        {
            if (collision.gameObject.tag == "PlayerAttack")
            {
                state = !state;

                ThrownObject to = collision.gameObject.GetComponent <ThrownObject>();

                if (to != null)
                {
                    collision.gameObject.tag = "Untagged";
                }

                triggered = weightRequired;

                if (aud != null && stateChangeSound != null && TogglesValues.sound)
                {
                    aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                }
            }
        }
        else if (type == MechanicType.Pressure_Plate)
        {
            WeightMechanic weightMech = collision.gameObject.GetComponent <WeightMechanic>();

            if (weightMech != null)
            {
                triggered += weightMech.weight;

                bool prevState = state;
                state = triggered >= weightRequired;

                if (state != prevState)
                {
                    if (aud != null && stateChangeSound != null && TogglesValues.sound)
                    {
                        aud.PlayOneShot(stateChangeSound, state ? 1f : 0.5f);
                    }
                }
            }
        }
        else
        {
            triggered = weightRequired;
        }
    }