internal void Add(ManaAmount newAmount)
 {
     amount.Add(newAmount);
 }
        public bool TrySubtract(ManaAmount amount)
        {
            if (!ContainsAtLeast(amount))
                return false;

            whiteAmount -= amount.whiteAmount;
            blueAmount -= amount.blueAmount;
            blackAmount -= amount.blackAmount;
            redAmount -= amount.redAmount;
            greenAmount -= amount.greenAmount;
            colorlessAmount -= amount.colorlessAmount;
            return true;
        }
 public void Add(ManaAmount amount)
 {
     whiteAmount += amount.whiteAmount;
     blueAmount += amount.blueAmount;
     blackAmount += amount.blackAmount;
     redAmount += amount.redAmount;
     greenAmount += amount.greenAmount;
     colorlessAmount += amount.colorlessAmount;
 }
 public bool ContainsAtLeast(ManaAmount amount)
 {
     return (whiteAmount >= amount.whiteAmount &&
         blueAmount >= amount.blueAmount &&
         blackAmount >= amount.blackAmount &&
         redAmount >= amount.redAmount &&
         greenAmount >= amount.greenAmount &&
         colorlessAmount >= amount.colorlessAmount);
 }