aboutsummaryrefslogtreecommitdiffstats
path: root/Assets/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/Actors/Actor.cs16
1 files changed, 11 insertions, 5 deletions
diff --git a/Assets/Scripts/Actors/Actor.cs b/Assets/Scripts/Actors/Actor.cs
index 30721a5..3acd51c 100644
--- a/Assets/Scripts/Actors/Actor.cs
+++ b/Assets/Scripts/Actors/Actor.cs
@@ -14,7 +14,8 @@ namespace MontanaJohns.Actors
{
[SerializeField] protected float gravityScale = 1.5f;
[SerializeField] protected Stats baseStats = Stats.DefaultBaseStats();
- [SerializeField] protected Transform groundCheckPoint;
+ [SerializeField] protected Transform groundCheckPoint1;
+ [SerializeField] protected Transform groundCheckPoint2;
[SerializeField] protected float invulnTime = 0f;
protected Rigidbody2D _rigidBody;
@@ -33,7 +34,7 @@ namespace MontanaJohns.Actors
public Stats stats;
public int health;
- public bool invuln;
+ private bool invuln;
protected virtual void Awake()
{
@@ -60,7 +61,7 @@ namespace MontanaJohns.Actors
protected virtual void FixedUpdate()
{
- if (!_animator.GetBool("airborn") && !Physics2D.OverlapCircle(groundCheckPoint.position, 0.2f, groundLayers))
+ if (!_animator.GetBool("airborn") && !(Physics2D.OverlapCircle(groundCheckPoint1.position, 0.2f, groundLayers) || Physics2D.OverlapCircle(groundCheckPoint2.position, 0.2f, groundLayers)))
{
_animator.SetTrigger("fall");
StartCoroutine(Falling());
@@ -98,7 +99,9 @@ namespace MontanaJohns.Actors
public virtual void Jump()
{
- if(Physics2D.OverlapCircle(groundCheckPoint.position, 0.2f, groundLayers))
+ if (isGrappling)
+ Use();
+ if(Physics2D.OverlapCircle(groundCheckPoint1.position, 0.2f, groundLayers) || Physics2D.OverlapCircle(groundCheckPoint2.position, 0.2f, groundLayers))
{
jumpCount = stats.maxJumps;
}
@@ -180,8 +183,11 @@ namespace MontanaJohns.Actors
{
_animator.SetBool("airborn", true);
- while (!Physics2D.OverlapCircle(groundCheckPoint.position, 0.2f, groundLayers))
+ bool falling = true;
+ while (falling)
{
+ if (Physics2D.OverlapCircle(groundCheckPoint1.position, 0.2f, groundLayers) || Physics2D.OverlapCircle(groundCheckPoint2.position, 0.2f, groundLayers))
+ falling = false;
yield return new WaitForEndOfFrame();
}