/* 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
            }));
        }