protected override bool generateScienceData() { ScienceExperiment experiment = ResearchAndDevelopment.GetExperiment("FNSeismicProbeExperiment"); if (experiment == null) { return(false); } //ScienceSubject subject = ResearchAndDevelopment.GetExperimentSubject(experiment, ExperimentSituations.SrfLanded, vessel.mainBody, "surface"); //if (subject == null) { // return false; //} //subject.scientificValue = 1; //subject.scienceCap = float.MaxValue; //subject.science = 1; //subject.subjectValue = 1; result_title = "Impactor Experiment"; result_string = "No useful seismic data has been recorded."; transmit_value = 0; recovery_value = 0; data_size = 0; xmit_scalar = 1; ref_value = 1; // science_data = new ScienceData(0, 1, 0, subject.id, "data"); ConfigNode config = PluginHelper.getPluginSaveFile(); if (config.HasNode("SEISMIC_SCIENCE_" + vessel.mainBody.name.ToUpper())) { ConfigNode planet_data = config.GetNode("SEISMIC_SCIENCE_" + vessel.mainBody.name.ToUpper()); foreach (ConfigNode probe_data in planet_data.nodes) { if (probe_data.name.Contains("IMPACT_")) { science_vess_ref = probe_data.name; bool transmitted = false; string vessel_name = ""; float science_amount = 0; int exp_number = 1; if (probe_data.HasValue("transmitted")) { transmitted = bool.Parse(probe_data.GetValue("transmitted")); } if (probe_data.HasValue("vesselname")) { vessel_name = probe_data.GetValue("vesselname"); } if (probe_data.HasValue("science")) { science_amount = float.Parse(probe_data.GetValue("science")); } if (probe_data.HasValue("number")) { exp_number = int.Parse(probe_data.GetValue("number")); } if (!transmitted) { ScienceSubject subject = ResearchAndDevelopment.GetExperimentSubject(experiment, ExperimentSituations.SrfLanded, vessel.mainBody, vessel.mainBody.name + "'s surface."); if (subject == null) { return(false); } result_string = vessel_name + " impacted into " + vessel.mainBody.name + " producing seismic activity. From this data, information on the structure of " + vessel.mainBody.name + "'s crust can be determined."; transmit_value = science_amount; recovery_value = science_amount; subject.subjectValue = 1; subject.scientificValue = 1; subject.scienceCap = 50 * PluginHelper.getImpactorScienceMultiplier(vessel.mainBody.flightGlobalsIndex) * 10; //subject.science = 0; data_size = science_amount * 2.5f; science_data = new ScienceData(science_amount, 1, 0, subject.id, "Impactor Data"); ref_value = 50 * PluginHelper.getImpactorScienceMultiplier(vessel.mainBody.flightGlobalsIndex); return(true); } } } } return(false); }