diff options
Diffstat (limited to 'PlayerKnockback.cs')
-rw-r--r-- | PlayerKnockback.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/PlayerKnockback.cs b/PlayerKnockback.cs new file mode 100644 index 0000000..89fffb8 --- /dev/null +++ b/PlayerKnockback.cs @@ -0,0 +1,52 @@ +using UnityEngine; + +public class PlayerKnockback : MonoBehaviour +{ + private RigidbodyHolder allRigs; + + private StandingDataHandler standing; + + private WeaponHandler weapons; + + private void Start() + { + allRigs = GetComponent<RigidbodyHolder>(); + standing = GetComponent<StandingDataHandler>(); + weapons = GetComponent<WeaponHandler>(); + } + + private void Update() + { + if (Input.GetKeyDown(KeyCode.K)) + { + AddSeriousKnockback(); + } + } + + public void AddForce(Vector3 force, Rigidbody rig) + { + if (force.magnitude > 200f) + { + AddSeriousKnockback(); + force *= 0.1f; + } + for (int i = 0; i < allRigs.GetAllRigs().Length; i++) + { + float num = 1f; + if (rig == allRigs.GetAllRigs()[i]) + { + num *= 1f; + } + allRigs.GetAllRigs()[i].AddForce(force * num * 20f, ForceMode.Acceleration); + } + } + + private void AddSeriousKnockback() + { + GetComponent<PlayerDeath>().Kill(); + } + + private void AddNormalKnockback() + { + } +} |