summaryrefslogtreecommitdiff
path: root/PlayerDeath.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-03-13 11:38:18 +0800
committerchai <215380520@qq.com>2024-03-13 11:38:18 +0800
commit134f1deb971b0514a26e04e23926f91983a5497f (patch)
treed790681bb000c07abae9f557a7d0ef2442fac467 /PlayerDeath.cs
parent6ce8b9e22fc13be34b442c7b6af48b42cd44275a (diff)
* move
Diffstat (limited to 'PlayerDeath.cs')
-rw-r--r--PlayerDeath.cs125
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();
- }
-}