public static double GetEfficiencyChangeForOneReport(EfficiencySpeedData data) { if (data.TransportCount == 0) { data.TransportCount = 1; } return(Math.Abs((data.MinEfficiency - data.MaxEfficiency) / data.TransportCount)); }
/* * public double GetReportsAdded(int generatorId, double managerEfficiencyChange) { * * * if(managerEfficiencyChange < 0) { * * UnitStrengthData strengthData = Services.ResourceService.UnitStrengthDataRepository.GetStrengthData(generatorId); * int unitCount = Services.TransportService.GetUnitTotalCount(generatorId); * if(unitCount == 0 ) { * unitCount = 1; * } * * if(strengthData != null ) { * if(generatorId == 0 ) { * UDebug.Log($"handle adding report eff change: {managerEfficiencyChange}, ch * 2 * str * uCnt: {Math.Abs(managerEfficiencyChange) * 3 * strengthData.Strength * unitCount}".Attrib(bold: true, color: "cyan", italic: true)); * } * return Math.Abs(managerEfficiencyChange) * 3.0 * strengthData.Strength * unitCount; * } else { * UDebug.Log($"strength data for unit => {generatorId} not found".Colored(ConsoleTextColor.red)); * } * } * return 0.0; * * IManagerService mgrService = Services.ManagerService; * ReportGenerationData data = new ReportGenerationData { * CurrentEfficiency = mgrService.CurrentEfficiency(generatorId), * MinEfficiency = mgrService.MinManagerEfficiency, * MaxEfficiency = mgrService.MaxEfficiency(generatorId), * TransportCount = Services.TransportService.GetUnitTotalCount(generatorId), * CurrentReportCount = GetReportCount(generatorId) * }; * return ReportUtils.GetGeneratedReports(data); * }*/ public double GetEfficiencyChangeForOneReport(int generatorId) { int unitCount = Services.TransportService.GetUnitTotalCount(generatorId); if (unitCount == 0) { unitCount = 1; } IManagerService mgrService = Services.ManagerService; EfficiencySpeedData data = new EfficiencySpeedData { MinEfficiency = mgrService.MinManagerEfficiency, MaxEfficiency = mgrService.MaxEfficiency(generatorId), TransportCount = unitCount }; return(ReportUtils.GetEfficiencyChangeForOneReport(data)); /* * UnitStrengthData strengthData = null; * * try { * strengthData = Services.ResourceService.UnitStrengthDataRepository.GetStrengthData(generatorId); * int unitCount = Services.TransportService.GetUnitTotalCount(generatorId); * if (unitCount == 0) { * unitCount = 1; * } * * if (strengthData != null) { * return 1.0 / (3.0 * strengthData.Strength * unitCount); * } else { * return 0; * } * * } catch(Exception exc) { * UDebug.Log($"exception strength is null { strengthData == null } for gen {generatorId}"); * return 0; * }*/ }