Improvements again

This commit is contained in:
2026-02-02 14:31:40 -07:00
parent 7d7228f49a
commit 1ba758f235
2 changed files with 60 additions and 82 deletions

View File

@@ -1,4 +1,3 @@
using System;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
@@ -103,77 +102,67 @@ public class LeaderboardsMenu : MonoBehaviour
request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientVersion", Application.version);
request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest(); await request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success) if (request.downloadHandler.text == null)
{ {
UpdateStatus(false); UpdateStatus(true, "Failed to fetch leaderboard stats");
string response = request.downloadHandler.text; return;
try }
UpdateStatus(false);
var jsonResponse = JObject.Parse(request.downloadHandler.text);
if ((bool)jsonResponse["success"])
{
foreach (var entry in jsonResponse["data"].ToObject<LeaderboardEntry[]>())
{ {
var jsonResponse = JObject.Parse(response); var entryInfo = Instantiate(sampleObject, content.transform);
if ((bool)jsonResponse["success"]) var usernameText = entryInfo.transform.GetChild(0).GetComponent<TMP_Text>();
var playerIcon = usernameText.transform.GetChild(0).GetComponent<Image>();
var playerIconButton = usernameText.transform.GetChild(0).GetComponent<Button>();
var playerOverlay = playerIcon.transform.GetChild(0).GetComponent<Image>();
var scoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
usernameText.text = $"{entry.Username} (#{entry.UserID + 1})";
scoreText.text = (mode == 2 ? "Coins: " : "Berries: ") + Tools.FormatWithCommas(entry.Value);
if (BazookaManager.Instance.GetAccountID() == entry.UserID)
{ {
foreach (var entry in jsonResponse["data"].ToObject<LeaderboardEntry[]>()) usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
scoreText.text = $"<color=#7FFFD4>{scoreText.text}</color>";
}
if (entry.CustomIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + entry.Icon);
if (entry.Icon == 1) playerIcon.sprite = Tools.GetIconForUser(entry.UserID);
playerOverlay.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + entry.Overlay);
if (entry.Overlay != 0) playerOverlay.gameObject.SetActive(true);
if (entry.Overlay == 8) playerOverlay.transform.localPosition = new Vector2(-16.56f, 14.81f);
else if (entry.Overlay == 11) playerOverlay.transform.localPosition = new Vector2(-14.74451f, 20.39122f);
else if (entry.Overlay == 13) playerOverlay.transform.localPosition = new Vector2(-16.54019f, 14.70365f);
try
{ {
var entryInfo = Instantiate(sampleObject, content.transform); playerIcon.color = new Color(entry.BirdColor[0] / 255f, entry.BirdColor[1] / 255f, entry.BirdColor[2] / 255f);
var usernameText = entryInfo.transform.GetChild(0).GetComponent<TMP_Text>(); playerOverlay.color = new Color(entry.BirdColor[0] / 255f, entry.BirdColor[1] / 255f, entry.BirdColor[2] / 255f);
var playerIcon = usernameText.transform.GetChild(0).GetComponent<Image>(); }
var playerIconButton = usernameText.transform.GetChild(0).GetComponent<Button>(); catch
var playerOverlay = playerIcon.transform.GetChild(0).GetComponent<Image>(); {
var scoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>(); playerIcon.color = Color.white;
playerOverlay.color = Color.white;
usernameText.text = $"{entry.Username} (#{entry.UserID + 1})";
scoreText.text = (mode == 2 ? "Coins: " : "Berries: ") + Tools.FormatWithCommas(entry.Value);
if (BazookaManager.Instance.GetAccountID() == entry.UserID)
{
usernameText.text = $"<color=#7FFFD4>{usernameText.text}</color>";
scoreText.text = $"<color=#7FFFD4>{scoreText.text}</color>";
}
if (entry.CustomIcon == null)
{
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + entry.Icon);
if (entry.Icon == 1) playerIcon.sprite = Tools.GetIconForUser(entry.UserID);
playerOverlay.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + entry.Overlay);
if (entry.Overlay != 0) playerOverlay.gameObject.SetActive(true);
if (entry.Overlay == 8) playerOverlay.transform.localPosition = new Vector2(-16.56f, 14.81f);
else if (entry.Overlay == 11) playerOverlay.transform.localPosition = new Vector2(-14.74451f, 20.39122f);
else if (entry.Overlay == 13) playerOverlay.transform.localPosition = new Vector2(-16.54019f, 14.70365f);
try
{
playerIcon.color = new Color(entry.BirdColor[0] / 255f, entry.BirdColor[1] / 255f, entry.BirdColor[2] / 255f);
playerOverlay.color = new Color(entry.BirdColor[0] / 255f, entry.BirdColor[1] / 255f, entry.BirdColor[2] / 255f);
}
catch
{
playerIcon.color = Color.white;
playerOverlay.color = Color.white;
}
}
else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = entry.CustomIcon;
playerIconButton.onClick.AddListener(async () =>
{
var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
clone.SetActive(true);
await clone.GetComponent<ProfileMenu>().Init(entry.UserID);
});
entryInfo.SetActive(true);
} }
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
} }
else else playerIcon.gameObject.AddComponent<WaitingForCustomIcon>().ID = entry.CustomIcon;
playerIconButton.onClick.AddListener(async () =>
{ {
UpdateStatus(true, (string)jsonResponse["message"]); var clone = Instantiate(profilePrefab.gameObject, profilePrefab.gameObject.transform.parent);
} clone.SetActive(true);
} await clone.GetComponent<ProfileMenu>().Init(entry.UserID);
catch (Exception e) });
{ entryInfo.SetActive(true);
UpdateStatus(true, "Failed to fetch leaderboard stats: " + e);
} }
CustomIconLoader.Init(FindObjectsByType<WaitingForCustomIcon>(FindObjectsSortMode.None));
} }
else else
{ {
UpdateStatus(true, "Failed to fetch leaderboard stats"); UpdateStatus(true, (string)jsonResponse["message"]);
} }
backButton.interactable = true; backButton.interactable = true;
refreshButton.interactable = true; refreshButton.interactable = true;

View File

@@ -289,28 +289,17 @@ public class ProfileMenu : MonoBehaviour
request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientVersion", Application.version);
request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); request.SetRequestHeader("ClientPlatform", Application.platform.ToString());
await request.SendWebRequest(); await request.SendWebRequest();
if (request.downloadHandler.text == null) if (request.downloadHandler.text == null) return;
var jsonResponse = JObject.Parse(request.downloadHandler.text);
if ((bool)jsonResponse["success"])
{ {
return; BigInteger likes = BigInteger.Parse((string)jsonResponse["data"]["likes"]);
} entryLikesCount.text = Tools.FormatWithCommas(likes);
string response = request.downloadHandler.text; entryLikesTexture.text = likes < 0 ? "\\uf165" : "\\uf164";
try entryLikesTexture.color = likes < 0 ? new Color(1f, 0f, 0.5f) : new Color(1f, 1f, 0f);
{ var likedPosts = BazookaManager.Instance.GetLikedPosts();
var jsonResponse = JObject.Parse(response); likedPosts.Add(postId.ToString());
if ((bool)jsonResponse["success"]) BazookaManager.Instance.SetLikedPosts(likedPosts);
{
BigInteger likes = BigInteger.Parse((string)jsonResponse["data"]["likes"]);
entryLikesCount.text = Tools.FormatWithCommas(likes);
entryLikesTexture.text = likes < 0 ? "\\uf165" : "\\uf164";
entryLikesTexture.color = likes < 0 ? new Color(1f, 0f, 0.5f) : new Color(1f, 1f, 0f);
var likedPosts = BazookaManager.Instance.GetLikedPosts();
likedPosts.Add(postId.ToString());
BazookaManager.Instance.SetLikedPosts(likedPosts);
}
}
catch
{
Debug.LogError("Failed to proccess vote");
} }
} }