예제 #1
0
        protected void sendPressRelease(Vessel komet)
        {
            try
            {
                Log("Generating press release");
                StringBuilder         resultsMessage = new StringBuilder();
                MessageSystem.Message msg;
                string[] kometNameItems = komet.vesselName.Split(new char[] { '/' });

                resultsMessage.AppendLine(kometNameItems[1] + "'s Komet has been discovered! It has been designated " + komet.vesselName + " by astronomers.");
                resultsMessage.AppendLine(" ");
                resultsMessage.AppendLine("We currently know very little about the komet, other than the following:");
                resultsMessage.AppendLine(" ");
                resultsMessage.AppendLine("Discovered: " + KSPUtil.dateTimeFormatter.PrintDateCompact(komet.DiscoveryInfo.lastObservedTime, false, false));
                resultsMessage.AppendLine("Orbiting: " + komet.orbit.referenceBody.name);
                resultsMessage.AppendLine("Size Category: " + DiscoveryInfo.GetSizeClassSizes(komet.DiscoveryInfo.objectSize));
                resultsMessage.AppendLine("Orbital Period: " + KSPUtil.PrintTimeLong(komet.orbit.period));
                resultsMessage.AppendLine(komet.DiscoveryInfo.signalStrengthPercent.OneLiner);

                msg = new MessageSystem.Message(kometNameItems[1] + "'s Komet Discovered!", resultsMessage.ToString(),
                                                MessageSystemButton.MessageButtonColor.GREEN, MessageSystemButton.ButtonIcons.ACHIEVE);
                MessageSystem.Instance.AddMessage(msg);
            }
            catch (Exception ex)
            {
                Log("Oops: " + ex);
            }
        }
예제 #2
0
        private void draw(int id)
        {
            if (!simTermination)
            {
                if (GUILayout.Button("Resume Simulation"/*, _guiSkin.button */))
                {
                    Log.Info("Close 1");
                    Close();
                }

                GUILayout.Space(SPACER);
            }
            if (GUILayout.Button("<color=orange>Terminate Simulation</color>"/*, _guiSkin.button */))
            {
                string revertTarget;

                switch (KRASHShelter.lastScene)
                {
                    case GameScenes.EDITOR:
                        switch (KRASHShelter.lastEditor)
                        {
                            case EditorFacility.SPH:
                                revertTarget = "Spaceplane Hangar";
                                break;
                            case EditorFacility.VAB:
                                revertTarget = "Vehicle Assembly Building";
                                break;
                            // This should never happen. If it does, just go to the SC
                            default:
                                revertTarget = "Space Center";
                                KRASHShelter.lastScene = GameScenes.SPACECENTER;
                                break;
                        }
                        break;
                    case GameScenes.SPACECENTER:
                        revertTarget = "Space Center";
                        break;
                    default:
                        revertTarget = "Pre-Simulation";
                        break;
                }
                string s = "Revert to " + revertTarget + " (" + KSPUtil.PrintTimeLong(((int)(Planetarium.GetUniversalTime() - FlightDriver.PostInitState.UniversalTime)));
                DialogGUIBase[] options = new DialogGUIBase[2];

                options[0] = new DialogGUIButton(s, () =>
                {
                    StartCoroutine(WaitForFlightResultsDialog());
                });
                options[1] = new DialogGUIButton("Cancel", () =>
                {
                    Log.Info("Close 2");

                    Close();
                });
                var multidialog = new MultiOptionDialog("krash2", "Terminating will set the game back to an earlier state. Are you sure you want to continue?", "Terminating Simulation",
                                      HighLogic.UISkin, 450, options);

                _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), multidialog, false, HighLogic.UISkin, true);
                Hide();
            }


            if (FlightDriver.CanRevertToPostInit)
            {

                if (GUILayout.Button("<color=orange>Restart Simulation</color>"/*, _guiSkin.button*/))
                {

                    DialogGUIBase[] options = new DialogGUIBase[2];
                    string s = "Revert to Launch(" + KSPUtil.PrintTimeLong(((int)(Planetarium.GetUniversalTime() - FlightDriver.PostInitState.UniversalTime))) + " ago";
                    options[0] = new DialogGUIButton(s, () =>
                    {
                        Log.Info("Close 3");

                        Close();
                        Log.Info("Close 4");

                        Close();
                        FlightDriver.RevertToLaunch();
                        // The RevertTolaunch reloads all the objects, so we destroy them here to avoid conflicts
                        KRASHShelter.instance.DestroyModules();
                    });
                    options[1] = new DialogGUIButton("Cancel", () =>
                    {
                        Log.Info("Close 5");

                        Close();
                    });


                    var multidialog = new MultiOptionDialog("krash3", "Reverting will set the game back to an earlier state. Are you sure you want to continue?", "Reverting Simulation",
                                          HighLogic.UISkin, 450, options);




                    _activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), multidialog, false, HighLogic.UISkin, true);

                    //						_activePopup = PopupDialog.SpawnPopupDialog(new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f),
                    //							new MultiOptionDialog(null, new Callback (drawRevertWarning), "Reverting Simulation", HighLogic.Skin, new DialogOption[0]), false, HighLogic.Skin);
                    APIManager.ApiInstance.SimRestartEvent.Fire((Vessel)FlightGlobals.ActiveVessel, KRASHShelter.simCost + KRASHShelter.simSetupCost);
                    Hide();
                }
            }

            GUILayout.Space(SPACER);

            if (GUILayout.Button("Settings"/*, _guiSkin.button*/))
            {
                Hide();
                _miniSettings = MiniSettings.Create(Unhide);
            }
#if false
			} else {
예제 #3
0
 public string PrintTimeLong(double time) => KSPUtil.PrintTimeLong(time);