From c500c71d07756d5f4bee8644fa6eb9a95e354b0e Mon Sep 17 00:00:00 2001 From: Carson Katri Date: Sat, 12 Jun 2021 23:28:54 -0400 Subject: Add game-end results overlay --- Assets/Scripts/Controllers/GameController.cs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'Assets/Scripts') diff --git a/Assets/Scripts/Controllers/GameController.cs b/Assets/Scripts/Controllers/GameController.cs index 9fbe674..6ebcabe 100644 --- a/Assets/Scripts/Controllers/GameController.cs +++ b/Assets/Scripts/Controllers/GameController.cs @@ -23,6 +23,10 @@ namespace Controllers /// [SerializeField] public Ball ball; + [Header("Spawn Points")] + [SerializeField] private SpawnPoints PlayerSpawnPoints; + [SerializeField] private SpawnPoints EnemySpawnPoints; + [Header("Hoops")] [SerializeField] public Hoop PlayerHoop; [SerializeField] public Hoop EnemyHoop; @@ -34,6 +38,9 @@ namespace Controllers [SerializeField] private Text playerScoreText; [SerializeField] private Text enemyScoreText; [SerializeField] private Text timerText; + + [SerializeField] private GameObject resultOverlay; + [SerializeField] private Text resultText; private void Awake() { @@ -60,10 +67,18 @@ namespace Controllers playerScoreText.text = $"{player.score}"; enemyScoreText.text = $"{enemy.score}"; - var remaining = TimeSpan.FromSeconds(timeLimit - (Time.time - startTime)); + var remainingRaw = timeLimit - (Time.time - startTime); + var remaining = TimeSpan.FromSeconds(Mathf.Clamp(remainingRaw, 0, float.MaxValue)); timerText.text = $"{remaining.Minutes:00}:{remaining.Seconds:00}"; + + 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}"; + } } - + public struct Player { /// @@ -167,6 +182,13 @@ namespace Controllers EnemyDribble, EnemyShoot, } + + [Serializable] + private struct SpawnPoints + { + [SerializeField] internal Transform ball; + [SerializeField] internal Transform character; + } } internal static class GameControllerStateExtensions -- cgit v1.2.3-56-ge451