public IEnumerable <IUnitTemplate> GetCuttingEdgeUnitsForCiv(ICivilization civ) { return(AllUpgradeLines.Select( line => line.Units.LastOrDefault(unitTemplate => TechCanon.IsUnitResearchedForCiv(unitTemplate, civ)) ).Where(line => line != null).Distinct()); }