diff options
-rw-r--r-- | Assets/Prefabs/Player.prefab | 2 | ||||
-rw-r--r-- | Assets/Scripts/Actors/Actor.cs | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index b9d27ee..cccb1c5 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -321,6 +321,7 @@ MonoBehaviour: groundCheckPoint1: {fileID: 2776418409611166769} groundCheckPoint2: {fileID: 5336306221325820075} invulnTime: 2 + hangTime: 2 stats: maxHealth: 0 speedMultiplier: 0 @@ -328,7 +329,6 @@ MonoBehaviour: jumpForce: 0 damage: 0 health: 0 - invuln: 0 projectilePrefab: {fileID: 9063295841416902692, guid: a0ba51ee3fa7d25428dd81d9ee48ace9, type: 3} firePoint: {fileID: 2776418409812533937} spawnPoint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/Actors/Actor.cs b/Assets/Scripts/Actors/Actor.cs index 3acd51c..96c67c2 100644 --- a/Assets/Scripts/Actors/Actor.cs +++ b/Assets/Scripts/Actors/Actor.cs @@ -17,6 +17,7 @@ namespace MontanaJohns.Actors [SerializeField] protected Transform groundCheckPoint1; [SerializeField] protected Transform groundCheckPoint2; [SerializeField] protected float invulnTime = 0f; + [SerializeField] protected float hangTime; protected Rigidbody2D _rigidBody; protected SpriteRenderer _renderer; @@ -30,11 +31,12 @@ namespace MontanaJohns.Actors protected Collection<Item> items; protected int jumpCount; protected Vector2 acceleration; + protected bool invuln; + protected float hangCount; public Stats stats; public int health; - private bool invuln; protected virtual void Awake() { @@ -104,8 +106,13 @@ namespace MontanaJohns.Actors if(Physics2D.OverlapCircle(groundCheckPoint1.position, 0.2f, groundLayers) || Physics2D.OverlapCircle(groundCheckPoint2.position, 0.2f, groundLayers)) { jumpCount = stats.maxJumps; + hangCount = hangTime; } - if (jumpCount > 0) + else + { + hangCount -= Time.deltaTime; + } + if (jumpCount > 0 && hangCount > 0f) { jumpCount--; _rigidBody.AddForce(Vector2.up * stats.jumpForce); |