/* Formula: ProbeCount + (ET_Self - ET_Target) * ABS(ET_Self - ET_Target) * <2 Resources * 2 Resources + Fleet * 3 Resources + Fleet + Defense * 5 Resources + Fleet + Defense + Buildings * 7 Resources + Fleet + Defense + Buildings + Research */ public IEnumerable <Target> GetTargets(IEnumerable <EspionageReport> reports) { // Has ships but not defense, just one more probe away return(reports.Where(r => r.Details.HasFlag(ReportDetails.Ships) && !r.Details.HasFlag(ReportDetails.Defense) && ((PlanetShips)r.DetectedShips).TotalValue >= MinValue) .Select(r => new Target { Destination = r.Coordinate, Fleet = FleetComposition.ToSpy(ProbeCount + 1), Mission = MissionType.Espionage })); }