using UnityEngine; using TMPro; using UnityEngine.UI; // public class CardUI : MonoBehaviour { [SerializeField] private TextMeshProUGUI effectText; [SerializeField] private Image iconImage; [SerializeField] private Outline selectionOutline; // ⭐ 인스펙터에서 테두리 컴포넌트 연결 private CardData cardData; private LevelUpUIManager uiManager; private StatType s1, s2; private int v1, v2; private bool isRandomCard = false; public void Setup(CardData data, LevelUpUIManager manager) { cardData = data; uiManager = manager; if (selectionOutline != null) selectionOutline.enabled = false; // 처음엔 테두리 끔 // (랜덤 스탯 카드 데이터 처리 로직 - 기존 코드 유지) RandomStatCardData randomData = cardData as RandomStatCardData; if (randomData != null) { isRandomCard = true; s1 = randomData.possibleStats[Random.Range(0, randomData.possibleStats.Length)]; do { s2 = randomData.possibleStats[Random.Range(0, randomData.possibleStats.Length)]; } while (s1 == s2); v1 = Random.Range(Mathf.Max(1, randomData.minValue), Mathf.Max(1, randomData.maxValue) + 1); v2 = Random.Range(Mathf.Min(-1, randomData.minValue), -1 + 1); effectText.text = $"{s1} +{v1}\n{s2} {v2}"; } else { effectText.text = cardData.GetText(); } } // 카드 클릭 시 매니저에게 알림 public void OnClick() { uiManager.OnCardClick(this); } // 선택 시 하이라이트 연출 public void SetSelected(bool isSelected) { if (selectionOutline != null) selectionOutline.enabled = isSelected; transform.localScale = isSelected ? Vector3.one * 1.05f : Vector3.one; } // APPLY 버튼 누를 때 최종 실행될 효과 public void ApplyCurrentEffect() { if (isRandomCard) { RandomStatCardData rd = cardData as RandomStatCardData; rd.ApplyToPlayer(s1, v1); rd.ApplyToPlayer(s2, v2); } else { cardData.Execute(); } FindObjectOfType()?.RefreshHealthUI(); } }