Leadebroards menu improvements

This commit is contained in:
2025-06-23 20:15:17 -07:00
parent 261d4a8985
commit 3a80abd28c
2 changed files with 243 additions and 1012 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -9,37 +9,40 @@ using UnityEngine.UI;
public class LeaderboardsMenu : MonoBehaviour public class LeaderboardsMenu : MonoBehaviour
{ {
public TMP_Text statusText; public TMP_Text statusText;
public Button backButton;
public Button refreshButton;
public GameObject selectionPanel; public GameObject selectionPanel;
public Button selectionScoreButton; public Button selectionScoreButton;
public Button selectionBerryButton; public Button selectionBerryButton;
public Button selectionBackButton;
public GameObject scorePanel; public GameObject scorePanel;
public GameObject scoreContent; public GameObject scoreContent;
public Button scoreBackButton;
public Button scoreRefreshButton;
public GameObject scoreSampleObject; public GameObject scoreSampleObject;
public GameObject berryPanel; public GameObject berryPanel;
public GameObject berryContent; public GameObject berryContent;
public TMP_Dropdown berryShowTypeDropdown; public TMP_Dropdown berryShowTypeDropdown;
public Button berryBackButton;
public Button berryRefreshButton;
public GameObject berrySampleObject; public GameObject berrySampleObject;
void Awake() void Awake()
{ {
selectionScoreButton.onClick.AddListener(() => SwitchMenu(1)); selectionScoreButton.onClick.AddListener(() => SwitchMenu(1));
selectionBerryButton.onClick.AddListener(() => SwitchMenu(2)); selectionBerryButton.onClick.AddListener(() => SwitchMenu(2));
selectionBackButton.onClick.AddListener(async () => await SceneManager.LoadSceneAsync("MainMenu"));
scoreBackButton.onClick.AddListener(() => SwitchMenu(0));
scoreRefreshButton.onClick.AddListener(() => GetTopPlayersScore());
berryShowTypeDropdown.onValueChanged.AddListener(value => GetTopPlayersBerry(value)); berryShowTypeDropdown.onValueChanged.AddListener(value => GetTopPlayersBerry(value));
berryBackButton.onClick.AddListener(() => SwitchMenu(0));
berryRefreshButton.onClick.AddListener(() => GetTopPlayersBerry(berryShowTypeDropdown.value));
backButton.onClick.AddListener(async () =>
{
if (selectionPanel.activeSelf) await SceneManager.LoadSceneAsync("MainMenu");
else if (scorePanel.activeSelf || berryPanel.activeSelf) SwitchMenu(0);
});
refreshButton.onClick.AddListener(() =>
{
if (scorePanel.activeSelf) GetTopPlayersScore();
else if (berryPanel.activeSelf) GetTopPlayersBerry(berryShowTypeDropdown.value);
});
} }
void SwitchMenu(int menu) { void SwitchMenu(int menu) {
@@ -62,17 +65,22 @@ public class LeaderboardsMenu : MonoBehaviour
switch (menu) switch (menu)
{ {
case 0: case 0:
refreshButton.gameObject.SetActive(false);
selectionPanel.SetActive(true); selectionPanel.SetActive(true);
scorePanel.SetActive(false); scorePanel.SetActive(false);
berryPanel.SetActive(false); berryPanel.SetActive(false);
break; break;
case 1: case 1:
refreshButton.transform.localPosition = new Vector2(-402.5f, -282.33f);
refreshButton.gameObject.SetActive(true);
GetTopPlayersScore(); GetTopPlayersScore();
selectionPanel.SetActive(false); selectionPanel.SetActive(false);
scorePanel.SetActive(true); scorePanel.SetActive(true);
berryPanel.SetActive(false); berryPanel.SetActive(false);
break; break;
case 2: case 2:
refreshButton.transform.localPosition = new Vector2(402.5f, 282.33f);
refreshButton.gameObject.SetActive(true);
berryShowTypeDropdown.value = 0; berryShowTypeDropdown.value = 0;
GetTopPlayersBerry(0); GetTopPlayersBerry(0);
selectionPanel.SetActive(false); selectionPanel.SetActive(false);
@@ -84,8 +92,8 @@ public class LeaderboardsMenu : MonoBehaviour
async void GetTopPlayersScore() async void GetTopPlayersScore()
{ {
scoreBackButton.interactable = false; backButton.interactable = false;
scoreRefreshButton.interactable = false; refreshButton.interactable = false;
foreach (Transform item in scoreContent.transform) foreach (Transform item in scoreContent.transform)
{ {
if (item.gameObject.activeSelf) if (item.gameObject.activeSelf)
@@ -172,15 +180,15 @@ public class LeaderboardsMenu : MonoBehaviour
{ {
UpdateStatus(true, "Failed to fetch leaderboard stats"); UpdateStatus(true, "Failed to fetch leaderboard stats");
} }
scoreBackButton.interactable = true; backButton.interactable = true;
scoreRefreshButton.interactable = true; refreshButton.interactable = true;
} }
async void GetTopPlayersBerry(int showAmount) async void GetTopPlayersBerry(int showAmount)
{ {
berryShowTypeDropdown.interactable = false; berryShowTypeDropdown.interactable = false;
berryBackButton.interactable = false; backButton.interactable = false;
berryRefreshButton.interactable = false; refreshButton.interactable = false;
foreach (Transform item in berryContent.transform) foreach (Transform item in berryContent.transform)
{ {
if (item.gameObject.activeSelf) if (item.gameObject.activeSelf)
@@ -269,8 +277,8 @@ public class LeaderboardsMenu : MonoBehaviour
UpdateStatus(true, "Failed to fetch leaderboard stats"); UpdateStatus(true, "Failed to fetch leaderboard stats");
} }
berryShowTypeDropdown.interactable = true; berryShowTypeDropdown.interactable = true;
berryBackButton.interactable = true; backButton.interactable = true;
berryRefreshButton.interactable = true; refreshButton.interactable = true;
} }
private void UpdateStatus(bool enabled, string message = "") private void UpdateStatus(bool enabled, string message = "")