Improvements again
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user