From af13ca7f36f617c95e3932bb3282e7a5ffa8d2fe Mon Sep 17 00:00:00 2001 From: Carson Katri Date: Sun, 13 Jun 2021 00:19:02 -0400 Subject: Add loose ball foul --- Assets/Scripts/Controllers/GameController.cs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'Assets/Scripts/Controllers/GameController.cs') diff --git a/Assets/Scripts/Controllers/GameController.cs b/Assets/Scripts/Controllers/GameController.cs index 303b5a0..4bdae38 100644 --- a/Assets/Scripts/Controllers/GameController.cs +++ b/Assets/Scripts/Controllers/GameController.cs @@ -77,9 +77,10 @@ namespace Controllers if (remainingRaw <= 0) { - resultOverlay.SetActive(true); var outcome = player.score == enemy.score ? "TIE GAME" : player.score < enemy.score ? "AWAY TEAM WINS" : "HOME TEAM WINS"; - resultText.text = $"{outcome}\n{player.score}-{enemy.score}"; + ShowModal($"{outcome}\n{player.score}-{enemy.score}"); + + freezeMotion = true; } } @@ -110,7 +111,7 @@ namespace Controllers } // They made a shot! Now respawn the players and give possession to the opposite player. - controller.Respawn(isEnemy ? Possession.Player : Possession.Enemy); + controller.Respawn(isEnemy ? Possession.Player : Possession.Enemy, $"{controller.player.score}-{controller.enemy.score}"); } private State dribble => isEnemy ? State.EnemyDribble : State.PlayerDribble; @@ -170,6 +171,12 @@ namespace Controllers lastShotPosition = playerTransform.position; return true; } + + public void Foul(string reason) + { + // Give the other player the ball on a foul. + controller.Respawn(isEnemy ? Possession.Player : Possession.Enemy, reason); + } } internal void BallDropped() @@ -180,8 +187,10 @@ namespace Controllers state = State.Idle; } - private void Respawn(Possession possession) + private void Respawn(Possession possession, string message) { + BallDropped(); + PlayerSpawnPoints.body.transform.position = new Vector3(PlayerSpawnPoints.character.position.x, PlayerSpawnPoints.character.position.y, PlayerSpawnPoints.body.transform.position.y); PlayerSpawnPoints.body.GetComponent().velocity = Vector2.zero; @@ -202,14 +211,14 @@ namespace Controllers }; // Set a cooldown so they can stop trying to wrangle the player while it respawns. - StartCoroutine(RespawnCooldown(possession)); + StartCoroutine(RespawnCooldown(possession, message)); } - private IEnumerator RespawnCooldown(Possession possession) + private IEnumerator RespawnCooldown(Possession possession, string message) { // Show the new score. var possessionText = possession == Possession.Player ? "HOME" : "AWAY"; - ShowModal($"{player.score}-{enemy.score}\n{possessionText}'S POSSESSION"); + ShowModal($"{message}\n{possessionText}'S POSSESSION"); freezeMotion = true; -- cgit v1.2.3-56-ge451