/// <summary> /// Fires the events for card draw /// </summary> /// <param name="cardData"></param> protected void TriggerDrawCardEvents(Card card) { OnCardDraw?.Invoke(card); if (CurrentHand.Count < MaxHandSize) { AddCardToHand(card); } }
public void Draw() { // Draw default card when nothing on your deck if (Deck.Count == 0) { Debug.LogWarning("No cards in the deck!"); for (int i = 0; i < 2; i++) { Deck.Add(defaultCardData); } Hands.Add(defaultCardData); Debug.Log($"Card added: {defaultCardData.Name}, {Hands.Count}"); Debug.Log($"{UnitData.Name}, {UserType.ToString()}"); // Don't tirgger UI if (UserType == UserType.Computer) { return; } OnCardDraw?.Invoke(this, defaultCardData); return; } var random = new System.Random(); var idx = random.Next(Deck.Count); var card = Deck[idx]; // Remove from the deck and add to hand // Deck.RemoveAt(idx); Hands.Add(card); Debug.Log($"Card added: {card.Name}, {Hands.Count}"); Debug.Log($"{UnitData.Name}, {UserType.ToString()}"); // Don't tirgger UI if (UserType == UserType.Computer) { return; } OnCardDraw?.Invoke(this, card); }