CapersProject/Assets/02.Scripts/Tycoon/CardDataSo.cs

47 lines
1.6 KiB
C#
Raw Normal View History

2024-09-24 10:09:17 +00:00
using System.Collections.Generic;
2024-09-12 04:17:34 +00:00
using BlueWater.Items;
using UnityEngine;
2024-09-24 10:09:17 +00:00
2024-09-12 04:17:34 +00:00
namespace BlueWater
{
[CreateAssetMenu(fileName = "CardTable", menuName = "ScriptableObjects/CardTable")]
2024-09-24 10:09:17 +00:00
2024-09-12 04:17:34 +00:00
public class CardDataSo : DataSo<CardData>
{
2024-09-24 10:09:17 +00:00
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]);
}
}
2024-09-12 04:17:34 +00:00
2024-09-24 10:09:17 +00:00
// 카드가 MAX값인지 확인할 때 - MAX값이면 true를 리턴
public bool CardMaxCheck(CardData cardData)
{
return _selectedCard.TryGetValue(cardData.Idx, out var value) && cardData.Max != 0 && value >= cardData.Max;
}
2024-09-12 04:17:34 +00:00
}
}