diff --git a/Assets/Scenes/Dev.unity b/Assets/Scenes/Dev.unity index 7e63b54..39a8cce 100644 --- a/Assets/Scenes/Dev.unity +++ b/Assets/Scenes/Dev.unity @@ -1555,6 +1555,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: duration: 1 + knockback: 1 + stunDir: {x: 1000, y: 1000} --- !u!1 &1070079036 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/GrappleHook.cs b/Assets/Scripts/GrappleHook.cs index fbfef94..006c005 100644 --- a/Assets/Scripts/GrappleHook.cs +++ b/Assets/Scripts/GrappleHook.cs @@ -159,7 +159,6 @@ public class GrappleHook : MonoBehaviour private void UnStun(){ isStunned = false; - Debug.Log("unstunned"); } #endregion @@ -168,7 +167,6 @@ public class GrappleHook : MonoBehaviour public void Stun(float duration){ isStunned = true; EndGrapple(); - Debug.Log("Stunned"); Invoke("UnStun", duration); } #endregion diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 2656ade..e2b226a 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -6,9 +6,11 @@ public class PlayerController : MonoBehaviour { private GrappleHook grappleScript; private CharacterMovement movementScript; + private Rigidbody rb; // Start is called before the first frame update void Start() { + rb = GetComponent(); grappleScript = GetComponent(); movementScript = GetComponent(); } @@ -23,4 +25,8 @@ public class PlayerController : MonoBehaviour grappleScript.Stun(duration); movementScript.Stun(duration); } + + public void Knockback(Vector2 dir){ + rb.AddForce(dir); + } } diff --git a/Assets/Scripts/Stunning.cs b/Assets/Scripts/Stunning.cs index dc9900f..9f984b6 100644 --- a/Assets/Scripts/Stunning.cs +++ b/Assets/Scripts/Stunning.cs @@ -6,10 +6,19 @@ public class Stunning : MonoBehaviour { [SerializeField] private float duration; + [SerializeField] + private bool knockback = true; + [SerializeField] + private Vector2 stunDir; + private void OnCollisionEnter(Collision other) { if(other.gameObject.tag.Equals("Player")){//Collided w/ player, stun him - other.gameObject.GetComponent().Stun(duration); + PlayerController player = other.gameObject.GetComponent(); + player.Stun(duration); + if(knockback){ + player.Knockback(stunDir); + } } } }