using System.Collections.Generic; using Fruitomation.Game; using UnityEngine.UI; using UnityEngine; using System.Linq; using System; namespace Fruitomation.UI { public class BasicUpgradeButton : MonoBehaviour { [Serializable] private class LineInfo { public RectTransform[] LinePoints; } private enum UpgradeState { Unlocked, Unlockable, Viewable, Hidden, } [Header("Settings")] [SerializeField] private BasicUpgrade Upgrade; [SerializeField] private int UpgradeCost; [SerializeField] private bool DrawDefaultLines; [Header("References")] [SerializeField] private BasicUpgradeButton[] RequiredUpgrades; [SerializeField] private Material LineMaterial; [Header("Lines")] [SerializeField] private LineInfo[] Lines; private (LineRenderer, BasicUpgradeButton, LineInfo)[] UpgradeLines; private UpgradeState State = UpgradeState.Hidden; private Button AttachedButton; private Text AttachedText; private void Awake() { AttachedText = gameObject.GetComponentInChildren(); AttachedButton = GetComponent