diff options
Diffstat (limited to 'Assets/Scripts/Controllers/GameController.cs')
-rw-r--r-- | Assets/Scripts/Controllers/GameController.cs | 23 |
1 files changed, 16 insertions, 7 deletions
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<Rigidbody2D>().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; |