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; } }
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; } }