]> git.cameronkatri.com Git - gmtk-gamejam.git/commitdiff
Add non working time shooting
authorCameron Katri <me@cameronkatri.com>
Sun, 13 Jun 2021 01:25:59 +0000 (21:25 -0400)
committerCameron Katri <me@cameronkatri.com>
Sun, 13 Jun 2021 01:25:59 +0000 (21:25 -0400)
Assets/Scripts/Controllers/AIController.cs
Assets/Scripts/Controllers/Ball.cs
Assets/Scripts/Controllers/GameController.cs
Assets/Scripts/Controllers/Player/PlayerController.cs

index 4879c4c25f9e77361def7daae13d81fb7b4da0d7..bd5fee1165aa96ccae8544d59a124c94d9551f4c 100644 (file)
@@ -55,7 +55,7 @@ namespace Controllers
       var playerHoopDistance = Mathf.Abs(player.root.transform.position.x - game.EnemyHoop.transform.position.x);
       if (hoopDistance < 6f && hoopDistance > 2.5f && (Random.Range(0, 100) > 30 || playerHoopDistance > hoopDistance)) // Take the shot when in range. 70% chance he decides to if the player is standing between him and the basket.
       {
-        game.enemy.Shoot(transform);
+        game.enemy.Shoot(transform, 0f);
       }
     }
 
index 07e1b37f50fc99c3d5cd70de5cf023ab53826948..936b857e1b83ed4aca69ede6e99699aa6530d760 100644 (file)
@@ -20,11 +20,11 @@ namespace Controllers
       controller.BallDropped();
     }
 
-    public void Shoot(Vector3 target)
+    public void Shoot(Vector3 target, float time)
     {
       transform.right = target - transform.position;
       Rigidbody.velocity = Vector2.zero;
-      Rigidbody.AddForce((transform.right + (transform.up * 0.5f)) * shotForce);
+      Rigidbody.AddForce((transform.right + (transform.up * 0.5f)) * (shotForce * ((Mathf.Clamp(time, 0f, 1f) + 1))));
     }
   }
 }
index 3260fb27e11de3bb19e8c4120c1ce10eb9e78e44..775875a397677c0550d90b8a2501ececb46e66bb 100644 (file)
@@ -125,15 +125,16 @@ namespace Controllers
       /// Shoot the ball if possible.
       /// </summary>
       /// <param name="playerTransform"></param>
+      /// <param name="time"></param>
       /// <returns>Whether or not the ball was shot</returns>
-      public bool Shoot(Transform playerTransform)
+      public bool Shoot(Transform playerTransform, float time)
       {
         if (controller.state != dribble) return false; // We must be dribbling the ball to shoot it.
         controller.BallAnimation.enabled = true;
         controller.dribbleSound.Stop();
         controller.state = shoot;
         controller.ball.Rigidbody.bodyType = RigidbodyType2D.Dynamic;
-        controller.ball.Shoot(hoop.transform.position);
+        controller.ball.Shoot(hoop.transform.position, time);
         lastShotPosition = playerTransform.position;
         return true;
       }
index 8aa0f2523d40cc3c5b2785a9d5cad48ebfab8d51..1360b6cf997f915bb36ac31b972a30ff9e1688f4 100644 (file)
@@ -21,6 +21,8 @@ namespace Controllers.Player
 
     public PlayerSegment root => segments[0];
 
+    private float ShootStartTime;
+
     private void Awake()
     {
       foreach (var segment in segments) {
@@ -98,7 +100,10 @@ namespace Controllers.Player
       
       // Try shooting the ball if pressed.
       if (Input.GetKeyDown(controls.shoot))
-        game.player.Shoot(segments.Last().transform);
+        ShootStartTime = Time.time;
+
+      if (Input.GetKeyUp(controls.shoot))
+        game.player.Shoot(segments.Last().transform, ShootStartTime - Time.time);
     }
     
     [Serializable]