Fix berry leaderboards

This commit is contained in:
2025-08-26 16:11:41 -07:00
parent cba75b57a3
commit 8e41b26f63

View File

@@ -273,10 +273,12 @@ public class LeaderboardsMenu : MonoBehaviour
} }
else else
{ {
var jsonResponse = JArray.Parse(response); var jsonResponse = JObject.Parse(response);
for (int i = 0; i < jsonResponse.Count; i++) var entries = (JArray)jsonResponse["entries"];
customIcons = jsonResponse["customIcons"].ToObject<Dictionary<string, string>>();
for (int i = 0; i < entries.Count; i++)
{ {
var entry = JObject.Parse(jsonResponse[i].ToString()); var entry = JObject.Parse(entries[i].ToString());
var username = (string)entry["username"]; var username = (string)entry["username"];
var highScore = BigInteger.Parse((string)entry["value"]); var highScore = BigInteger.Parse((string)entry["value"]);
var icon = (int)entry["icon"]; var icon = (int)entry["icon"];
@@ -284,6 +286,7 @@ public class LeaderboardsMenu : MonoBehaviour
var uid = BigInteger.Parse((string)entry["userid"]); var uid = BigInteger.Parse((string)entry["userid"]);
var birdColor = (JArray)entry["birdColor"]; var birdColor = (JArray)entry["birdColor"];
var overlayColor = (JArray)entry["overlayColor"]; var overlayColor = (JArray)entry["overlayColor"];
var customIcon = (string)entry["customIcon"];
var entryInfo = Instantiate(berrySampleObject, berryContent.transform); var entryInfo = Instantiate(berrySampleObject, berryContent.transform);
var usernameText = entryInfo.transform.GetChild(0).GetComponent<TMP_Text>(); var usernameText = entryInfo.transform.GetChild(0).GetComponent<TMP_Text>();
@@ -299,38 +302,46 @@ public class LeaderboardsMenu : MonoBehaviour
usernameText.text = $"{username} (#{i + 1})"; usernameText.text = $"{username} (#{i + 1})";
highScoreText.text += Tools.FormatWithCommas(highScore); highScoreText.text += Tools.FormatWithCommas(highScore);
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon); if (customIcon == null)
if (icon == 1)
{ {
playerIcon.sprite = Tools.GetIconForUser(uid); playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == 1)
{
playerIcon.sprite = Tools.GetIconForUser(uid);
}
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay);
if (overlay == 0)
{
playerOverlayIcon.gameObject.SetActive(false);
}
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
playerOverlayIcon.color = new Color((int)overlayColor[0] / 255f, (int)overlayColor[1] / 255f, (int)overlayColor[2] / 255f);
}
catch (Exception)
{
playerIcon.color = Color.white;
playerOverlayIcon.color = Color.white;
}
} }
playerOverlayIcon.sprite = Resources.Load<Sprite>("Icons/Overlays/overlay_" + overlay); else
if (overlay == 0)
{ {
Tools.RenderFromBase64(customIcons[customIcon], playerIcon);
playerOverlayIcon.gameObject.SetActive(false); playerOverlayIcon.gameObject.SetActive(false);
} }
else if (overlay == 8)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.56f, 14.81f);
}
else if (overlay == 11)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-14.74451f, 20.39122f);
}
else if (overlay == 13)
{
playerOverlayIcon.transform.localPosition = new UnityEngine.Vector2(-16.54019f, 14.70365f);
}
try
{
playerIcon.color = new Color((int)birdColor[0] / 255f, (int)birdColor[1] / 255f, (int)birdColor[2] / 255f);
playerOverlayIcon.color = new Color((int)overlayColor[0] / 255f, (int)overlayColor[1] / 255f, (int)overlayColor[2] / 255f);
}
catch (Exception)
{
playerIcon.color = Color.white;
playerOverlayIcon.color = Color.white;
}
entryInfo.SetActive(true); entryInfo.SetActive(true);
} }
} }