using System; using UnityEngine; using UnityEngine.UI; using TMPro; // ПОЧТА: список писем (новые подсвечены), чтение письма, подарки во вложениях, // "Забрать всё" и "Удалить прочитанные". Письма приходят сами: приветствие, новый уровень и т.д. public class MailPanel : BasePanel { int openedId; // 0 -- показываем список protected override void OnEnable() { base.OnEnable(); openedId = 0; } protected override void Build(RectTransform root) { var mail = openedId != 0 ? GP.GetMail(openedId) : null; if (mail == null) { openedId = 0; BuildList(root); } else BuildLetter(root, mail); } void BuildList(RectTransform root) { var col = UIKit.Card(root, new Color(0, 0, 0, 0), 0, 12); UIKit.Stretch(col); var top = UIKit.Row(col, 80, 12); UIKit.Size(UIKit.Button(top, "Забрать всё", UIKit.Theme.Green, () => GP.ClaimAllMail()), -1, 80, 1); UIKit.Size(UIKit.Button(top, "Удалить прочитанные", UIKit.Theme.Gray, () => GP.DeleteReadMail()), -1, 80, 1); var holder = UIKit.Make("ListHolder", col); UIKit.Size(holder, -1, -1).flexibleHeight = 1; var list = ScrollList(holder, 10); if (GP.Data.mail.Count == 0) { UIKit.Text(list, "Писем нет", 32, UIKit.Theme.TextDim, TextAlignmentOptions.Center, 150); return; } foreach (var m in GP.Data.mail) { var mm = m; bool unread = !m.read; bool gift = m.HasRewards && !m.claimed; var card = UIKit.Card(list, unread ? new Color(0.24f, 0.24f, 0.3f) : UIKit.Theme.CardDark, 16, 4); var btn = card.gameObject.AddComponent