Leaderboard now sorts icons properly

This commit is contained in:
djkellerman
2025-03-28 21:27:09 -04:00
parent 0bf6ab0da7
commit 2913d4b927
2 changed files with 36 additions and 4 deletions

View File

@@ -46,6 +46,25 @@ public class GameManager : MonoBehaviour
StartGame();
}
private void Update() // Continuously updates player hold times
{
foreach (var player in players)
{
float holdTime = GetPlayerHoldTime(player);
UpdatePlayerHoldTime(player, holdTime);
}
}
private float GetPlayerHoldTime(GameObject player)
{
UseItem useItem = player.GetComponent<UseItem>();
if (useItem != null)
{
return useItem.holdTime;
}
return 0f;
}
public void StartGame() // Sets up the proper gamemode
{
GameManager.playerHoldTimes.Clear();
@@ -167,14 +186,29 @@ public class GameManager : MonoBehaviour
public void UpdatePlayerHoldTime(GameObject player, float holdTime)
{
bool shouldSort = false;
if (playerHoldTimes.ContainsKey(player))
{
if (holdTime > playerHoldTimes[player])
{
shouldSort = true;
}
playerHoldTimes[player] = holdTime;
}
else
{
playerHoldTimes.Add(player, holdTime);
shouldSort = true;
}
// Update the player's hold time text
LeaderboardManager.Instance.UpdatePlayerHoldTimeText(player, holdTime);
// Sort the leaderboard if necessary
if (shouldSort)
{
LeaderboardManager.Instance.UpdateLeaderboard();
}
LeaderboardManager.Instance.UpdateLeaderboard();
}
}

View File

@@ -51,11 +51,10 @@ public class LeaderboardManager : MonoBehaviour
foreach (var player in sortedList)
{
playerIcons[player.Key].transform.SetSiblingIndex(sortedList.IndexOf(player));
UpdatePlayerHoldTimeText(player.Key, player.Value);
}
}
private void UpdatePlayerHoldTimeText(GameObject player, float holdTime) // Updates the hold times of each player shown on the leaderboard
public void UpdatePlayerHoldTimeText(GameObject player, float holdTime) // Updates the hold times of each player shown on the leaderboard
{
if (playerIcons.ContainsKey(player))
{
@@ -69,4 +68,3 @@ public class LeaderboardManager : MonoBehaviour
}
}
}