using System.Collections; using System.Linq; using Newtonsoft.Json; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class IconMarketplaceDownloadIcon : MonoBehaviour { public IconMarketplaceManager marketplaceManager; public TMP_Text statusText; public TMP_Text balanceText; public Button backButton; public GameObject content; public GameObject sample; private string statusMessage; private Coroutine statusRoutine; void Awake() { backButton.onClick.AddListener(() => marketplaceManager.SwitchPanel(0)); } internal void Load() { GetIcons(); balanceText.text = "You have " + Tools.FormatWithCommas(BazookaManager.Instance.GetCustomBirdIconData().Balance) + " coins to spend"; } async void GetIcons() { foreach (Transform item in content.transform) { if (item.gameObject.activeSelf) { Destroy(item.gameObject); } } ShowStatus("Loading..."); using UnityWebRequest request = UnityWebRequest.Get(SensitiveInfo.SERVER_DATABASE_PREFIX + "getMarketplaceIcons.php"); request.SetRequestHeader("Requester", "BerryDashClient"); request.SetRequestHeader("ClientVersion", Application.version); request.SetRequestHeader("ClientPlatform", Application.platform.ToString()); await request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) { ShowStatus("Failed to make HTTP request"); return; } string response = SensitiveInfo.Decrypt(request.downloadHandler.text, SensitiveInfo.SERVER_RECEIVE_TRANSFER_KEY); if (response == "-999") { ShowStatus("Server error while fetching data"); return; } else if (response == "-998") { ShowStatus("Client version too outdated to access servers"); return; } else if (response == "-997") { ShowStatus("Encryption/decryption issues"); return; } else if (response == "-996") { ShowStatus("Can't send requests on self-built instance"); return; } else { ShowStatus(null); var icons = JsonConvert.DeserializeObject(response); foreach (var entry in icons) { GameObject newIcon = Instantiate(sample, content.transform); newIcon.name = "IconEntry"; Tools.RenderFromBase64(entry.Data, newIcon.transform.GetChild(0).GetChild(0).GetComponent()); newIcon.transform.GetChild(1).GetComponent().text = "Bird Name: " + entry.Name; newIcon.transform.GetChild(2).GetComponent().text = "Price " + entry.Price + " coin"; newIcon.transform.GetChild(3).GetComponent().text = "Designer Name: " + entry.CreatorUsername; var btn = newIcon.transform.GetChild(4).GetComponent