diff options
author | chai <215380520@qq.com> | 2024-03-13 11:38:18 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-03-13 11:38:18 +0800 |
commit | 134f1deb971b0514a26e04e23926f91983a5497f (patch) | |
tree | d790681bb000c07abae9f557a7d0ef2442fac467 /PlayerDeath.cs | |
parent | 6ce8b9e22fc13be34b442c7b6af48b42cd44275a (diff) |
* move
Diffstat (limited to 'PlayerDeath.cs')
-rw-r--r-- | PlayerDeath.cs | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/PlayerDeath.cs b/PlayerDeath.cs deleted file mode 100644 index ec0813a..0000000 --- a/PlayerDeath.cs +++ /dev/null @@ -1,125 +0,0 @@ -using UnityEngine; - -public class PlayerDeath : MonoBehaviour -{ - public bool dead; - - private bool isFrozen; - - public float muscleFunction = 1f; - - public bool terminalState; - - private DamageEffects damageEffects; - - private RagdollHandler ragdoll; - - private Transform hip; - - public float health = 100f; - - public ParticleSystem[] damageParticles; - - private HasControl hasControll; - - private Holding holding; - - private void Start() - { - damageEffects = GetComponent<DamageEffects>(); - ragdoll = GetComponent<RagdollHandler>(); - hip = GetComponentInChildren<Hip>().transform; - hasControll = GetComponent<HasControl>(); - holding = GetComponent<Holding>(); - } - - private void Update() - { - if (health < 100f) - { - health += Time.deltaTime * 10f; - health = Mathf.Clamp(health, -10f, 100f); - } - if (hip.transform.position.y < -10f) - { - Die(); - } - if (terminalState && muscleFunction > 0f) - { - muscleFunction -= Time.deltaTime * 1f; - } - if (muscleFunction < 0f && !isFrozen) - { - FreezeBody(); - } - } - - public void TakeDamage(Vector3 damage, Vector3 hitPoint, Rigidbody hitRig = null) - { - if (hasControll.hasControl) - { - damageEffects.TakeDamage(damage, hitPoint); - } - if (hitPoint != Vector3.zero) - { - for (int i = 0; i < damageParticles.Length; i++) - { - damageParticles[i].transform.rotation = Quaternion.LookRotation(damage); - damageParticles[i].transform.position = hitPoint; - damageParticles[i].Play(); - } - } - health -= damage.magnitude; - if (!(health <= 0f)) - { - return; - } - if ((bool)hitRig) - { - ConfigurableJoint component = hitRig.GetComponent<ConfigurableJoint>(); - if ((bool)component) - { - Object.Destroy(component); - } - } - Kill(); - } - - public void FreezeBody() - { - isFrozen = true; - Joint[] componentsInChildren = GetComponentsInChildren<Joint>(); - for (int i = 0; i < componentsInChildren.Length; i++) - { - ConfigurableJoint configurableJoint = (ConfigurableJoint)componentsInChildren[i]; - Rigidbody component = configurableJoint.GetComponent<Rigidbody>(); - JointDrive angularXDrive = configurableJoint.angularXDrive; - angularXDrive.positionSpring = 5f * component.mass; - angularXDrive.positionDamper = 1f * component.mass; - configurableJoint.angularXDrive = angularXDrive; - configurableJoint.angularYZDrive = angularXDrive; - configurableJoint.SetTargetRotationLocal(configurableJoint.transform.localRotation, configurableJoint.gameObject.GetComponent<StartRotation>().startRotationLocal); - } - } - - public void Die() - { - if (!dead) - { - holding.Drop(); - dead = true; - ragdoll.ragdollValue = 0f; - Collider[] componentsInChildren = GetComponentsInChildren<Collider>(); - foreach (Collider collider in componentsInChildren) - { - collider.material = null; - } - } - } - - public void Kill() - { - terminalState = true; - Die(); - } -} |