public override bool CanUse(ElementType[] field = null) { if (field == null) return false; foreach (var cost in ElementCost) { if (field.Count(fe => fe == cost.ElementType) < cost.Amount) return false; } return true; }