SJTotalTaskPerformanceComponent.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using KYFramework;
  2. namespace SimulationServer;
  3. public class SJTotalTaskPerformance
  4. {
  5. public string 任务准备时间;
  6. public string 任务成功率;
  7. }
  8. public class SJTotalTaskPerformanceComponent : Component
  9. {
  10. public SJTotalTaskPerformance SJTotalTaskPerformance = new SJTotalTaskPerformance();
  11. public void FillData()
  12. {
  13. var mission = GetParent<SeaSJRescueMission>();
  14. float 识别成功率 = mission.aircrafts.FindAll(a => a.Success).Count / mission.aircrafts.Count;
  15. double 任务准备时间 = 0;
  16. int 任务成功次数 = 0;
  17. foreach (var aircraft in mission.aircrafts)
  18. {
  19. 任务准备时间 += aircraft.TaskReadyTime;
  20. 任务成功次数 += aircraft.Success ? 1 : 0;
  21. }
  22. SJTotalTaskPerformance.任务准备时间 = 任务准备时间.ToString();
  23. SJTotalTaskPerformance.任务成功率 = (任务成功次数 / mission.aircrafts.Count).ToString();
  24. }
  25. public Dictionary<string, Dictionary<string, string>> GetReport()
  26. {
  27. Dictionary<string, Dictionary<string, string>> report = new Dictionary<string, Dictionary<string, string>>();
  28. report["总任务表现"] = new Dictionary<string, string>
  29. {
  30. { "任务准备时间", SJTotalTaskPerformance.任务准备时间.ToString() },
  31. { "任务成功率", SJTotalTaskPerformance.任务成功率.ToString() },
  32. };
  33. return report;
  34. }
  35. }