CapersProject/Assets/02.Scripts/Tycoon/CardDataSo.cs
2024-09-24 19:09:17 +09:00

47 lines
1.6 KiB
C#

using System.Collections.Generic;
using BlueWater.Items;
using UnityEngine;
namespace BlueWater
{
[CreateAssetMenu(fileName = "CardTable", menuName = "ScriptableObjects/CardTable")]
public class CardDataSo : DataSo<CardData>
{
private Dictionary<string, int> _selectedCard = new Dictionary<string, int>(); // 선택된 카드를 저장함. <key = Idx / int = val>
public CardData GetRandCardData()
{
var rand = Random.Range(0, 100); // 범위를 0-100으로 조정
var checkAdd = 0;
foreach (var element in _datas.Values)
{
checkAdd += element.Ratio; // Ratio를 더하고 비교하도록 수정
if (checkAdd > rand) return element;
}
return null;
}
// 카드를 선택했을 때 호출
public void AddToSelectedCard(CardData cardData)
{
if (_selectedCard.ContainsKey(cardData.Idx))
{
_selectedCard[cardData.Idx] += 1;
Debug.Log(_selectedCard[cardData.Idx]);
}
else // 신규
{
_selectedCard[cardData.Idx] = 1; // TryAdd를 사용하지 않고 대입
Debug.Log(_selectedCard[cardData.Idx]);
}
}
// 카드가 MAX값인지 확인할 때 - MAX값이면 true를 리턴
public bool CardMaxCheck(CardData cardData)
{
return _selectedCard.TryGetValue(cardData.Idx, out var value) && cardData.Max != 0 && value >= cardData.Max;
}
}
}