public override string ToString(Card card, bool capitalize = false) { StringBuilder toStringBuilder = new StringBuilder(); if (capitalize) { toStringBuilder.Append("Remove "); } else { toStringBuilder.Append("remove "); } if (!CountersExact) { toStringBuilder.Append("up to "); } if (NumCounters == 1) { toStringBuilder.Append("a counter "); } else { toStringBuilder.Append(NumCounters.ToString()); toStringBuilder.Append(" counters "); } switch (DivideMethod) { case DivideMethod.None: toStringBuilder.Append("from "); break; default: throw new InvalidOperationException("Unsupported DivideMethod for RemoveCounterEffect."); } if (!TargetsExact) { toStringBuilder.Append("up to "); } if (NumTargets > 1) { toStringBuilder.Append(NumTargets.ToString()); toStringBuilder.Append(" "); } switch (Target) { case Target.NonInfluence: toStringBuilder.Append("target non-influence card"); if (NumTargets > 1) { toStringBuilder.Append("s"); } break; case Target.AttachedShip: toStringBuilder.Append("attached ship"); break; case Target.OtherShipYouControl: toStringBuilder.Append("another target ship you control"); break; case Target.YourNonInfluence: toStringBuilder.Append("target non-influence card you control"); break; case Target.This: toStringBuilder.Append(card.Title); break; default: throw new InvalidOperationException("Unsupported Target for RemoveCounterEffect."); } return(toStringBuilder.ToString()); }
public override string ToString(Card card, bool capitalize = false) { StringBuilder toStringBuilder = new StringBuilder(); if (capitalize) { toStringBuilder.Append("Exhaust "); } else { toStringBuilder.Append("exhaust "); } if (Target != Target.This) { if (NumTargetsType == AmountType.Numeric) { if (NumTargets == 1) { toStringBuilder.Append("target"); } else { toStringBuilder.Append(NumTargets.ToString()); } } else { if ((card.EnergyCostType == AmountType.Variable) && (Description.ToDescription(card.EnergyCostVar).Contains(NumTargetsVar.ToString()))) { toStringBuilder.Append("any number of"); } else { toStringBuilder.Append(Description.ToDescription(NumTargetsVar)); } } } switch (Target) { case Target.YourChargedShips: toStringBuilder.Append(string.Format(" charged ship{0} you control", NumTargets == 1 ? string.Empty : "s")); break; case Target.This: toStringBuilder.Append(card.Title); break; default: throw new InvalidOperationException("Unsupported Target for ExhaustShipCost."); } if (NumTargetsType == AmountType.Variable) { if (!((card.EnergyCostType == AmountType.Variable) && (Description.ToDescription(card.EnergyCostVar).Contains(NumTargetsVar.ToString())))) { toStringBuilder.Append(". "); toStringBuilder.Append(Description.ToDescription(NumTargetsVar)); toStringBuilder.Append(" is the number of "); switch (Target) { case Target.YourChargedShips: toStringBuilder.Append("ships"); break; default: throw new InvalidOperationException("Unsupported Target for ExhaustShipCost."); } toStringBuilder.Append(" you exhausted this way"); } } return(toStringBuilder.ToString()); }