public static List<Creature> matchingCreatures(Component toCheck) { List<Creature> matchedCreatures = new List<Creature>(); foreach (Creature c in loadedCreatures) foreach (Component otherComponent in c.RequiredComponents) if (toCheck.MatchesComponent(otherComponent, c.Names)) { matchedCreatures.Add(c); break; } return matchedCreatures; }