using System.Collections.Generic; using Sirenix.OdinInspector; using TMPro; using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class DiscardPopupUi : MonoBehaviour { private enum RemoveType { NONE = 0, SINGLE, MULTI } [SerializeField, Required] private TMP_Text contentText; [SerializeField, Required] private TMP_Text countText; [SerializeField, Required] private GameObject countSelectUi; private List selectedList = new(); private int currentCount = 1; private RemoveType removeType; public void DiscardMessage(ItemSlotUi selectedSlot) { removeType = RemoveType.SINGLE; selectedList.Clear(); selectedList.Add(selectedSlot); contentText.text = ItemManager.Inst.ItemDictionary[selectedSlot.ItemSlot.Idx].name + "을(를) 버리시겠습니까?"; currentCount = 1; countText.text = currentCount.ToString(); countSelectUi.SetActive(true); gameObject.SetActive(true); } public void DiscardAllMessage(List selectedSlotList) { removeType = RemoveType.MULTI; selectedList = new List(selectedSlotList); contentText.text = "선택한 물품을 모두 버리시겠습니까?"; countSelectUi.SetActive(false); gameObject.SetActive(true); } public void CountDownButton() { currentCount--; currentCount = Mathf.Clamp(currentCount, 1, selectedList[0].ItemSlot.Count); countText.text = currentCount.ToString(); } public void CountUpButton() { currentCount++; currentCount = Mathf.Clamp(currentCount , 1, selectedList[0].ItemSlot.Count); countText.text = currentCount.ToString(); } public void DiscardButton() { if (removeType == RemoveType.SINGLE) { DataManager.Inst.CurrentInventory.RemoveItem(selectedList[0].ItemSlot, currentCount); } else if (removeType == RemoveType.MULTI) { foreach (var element in selectedList) { DataManager.Inst.CurrentInventory.RemoveItem(element.ItemSlot, element.ItemSlot.Count); } } CancelButton(); } public void CancelButton() { removeType = RemoveType.NONE; selectedList.Clear(); countSelectUi.SetActive(false); gameObject.SetActive(false); } } }