Files
Crash-Course/Assets/Scripts/Game/WinScreen.cs
djkellerman 0838aebf89 Lots of fixes. 2 BUGS FOUND (read)
Added white border to flag sprite.  Removed debug.log testing code. Fixed hat respawn bug. Positioned all flags/end zones in every map properly. Extensively tested each gamemode with 3 players and found 2 bugs I cannot seem to fix.

First bug I found is the Win Screen that displays during FreeForAll always only shows Player 1 as the winner, regardless of the actual winner. The Win Screen fails to update to the proper player and color after a player wins. This only happens while playing FreeForAll, on any map other than Clouds. The Clouds map, and every other gamemode and map combination works just fine.

The second bug I found could be considered a feature if we wanted. During a Keep Away game, when the Hat is inactive for too long, it appears to spaz over the screen for a second right before respawning. I'm not sure if this is an animation bug or a spawnpoint bug in the code.

Other than these two bugs, every map has been extensively tested and tweaked to work properly for every gamemode.
2025-04-18 00:34:33 -04:00

50 lines
1.1 KiB
C#

using System.Collections.Generic;
using TMPro;
using UnityEngine; using Game; using Music; using Player;
namespace Game
{
public class WinScreen : MonoBehaviour
{
public static WinScreen Instance;
public List<TextMeshProUGUI> playerTexts;
private void Awake() // Ensures only one instance of WinScreen exists
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy(this.gameObject);
}
}
public void ShowWinScreen(int player)
{
if (player - 1 < 0 || player - 1 >= GameManager.playerColors.Count)
{
return;
}
foreach (TextMeshProUGUI playerText in playerTexts)
{
playerText.text = "Player " + player;
if (playerText.color != Color.black)
{
playerText.color = GameManager.playerColors[player - 1];
}
}
Animator animator = GetComponent<Animator>();
if (animator == null)
{
return;
}
animator.SetTrigger("win");
}
}
}