public static IDictionary <string, object> LineQuery(Character character, Container container, long cprgEid, Mill mill) { var calibrationProgram = (CalibrationProgram)container.GetItemOrThrow(cprgEid); var targetDefinition = calibrationProgram.TargetDefinition; targetDefinition.ThrowIfEqual(0, ErrorCodes.CPRGNotProducible); var targetDefault = EntityDefault.Get(targetDefinition); if (calibrationProgram.IsMissionRelated || targetDefault.CategoryFlags.IsCategory(CategoryFlags.cf_random_items)) { if (mill.GetDockingBase().IsOnGammaZone()) { throw new PerpetuumException(ErrorCodes.MissionItemCantBeProducedOnGamma); } } calibrationProgram.HasComponents.ThrowIfFalse(ErrorCodes.CPRGNotProducible); var replyDict = mill.QueryMaterialAndTime(calibrationProgram, character, targetDefinition, calibrationProgram.MaterialEfficiencyPoints, calibrationProgram.TimeEfficiencyPoints); replyDict.Add(k.materialEfficiency, calibrationProgram.MaterialEfficiencyPoints); replyDict.Add(k.timeEfficiency, calibrationProgram.TimeEfficiencyPoints); return(replyDict); }