MHSimulationOverrEventHandler.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Cysharp.Threading.Tasks;
  2. using KYFramework;
  3. using KYFramework.Network;
  4. namespace SimulationServer;
  5. [Event]
  6. public class MHSimulationOverrEventHandler : AEvent<MHSimulationOver>
  7. {
  8. protected override UniTask Run(MHSimulationOver mhSimulationOver)
  9. {
  10. S2C_StmulationEnd end = new S2C_StmulationEnd();
  11. end.FirePointId = mhSimulationOver.Mission.FireGround.FirePointName;
  12. // 所有飞机的数据
  13. foreach (var kv in mhSimulationOver.Mission.singleReport)
  14. {
  15. EntitySheetReportValue aircraftValue = GetSheetReportValue(kv.Key + "-灭火任务单机指标报告", kv.Value);
  16. end.EntitySheetReportValueArr.Add(aircraftValue);
  17. }
  18. // 总体数据
  19. EntitySheetReportValue totalValue = GetSheetReportValue("灭火任务总体指标报告", mhSimulationOver.Mission.totalReport);
  20. end.EntitySheetReportValueArr.Add(totalValue);
  21. // 装备数据
  22. EntitySheetReportValue equipmentValue = GetSheetReportValue("装备体系评估报告", mhSimulationOver.Mission.equipReport);
  23. end.EntitySheetReportValueArr.Add(equipmentValue);
  24. SessionComponent.Instance.Session.Send(end);
  25. return UniTask.CompletedTask;
  26. }
  27. public EntitySheetReportValue GetSheetReportValue(string name,Dictionary<string, Dictionary<string, List<string>>> report)
  28. {
  29. EntitySheetReportValue aircraftValue = new EntitySheetReportValue();
  30. aircraftValue.Name = name;
  31. //每架飞机的所有sheet
  32. foreach (var kv1 in report)
  33. {
  34. SheetReportValue sheetValue = new SheetReportValue();
  35. sheetValue.Name = kv1.Key;
  36. aircraftValue.SheetReportValueArr.Add(sheetValue);
  37. //每个sheet的所有数据
  38. foreach (var kv2 in kv1.Value)
  39. {
  40. ReportValue reportValue = new ReportValue();
  41. reportValue.Name = kv2.Key;
  42. reportValue.Value = kv2.Value.First();
  43. sheetValue.ValueArr.Add(reportValue);
  44. }
  45. }
  46. return aircraftValue;
  47. }
  48. }