private void generateMissionDebrief() { MinmusComposition s = getMinmusCompositionScenarioModule(); if (s != null) { MinmusCompositionMissionEndInformation info = new MinmusCompositionMissionEndInformation(); List <Vessel> satellite = getXraySatellites(); info.soiName = FlightGlobals.currentMainBody.name; info.velocity = average(velocities); if (satellite.Count > 0) { foreach (Vessel v in satellite) { info.lineOfSight.Add(NeutrinoSensorModule.isLineOfSight(vessel.GetWorldPos3D(), v.GetWorldPos3D())); info.distance.Add(Vector3d.Distance(vessel.GetWorldPos3D(), v.GetWorldPos3D())); } info.alt = vessel.heightFromTerrain; } else { info.lineOfSight.Add(false); } s.missionEnd(info); } }
public void missionEnd(MinmusCompositionMissionEndInformation info) { if (oneTrue(info.lineOfSight)) { KGSSPluginLogger.Log("Minmus Composition - Crash Altitude: " + info.alt); KGSSPluginLogger.Log("Minmus Composition - Crash Velocity: " + info.velocity); KGSSPluginLogger.Log("Minmus Composition - Crash SOI: " + info.soiName); foreach (double d in info.distance) { KGSSPluginLogger.Log("Minmus Composition - Crash Distance: " + d); } if (info.soiName.Equals(destinationSOI) && info.alt < TERRAIN_THRESHOLD) { resultText.Add("Mission Success - The KGSS is now busy analysing this latest data."); resultText.Add(""); resultText.Add("Impact Velocity: "); resultText.Add((Math.Round(info.velocity, 1) + " m/s")); int i = 0; foreach (double d in info.distance) { if (info.lineOfSight[i]) { resultText.Add("Distance from X-ray Satellite: "); resultText.Add((Math.Round(d, 1) + " m")); } i++; } resultText.Add("Mission Score: "); resultText.Add(((info.velocity * sumVectorIf(info.distance, info.lineOfSight) * (double)SCORE_MULT)).ToString()); Tutorial.StartTutorial(success); } else { resultText.Add("Mission Failed - The impact probe was destroyed before reaching the target."); Tutorial.StartTutorial(failure); } } else { resultText.Add("Mission Failed - The KGSS X-ray Satellite had no line of sight to the probes impact site."); Tutorial.StartTutorial(failure); } }
public void missionEnd(MinmusCompositionMissionEndInformation info) { if (oneTrue(info.lineOfSight)) { KGSSPluginLogger.Log("Minmus Composition - Crash Altitude: " + info.alt); KGSSPluginLogger.Log("Minmus Composition - Crash Velocity: " + info.velocity); KGSSPluginLogger.Log("Minmus Composition - Crash SOI: " + info.soiName); foreach (double d in info.distance) { KGSSPluginLogger.Log("Minmus Composition - Crash Distance: " + d); } if (info.soiName.Equals(destinationSOI) && info.alt < TERRAIN_THRESHOLD) { resultText.Add("Mission Success - The KGSS is now busy analysing this latest data."); resultText.Add(""); resultText.Add("Impact Velocity: "); resultText.Add((Math.Round(info.velocity, 1) + " m/s")); int i = 0; foreach (double d in info.distance) { if(info.lineOfSight[i]) { resultText.Add("Distance from X-ray Satellite: "); resultText.Add((Math.Round(d,1) + " m")); } i++; } resultText.Add("Mission Score: "); resultText.Add(((info.velocity * sumVectorIf(info.distance, info.lineOfSight) * (double)SCORE_MULT)).ToString()); Tutorial.StartTutorial(success); } else { resultText.Add("Mission Failed - The impact probe was destroyed before reaching the target."); Tutorial.StartTutorial(failure); } } else { resultText.Add("Mission Failed - The KGSS X-ray Satellite had no line of sight to the probes impact site."); Tutorial.StartTutorial(failure); } }