Esempio n. 1
0
        public static float GetNextReportValue(ScienceSubject subject, ScienceExperiment experiment, List <ScienceData> onboard, float xmitScalar = 1f)
        {
            var data = new ScienceData(experiment.baseValue * experiment.dataScale * HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier, xmitScalar, 0f, subject.id, string.Empty);

            data.labBoost = ModuleScienceLab.GetBoostForVesselData(FlightGlobals.ActiveVessel, data);

            xmitScalar += data.labBoost;

#if DEBUG
            //Log.Debug("GetNextReportValue for {0}, calculated labBoost of {1}", experiment.experimentTitle, data.labBoost);
#endif
            if (onboard.Count == 0)
            {
                return(ResearchAndDevelopment.GetScienceValue(experiment.baseValue * experiment.dataScale, subject, xmitScalar) * HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier);
            }

            float experimentValue = ResearchAndDevelopment.GetNextScienceValue(experiment.baseValue * experiment.dataScale, subject, xmitScalar) * HighLogic.CurrentGame.Parameters.Career.ScienceGainMultiplier;

            if (onboard.Count == 1)
            {
                return(experimentValue);
            }

            // we'll have to estimate
            return(experimentValue / UnityEngine.Mathf.Pow(4f, onboard.Count - 1));
        }
 private void experimentResultsPage(ScienceData data)
 {
     if (scienceReports.Count > 0)
     {
         ExperimentResultDialogPage page = new ExperimentResultDialogPage(part, data, transmitValue, ModuleScienceLab.GetBoostForVesselData(vessel, data), false, "", true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab));
         ExperimentsResultDialog.DisplayResult(page);
     }
 }
Esempio n. 3
0
        public void ReviewData()
        {
            if (handler == null)
            {
                return;
            }

            if (handler.GetScienceCount() <= 0)
            {
                return;
            }

            ScienceData data = handler.GetData()[0];

            results = ExperimentsResultDialog.DisplayResult(new ExperimentResultDialogPage(part, data, data.transmitValue, ModuleScienceLab.GetBoostForVesselData(vessel, data), false, transmitWarningText, true, new ScienceLabSearch(vessel, data), new Callback <ScienceData>(onDiscardData), new Callback <ScienceData>(onKeepData), new Callback <ScienceData>(onTransmitData), new Callback <ScienceData>(onSendToLab)));
        }