using System.Text.RegularExpressions; using System.Collections.Generic; using Fruitomation.Game; using UnityEngine.UI; using UnityEngine; using System.Linq; using System; using PashaBibko.Pacore.Attributes; namespace Fruitomation.UI { public enum UpgradeState { Unlocked, Unlockable, Viewable, Hidden, } public class BasicUpgradeButton : MonoBehaviour { [Serializable] private class LineInfo { public RectTransform[] LinePoints; } [Header("Settings")] [SerializeField] private BasicUpgrade Upgrade; [SerializeField] private bool DrawDefaultLines; [SerializeField] private double Cost; [SerializeField] private bool BigText; [Header("References")] [SerializeField] private BasicUpgradeButton[] RequiredUpgrades; [SerializeField] private Material LineMaterial; [Header("Lines")] [SerializeField] private LineInfo[] Lines; private (LineRenderer, BasicUpgradeButton, LineInfo)[] UpgradeLines; [Header("Read Only")] [SerializeField, InspectorReadOnly] private UpgradeState State = UpgradeState.Hidden; [SerializeField, InspectorReadOnly] private Button AttachedButton; [SerializeField, InspectorReadOnly] private Text AttachedText; private void Awake() { const int TEXT_SCALAR = 5; AttachedText = gameObject.GetComponentInChildren(); AttachedText.transform.localScale = new Vector3(1f / TEXT_SCALAR, 1f / TEXT_SCALAR, 1f); AttachedText.fontSize = BigText ? 50 * TEXT_SCALAR : 35 * TEXT_SCALAR; AttachedButton = GetComponent