public virtual void SetupAbilityDeck(List <AbilityCardData> abilityDeckConfig) { foreach (AbilityCardData abilityData in abilityDeckConfig) { AbilityCard newAbilityCard = new AbilityCard(abilityData); AbilityDeck.Add(newAbilityCard); } AbilityDeck.Shuffle(); RaiseMain(AbilityDeck); }
// Shuffle Discards back into deck IEnumerator ReshuffleDiscards() { reshuffling = true; yield return(StartCoroutine(MoveDeckPanel(DiscardPanel, DeckKey))); deck.Add(discards); deck.Shuffle(); DeckPanel.Display(deck.Count); discards = new AbilityDeck(new List <Card>()); DiscardPanel.Display(discards.Count); yield return(StartCoroutine(MoveDeckPanel(DiscardPanel, DiscardKey))); reshuffling = false; }
// Animation: moves card panel at index i to discards, adds the panel's card to discards, and fills the panel with an empty card before moving it back IEnumerator DiscardEntry(int i) { if (i >= 0 && i < handSize && hand[i] != null && hand[i].GetName() != "") { yield return(StartCoroutine(MoveAbilityPanel(cardPanels[i], DiscardKey))); discards.Add(hand[i]); hand[i] = EmptyCard(); curHandSize--; RefreshEntry(i); DiscardPanel.Display(discards.Count); yield return(StartCoroutine(MoveAbilityPanel(cardPanels[i], GetCardKey(i)))); } SetDrawCooldown(); }
public virtual void ReshuffleDiscard() { // add event for reshuffling discard feedback? if (AbilityDiscard.Count > 0) { int _discardCount = AbilityDiscard.Count; for (int i = 0; i < _discardCount; i++) { // TODO might do something more here with the Add(List<T> function) AbilityDeck.Add(AbilityDiscard.Draw()); } RaiseMain(AbilityDeck); RaiseDiscard(AbilityDiscard); } // shuffle ability deck only if it contains more than 1 item if (AbilityDeck.Count > 1) { AbilityDeck.Shuffle(); } }