using System.Collections; using System.Collections.Generic; using UnityEngine; public class Deck : MonoBehaviour { public List cardDataList; public List drawList; public List handList; public List discardList; public List wasteList; public int randomSeed; // Start is called before the first frame update void Start() { randomSeed = 200; Random.InitState(randomSeed); // Add cards into cardDataList } // Update is called once per frame void Update() { } public void DrawCards(int amount) { for (int i = 0; i < amount; i++) { handList.Add(drawList[drawList.Count - 1]); drawList.RemoveAt(drawList.Count - 1); } } public void UseACard(int index) { // TODO: Add card type into card data // Chech if the card is waste card; //if (handList[index].cardTags == wastCard) //{ // wasteList.Add(handList[index]); //} //else //{ discardList.Add(handList[index]); //} handList.RemoveAt(index); } public void AddACardIntoDiscardList(CardData card) { discardList.Add(card); } private void Shuffle() { Debug.LogError("Start Shuffle."); Debug.LogError("DrawList count: " + drawList.Count); Debug.LogError("DiscardList count: " + discardList.Count); // Put all cards in drawList into discardList if (drawList.Count > 0) { for (int i = 0; i < drawList.Count; i++) { discardList.Add(drawList[i]); } drawList.Clear(); } do { int index = Random.Range(0, discardList.Count); drawList.Add(discardList[index]); discardList[index] = discardList[discardList.Count - 1]; discardList.RemoveAt(discardList.Count - 1); } while (discardList.Count != 0); Debug.LogError("DrawList count: " + drawList.Count); Debug.LogError("DiscardList count: " + discardList.Count); Debug.LogError("End Shuffle."); } }