using Cysharp.Threading.Tasks; using KYFramework; using KYFramework.Network; namespace SimulationServer; [Event] public class MHSimulationOverrEventHandler : AEvent { protected override UniTask Run(MHSimulationOver mhSimulationOver) { S2C_StmulationEnd end = new S2C_StmulationEnd(); end.FirePointId = mhSimulationOver.Mission.FireGround.FirePointName; // 所有飞机的数据 foreach (var kv in mhSimulationOver.Mission.singleReport) { EntitySheetReportValue aircraftValue = GetSheetReportValue(kv.Key + "-灭火任务单机指标报告", kv.Value); end.EntitySheetReportValueArr.Add(aircraftValue); } // 总体数据 EntitySheetReportValue totalValue = GetSheetReportValue("灭火任务总体指标报告", mhSimulationOver.Mission.totalReport); end.EntitySheetReportValueArr.Add(totalValue); // 装备数据 EntitySheetReportValue equipmentValue = GetSheetReportValue("装备体系评估报告", mhSimulationOver.Mission.equipReport); end.EntitySheetReportValueArr.Add(equipmentValue); SessionComponent.Instance.Session.Send(end); return UniTask.CompletedTask; } public EntitySheetReportValue GetSheetReportValue(string name,Dictionary>> report) { EntitySheetReportValue aircraftValue = new EntitySheetReportValue(); aircraftValue.Name = name; //每架飞机的所有sheet foreach (var kv1 in report) { SheetReportValue sheetValue = new SheetReportValue(); sheetValue.Name = kv1.Key; aircraftValue.SheetReportValueArr.Add(sheetValue); //每个sheet的所有数据 foreach (var kv2 in kv1.Value) { ReportValue reportValue = new ReportValue(); reportValue.Name = kv2.Key; reportValue.Value = kv2.Value.First(); sheetValue.ValueArr.Add(reportValue); } } return aircraftValue; } }