aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Assets/Scripts/Controllers/GameController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Controllers/GameController.cs')
-rw-r--r--Assets/Scripts/Controllers/GameController.cs23
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;