Exemplo n.º 1
0
    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);
        }
    }