using UnityEngine; using TMPro; // СОБЫТИЯ: еженедельное событие "Сбор войск". Очки за бои, арену, задания, обучение войск. // Пороги очков открывают награды. В понедельник всё обнуляется -- новое событие. public class EventsPanel : BasePanel { TextMeshProUGUI timer; protected override void Build(RectTransform root) { var d = GP.Data; var list = ScrollList(root); var head = UIKit.Card(list, new Color(0.35f, 0.18f, 0.12f)); var title = UIKit.Text(head, GameData.EventTitle, 44, UIKit.Theme.Gold, TextAlignmentOptions.Center); title.fontStyle = FontStyles.Bold; timer = UIKit.Text(head, "", 26, UIKit.Theme.Text, TextAlignmentOptions.Center); Tick(); UIKit.Text(head, GameData.EventDescription, 24, UIKit.Theme.TextDim, TextAlignmentOptions.Center); int maxPoints = GameData.EventTiers[GameData.EventTiers.Length - 1]; var prog = UIKit.Card(list); UIKit.Text(prog, "Ваши очки: " + d.eventPoints, 34, UIKit.Theme.Text, TextAlignmentOptions.Center).fontStyle = FontStyles.Bold; UIKit.Bar(prog, (float)d.eventPoints / maxPoints, UIKit.Theme.Gold, 34, d.eventPoints + " / " + maxPoints); for (int i = 0; i < GameData.EventTiers.Length; i++) { int idx = i; bool claimed = GP.EventTierClaimed(i); bool ready = GP.EventTierReady(i); var card = UIKit.Card(list, ready ? UIKit.Theme.CardDone : (claimed ? UIKit.Theme.CardDark : UIKit.Theme.Card)); var row = UIKit.Row(card, 100, 14); UIKit.Icon(row, ready ? UIKit.Theme.Green : UIKit.Theme.Gray, (i + 1).ToString(), 90); var info = UIKit.Card(row, new Color(0, 0, 0, 0), 0, 4); UIKit.Size(info, -1, -1, 1); UIKit.Text(info, GameData.EventTiers[i] + " очков", 30).fontStyle = FontStyles.Bold; UIKit.Text(info, GameData.RewardsText(GameData.EventTierRewards[i]) + ", 20 опыта", 24, UIKit.Theme.TextDim); string label = claimed ? "Получено" : (ready ? "Забрать" : "Нужно ещё " + (GameData.EventTiers[i] - d.eventPoints)); var b = UIKit.Button(row, label, ready ? UIKit.Theme.Green : UIKit.Theme.Gray, () => GP.ClaimEventTier(idx), 230, 90, 24); b.interactable = ready; } // Быстрые переходы к источникам очков var go = UIKit.Card(list, UIKit.Theme.CardDark); UIKit.Text(go, "Где заработать очки:", 28, UIKit.Theme.TextDim); var r = UIKit.Row(go, 80, 10); UIKit.Size(UIKit.Button(r, "Бой", UIKit.Theme.Red, () => OpenPanel("Battle")), -1, 80, 1); UIKit.Size(UIKit.Button(r, "Арена", UIKit.Theme.Blue, () => OpenPanel("Arena")), -1, 80, 1); UIKit.Size(UIKit.Button(r, "Войска", UIKit.Theme.Gray, () => OpenPanel("Troops")), -1, 80, 1); } protected override void Tick() { if (timer != null) timer.text = "До конца события: " + GameData.FormatTime(GameProgress.SecondsToWeekEnd); } }