private void ConsumeMana(int manaToConsume)
        {
            manaSlots.RemoveRange(0, manaToConsume);
            var consumedMana = manaToConsume;

            manaSlots.AddRange(Enumerable.Repeat(ManaSlot.Empty(), consumedMana));
        }
        public static Duelist Restore(string id, int health, int mana, int manaSlots, Deck deck, IList <Card> hand)
        {
            var completeManaSlots = new List <ManaSlot>()
                                    .Concat(Enumerable.Repeat(ManaSlot.Filled(), mana))
                                    .Concat(Enumerable.Repeat(ManaSlot.Empty(), manaSlots - mana))
                                    .ToList();

            return(new Duelist(id, health, completeManaSlots, deck, hand.ToList()));
        }
 internal void RefillMana()
 {
     manaSlots = manaSlots.Map(_ => ManaSlot.Filled()).ToList();
 }
 internal void IncrementManaSlot()
 {
     manaSlots.Add(ManaSlot.Empty());
 }