示例#1
0
        public override void Select()
        {
            base.Select();

            textOverlay      = ToolBox.WrapText(TextManager.Get("campaignend1"), GameMain.GraphicsWidth / 3, GUI.Font);
            textOverlaySize  = GUI.Font.MeasureString(textOverlay);
            textOverlayTimer = 0.0f;

            video = Video.Load(GameMain.GraphicsDeviceManager.GraphicsDevice, GameMain.SoundManager, "Content/SplashScreens/Ending.webm");
            video.Play();
            creditsPlayer.Restart();
            creditsPlayer.Visible = false;
            SteamAchievementManager.UnlockAchievement("campaigncompleted", unlockClients: true);
        }
示例#2
0
        private bool SelectTab(GUIButton button, object obj)
        {
            titleText.Visible = true;
            if (obj is Tab)
            {
                if (GameMain.Config.UnsavedSettings)
                {
                    var applyBox = new GUIMessageBox(
                        TextManager.Get("ApplySettingsLabel"),
                        TextManager.Get("ApplySettingsQuestion"),
                        new string[] { TextManager.Get("ApplySettingsYes"), TextManager.Get("ApplySettingsNo") });
                    applyBox.Buttons[0].UserData  = (Tab)obj;
                    applyBox.Buttons[0].OnClicked = (tb, userdata) =>
                    {
                        applyBox.Close(button, userdata);
                        ApplySettings(button, userdata);
                        return(true);
                    };

                    applyBox.Buttons[1].UserData  = (Tab)obj;
                    applyBox.Buttons[1].OnClicked = (tb, userdata) =>
                    {
                        applyBox.Close(button, userdata);
                        DiscardSettings(button, userdata);
                        return(true);
                    };
                    return(false);
                }

                GameMain.Config.ResetSettingsFrame();
                selectedTab = (Tab)obj;

                switch (selectedTab)
                {
                case Tab.NewGame:
                    if (!GameMain.Config.CampaignDisclaimerShown)
                    {
                        selectedTab = 0;
                        GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.NewGame); });
                        return(true);
                    }
                    campaignSetupUI.CreateDefaultSaveName();
                    campaignSetupUI.RandomizeSeed();
                    campaignSetupUI.UpdateSubList(Submarine.SavedSubmarines);
                    break;

                case Tab.LoadGame:
                    campaignSetupUI.UpdateLoadMenu();
                    break;

                case Tab.Settings:
                    menuTabs[(int)Tab.Settings].RectTransform.ClearChildren();
                    GameMain.Config.SettingsFrame.RectTransform.Parent       = menuTabs[(int)Tab.Settings].RectTransform;
                    GameMain.Config.SettingsFrame.RectTransform.RelativeSize = Vector2.One;
                    break;

                case Tab.JoinServer:
                    if (!GameMain.Config.CampaignDisclaimerShown)
                    {
                        selectedTab = 0;
                        GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.JoinServer); });
                        return(true);
                    }
                    GameMain.ServerListScreen.Select();
                    break;

                case Tab.HostServer:
                    if (!GameMain.Config.CampaignDisclaimerShown)
                    {
                        selectedTab = 0;
                        GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.HostServer); });
                        return(true);
                    }
                    break;

                case Tab.Tutorials:
                    if (!GameMain.Config.CampaignDisclaimerShown)
                    {
                        selectedTab = 0;
                        GameMain.Instance.ShowCampaignDisclaimer(() => { SelectTab(null, Tab.Tutorials); });
                        return(true);
                    }
                    UpdateTutorialList();
                    break;

                case Tab.CharacterEditor:
                    Submarine.MainSub = null;
                    GameMain.CharacterEditorScreen.Select();
                    break;

                case Tab.SubmarineEditor:
                    GameMain.SubEditorScreen.Select();
                    break;

                case Tab.QuickStartDev:
                    QuickStart();
                    break;

                case Tab.SteamWorkshop:
                    if (!Steam.SteamManager.IsInitialized)
                    {
                        return(false);
                    }
                    GameMain.SteamWorkshopScreen.Select();
                    break;

                case Tab.Credits:
                    titleText.Visible = false;
                    creditsPlayer.Restart();
                    break;
                }
            }
            else
            {
                selectedTab = 0;
            }

            if (button != null)
            {
                button.Selected = true;
            }
            ResetButtonStates(button);

            return(true);
        }