using Entity; using TMPro; using UnityEngine; using UnityEngine.UI; namespace UI { public abstract class ShopCardUI : MonoBehaviour { [SerializeField] protected TMP_Text label; [SerializeField] protected Image icon; [SerializeField] protected TMP_Text description; [SerializeField] protected Button EnterButton; public ShopUI shopUI; private float labelTextOriginalY; protected int ShoppingCost; protected virtual void Awake() { labelTextOriginalY = label.transform.localPosition.y; ShoppingCost=Configs.ConfigManager.Instance.GetValue("ShoppingCost"); if(Program.Instance.FocusedEntity is Character character) { EnterButton.interactable = ShoppingCost <= character.Coin.Quantity; } } public abstract void Init(); protected void SetLabel(string text) { label.text = text; switch (text.Length) { case > 6: label.fontSize = 46; label.transform.localPosition = new Vector3(label.transform.localPosition.x, labelTextOriginalY + 7); break; case > 4: label.fontSize = 46; label.transform.localPosition = new Vector3(label.transform.localPosition.x, labelTextOriginalY); break; default: label.fontSize = 62; label.transform.localPosition = new Vector3(label.transform.localPosition.x, labelTextOriginalY); break; } } public virtual void OnEnter() { shopUI?.OnHide(); } } }