Пример #1
0
    public static void MultiplayerLeaveLobby()
    {
        ConfirmMenu menu = MenuSystem.instance.GetMenu <ConfirmMenu>();

        if (NetGame.isServer)
        {
            if (NetGame.instance.allclients.Count <= 0)
            {
                App.instance.StopServer();
                return;
            }
            menu.SetUp("MULTIPLAYER/CONFIRM.StopLobby", "MULTIPLAYER/CONFIRM.WillDestroyLobby", "MULTIPLAYER/CONFIRM.STOPLOBBY", "MULTIPLAYER/CONFIRM.CANCEL", delegate
            {
                App.instance.StopServer();
            }, delegate
            {
                menu.TransitionBack <MultiplayerLobbyMenu>();
            });
        }
        else
        {
            menu.SetUp("MULTIPLAYER/CONFIRM.LeaveLobby", "MULTIPLAYER/CONFIRM.Leaving", "MULTIPLAYER/CONFIRM.LEAVE", "MULTIPLAYER/CONFIRM.CANCEL", delegate
            {
                App.instance.LeaveLobby();
            }, delegate
            {
                menu.TransitionBack <MultiplayerLobbyMenu>();
            });
        }
        MenuSystem.instance.activeMenu.TransitionForward <ConfirmMenu>();
    }
Пример #2
0
    public void WeaponSelectAction()
    {
        ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM);

        Action onYesAction = () => {
            string currentScene = SceneTracker.CurrentSceneName;

            Action loadWeaponSelectAction = () => {
                WeaponSelectMenu weaponMenu = (WeaponSelectMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.WEAPON_SELECT);
                weaponMenu.DefineNavigation(Strings.MenuStrings.MAIN, Strings.MenuStrings.LOAD);
                LoadMenu lm = (LoadMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD);
                lm.SetNavigation(currentScene);

                MenuManager.Instance.DoTransition(weaponMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE });
            };

            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { });
            LoadMenu loadMenu = (LoadMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD);
            loadMenu.SetNavigation(Strings.Scenes.ScenePaths.MainMenu, loadWeaponSelectAction);

            MenuManager.Instance.DoTransition(loadMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE });
        };

        Action onNoAction = () => {
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
            SelectInitialButton();
        };

        confirmMenu.DefineActions("This will end your current game. Are you sure?", onYesAction, onNoAction);

        MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });
    }
 public void LeaveClick()
 {
     if (MenuSystem.CanInvoke && App.state != AppSate.Menu)
     {
         ConfirmMenu.MultiplayerLeaveLobby();
     }
 }
Пример #4
0
    public static void MultiplayerExitGame()
    {
        ConfirmMenu menu = MenuSystem.instance.GetMenu <ConfirmMenu>();

        if (NetGame.isServer)
        {
            menu.SetUp("MULTIPLAYER/CONFIRM.ExitToLobby", "MULTIPLAYER/CONFIRM.WillTransferToLobby", "MULTIPLAYER/CONFIRM.EXIT", "MULTIPLAYER/CONFIRM.CANCEL", delegate
            {
                App.instance.PauseLeave();
            }, delegate
            {
                menu.TransitionBack <MultiplayerPauseMenu>();
            });
        }
        else
        {
            menu.SetUp("MULTIPLAYER/CONFIRM.ExitMultiplayer", "MULTIPLAYER/CONFIRM.WillExitMultiplayer", "MULTIPLAYER/CONFIRM.EXIT", "MULTIPLAYER/CONFIRM.CANCEL", delegate
            {
                App.instance.PauseLeave();
            }, delegate
            {
                menu.TransitionBack <MultiplayerPauseMenu>();
            });
        }
        MenuSystem.instance.activeMenu.TransitionForward <ConfirmMenu>();
    }
Пример #5
0
    private void SwitchToMenu(PLEMenuType i_newMenu)
    {
        if (i_newMenu != currentDisplayedMenu)
        {
            HideAllMenusExceptMain();
            ConfirmMenu confirmMenu = MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM) as ConfirmMenu;
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });

            Menu newMenu = GetMenu(i_newMenu);
            MenuManager.Instance.DoTransition(this, Transition.SHOW, new Effect[] { Effect.INSTANT });
            MenuManager.Instance.DoTransition(newMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });

            currentDisplayedMenu = i_newMenu;
            bool allowCameraMovement = !IsMenu(currentDisplayedMenu, PLEMenuType.SAVE, PLEMenuType.LEVELSELECT, PLEMenuType.TEST);
            levelEditor.ToggleCameraController(allowCameraMovement);

            bool hideSideBar = IsMenu(currentDisplayedMenu, PLEMenuType.HELP, PLEMenuType.LEVELSELECT, PLEMenuType.TEST);
            if (hideSideBar)
            {
                helpSideBarToggler.HidePane();
            }
            helpSideBarToggler.LockPane(hideSideBar);
        }
        SetMenuButtonInteractabilityByState();
    }
Пример #6
0
    public void OpenSaveAction()
    {
        SelectMenuItem(PLEMenuType.SAVE);

        SaveMenu    saveMenu    = GetMenu(PLEMenuType.SAVE) as SaveMenu;
        ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM);

        confirmMenu.SetYesButtonText("SAVE");
        confirmMenu.SetNoButtonText("SAVE AS");

        //set interactibility of buttons
        bool isSaveButtonInteractable = saveMenu.IsOverwriteButtonInteractable();

        confirmMenu.SetYesButtonInteractibility(isSaveButtonInteractable);

        Action saveAction = () => {
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
            saveMenu.Save();
        };

        Action saveAsAction = () => {
            saveMenu.CanvasGroup.alpha          = 1;
            saveMenu.CanvasGroup.interactable   = true;
            saveMenu.CanvasGroup.blocksRaycasts = true;
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
        };

        Action cancelAction = () => {
            BackAction();
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
        };

        confirmMenu.DefineActions("Save?", saveAction, saveAsAction, cancelAction);
        MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });
    }
 public void ExitClick()
 {
     if (MenuSystem.CanInvoke)
     {
         ConfirmMenu.MultiplayerExitGame();
         NetGame.instance.transport.SetLobbyStatus(status: false);
     }
 }
Пример #8
0
    public void OpenConfirmMenu(string message, Action onYes, Action onNo)
    {
        GameObject  confirmMenuGob = Instantiate(confirmMenuPrefab, transform);
        ConfirmMenu confirmMenu    = confirmMenuGob.GetComponent <ConfirmMenu>();

        confirmMenu.message.text = message;
        confirmMenu.onYes        = onYes;
        confirmMenu.onNo         = onNo;
    }
Пример #9
0
    public DropdownMenu( Control c, NetworkInterface nif)
    {
        control = c;

        endGame = new ConfirmMenu("Quit Game",(int)positionOpen.x,(int)positionOpen.y);
        resign = new ConfirmMenu("Resign",(int)positionOpen.x,(int)positionOpen.y+30);
        Console.buttonRect = new Rect(positionOpen.x,positionOpen.y+60,80,25);

        if(nif != null){
            networkGUI = new NetworkWindow(nif);
            networkGUI.togglePos = new Rect(positionOpen.x,positionOpen.y+90,80,55);
        }
    }
Пример #10
0
 private void SetUpButtons(int border, int buttonHeight)
 {
     endGame = new ConfirmMenu("Quit Game",new Rect(positionOpen.x,positionOpen.y+border,positionOpen.width,buttonHeight),
         new Rect(positionOpen.x-positionOpen.width,positionOpen.y+border,positionOpen.width,2*buttonHeight));
     resign = new ConfirmMenu("Resign",new Rect(positionOpen.x,positionOpen.y+buttonHeight+2*border,positionOpen.width,buttonHeight),
         new Rect(positionOpen.x-positionOpen.width,positionOpen.y+buttonHeight+2*border,positionOpen.width,buttonHeight*2));
     Console.buttonRect = new Rect(positionOpen.x,positionOpen.y+buttonHeight*2+border*3,positionOpen.width,buttonHeight);
     positionOpen.height = 3*buttonHeight+4*border;
     if(networkGUI != null){
         networkGUI.togglePos = new Rect(positionOpen.x,positionOpen.y+buttonHeight*4+border*5,positionOpen.width,buttonHeight*2+border);
         positionOpen.height = 5*buttonHeight+6*border;
     }
 }
Пример #11
0
    public void DeleteSelectedLevel()
    {
        ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM);

        Action onYesAction = () =>
        {
            levelDataManager.TryDeleteLevel(SelectedLevelUI.levelData.UniqueSteamName);
            SetButtonsInteractabilityAndNavigation();
            ClearAndGenerateLevelUI();
        };

        Action onNoAction = () =>
        {
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
            SelectInitialButton();
        };
        string confirmationMessage = SelectedLevelUI.levelData.isDownloaded ? "Unsubscribe from this Steam Workshop item to permanently remove. Are you sure?" : "This cannot be undone. Are you sure?";

        confirmMenu.DefineActions(confirmationMessage, onYesAction, onNoAction);

        MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });
    }
Пример #12
0
    public void QuitAction()
    {
        SelectMenuItem(PLEMenuType.EXIT);
        ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM);

        Action onYesAction = () => {
            Menu     menu     = MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD);
            LoadMenu loadMenu = (LoadMenu)menu;
            loadMenu.SetNavigation(Strings.Scenes.ScenePaths.MainMenu);
            MenuManager.Instance.DoTransition(loadMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE });
        };

        Action onNoAction = () => {
            MenuManager.Instance.DoTransition(Strings.MenuStrings.CONFIRM, Transition.HIDE, new Effect[] { Effect.INSTANT });
            MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
            OpenFloorSystemAction();
        };

        confirmMenu.DefineActions("You will lose any unsaved data. Are you sure?", onYesAction, onNoAction);

        MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });
    }
Пример #13
0
    public void LoadLevel()
    {
        if (SceneTracker.IsCurrentSceneEditor)
        {
            ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM);
            Action      onYesAction = () =>
            {
                TryLoadSelectedLevel();
            };

            Action onNoAction = () =>
            {
                MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT });
                SelectInitialButton();
            };
            confirmMenu.DefineActions("You will lose any unsaved data. Are you sure?", onYesAction, onNoAction);

            MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT });
        }
        else
        {
            TryLoadSelectedLevel();
        }
    }
Пример #14
0
        private void MouseClicked(MouseState mouseState)
        {
            Point     MouseClick     = new Point(mouseState.X, mouseState.Y);
            Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10));

            switch (GState)
            {
            case NotebookState.SelectedTestimony:
                if (ConfirmContradictMenu.IsConfirming(MouseClickRect))
                {
                    GState = NotebookState.Returning;
                }
                if (ConfirmContradictMenu.IsCancelling(MouseClickRect))
                {
                    GState = NotebookState.Testimonies;
                }
                break;

            case NotebookState.ClickedQuitGame:
                if (ConfirmQuitMenu.IsConfirming(MouseClickRect))
                {
                    GState = NotebookState.ConfirmedQuitGame;
                }
                if (ConfirmQuitMenu.IsCancelling(MouseClickRect))
                {
                    GState = NotebookState.Options;     // replace with whichever state exposes the quit button
                }
                break;

            default:
                if (MouseClickRect.Intersects(StatsTab.Rect))
                {
                    GState           = NotebookState.Stats;
                    MainOptionsList  = null;
                    TopicOptionsList = null;
                }
                if (MouseClickRect.Intersects(PeopleTab.Rect))
                {
                    GState           = NotebookState.Profiles;
                    MainOptionsList  = null;
                    TopicOptionsList = null;
                }
                if (MouseClickRect.Intersects(OptionsTab.Rect))
                {
                    GState           = NotebookState.Options;
                    MainOptionsList  = null;
                    TopicOptionsList = null;
                }
                if (MouseClickRect.Intersects(TestimonyTab.Rect))
                {
                    GState           = NotebookState.Testimonies;
                    MainOptionsList  = null;
                    TopicOptionsList = null;
                }
                if (MouseClickRect.Intersects(ReturnIconRect))
                {
                    GState = NotebookState.Returning;
                }

                if (MainOptionsList?.SelectedOption == "savequit")
                {
                    if (QuitButton != null && MouseClickRect.Intersects(QuitButton.Rect))
                    {
                        GState = NotebookState.ClickedQuitGame;
                        string Query = "Are you sure you want to quit the game?";
                        ConfirmQuitMenu = new ConfirmMenu(Query, Content, Arial);
                    }
                    if (SaveButton != null && MouseClickRect.Intersects(SaveButton.Rect))
                    {
                        SaveGame();
                    }
                }

                if (SeekingTestimony && SelectTestimonyButton != null)
                {
                    if (MouseClickRect.Intersects(SelectTestimonyButton.Rect))
                    {
                        GState = NotebookState.SelectedTestimony;
                        string Query = "Are you sure you want to contradict?";
                        ConfirmContradictMenu = new ConfirmMenu(Query, Content, Arial);
                    }
                }
                break;
            }
        }
Пример #15
0
    public void Awake()
    {
        #region finding objects/setting refferences
        if ((instance == null) || (instance == this))           // singleton pattern
        {
            instance = this;
        }
        else
        {
            Debug.Log("Duplicate GameManager destroyed");
            DestroyImmediate(this.gameObject);
        }

        IState[] objList = (IState[])Resources.FindObjectsOfTypeAll(typeof(IState));            // find all IState objects
        // should be easily tweakable to work when switching between scenes
        foreach (IState state in objList)
        {
            if (istates[(int)state._stateType] == null)                 // add one of each type to list of istates, delete any duplicates
            {
                istates[(int)state._stateType] = state;                 // the type enum is used to put each istate in a unique nd predictable slot
                state.gameObject.SetActive(false);
            }
            else
            {
                Debug.Log("Destroyed duplicate of IState " + state._stateType);
                DestroyImmediate(state.gameObject);
            }
        }
        for (int i = 0; i < istates.Length; i++)                // check that one of each type exists
        {
            if (istates[i] == null)
            {
                Debug.Log("Error: IState object of type \"" + (IStateType)i + "\" not found");
            }
            else
            {
                istates[i].initialize();                        // initialize each that exists
            }
        }

        ConfirmMenu[] conList = (ConfirmMenu[])Resources.FindObjectsOfTypeAll(typeof(ConfirmMenu));
        if (conList.Length > 0)
        {
            confirmMenu = conList[0];               // only use one copy of the ConfirmMenu object
            confirmMenu.gameObject.SetActive(false);
        }
        else
        {
            Debug.Log("Error: No ConfirmMenu object is exists");
        }
        for (int i = 1; i < conList.Length; i++)
        {
            DestroyImmediate(conList[i].gameObject);                                                // destroy extras
        }
        #endregion

        //settup spritebook & index
        spriteBook  = _spriteBook;                  // move info from non-static variables to static variables
        errorSprite = _errorSprite;
        for (int s = 0; s < spriteBook.Length; s++) // get the index and name of every sprite, so you can look them up by name
        {
            if (spriteBook[s] != null)
            {
                string lowercase = spriteBook[s].name.ToLowerInvariant();
                //Debug.Log(string.Format("Trying to add sprite {0} to sprite index", lowercase));
                if (!spriteIndex.ContainsKey(lowercase))                        // don't add any duplicate names
                {
                    spriteIndex.Add(lowercase, s);
                }
                else
                {
                    throw new System.Exception("Error: sprite with name" + spriteBook[s].name + " present in spritebook more than once");
                }
            }
        }

        // load settings stuff, and apply them.
        if (SettingsObj.settingsExists())               //load the settings if the file exists
        {
            settings = SettingsObj.loadSettings();
        }
        else                    // else create new file
        {
            Debug.Log("Creating new settings file");
            settings = new SettingsObj();
            SettingsObj.saveSettings(settings);
        }
        applySettings(settings);            // apply the saved settings
        // consider changing so that it keeps resolution settings from start-up menu

        // load from save if possible, or load default save.
        if (settings.saveNum >= 1 && settings.saveNum <= 3)             // if saveNum = 1, 2, or 3, savefile should exist, else one won't
        {
            saveGame = SaveObj.LoadGame(settings.saveNum);
            if (saveGame == null)
            {
                Debug.Log("Indicated save does not exist, load an existing save or create a new one.");
                settings.saveNum = 0;
                SettingsObj.saveSettings(settings);
            }
        }


        gameplay = (Gameplay)istates[(int)GameManager.IStateType.gameplay];     // get gameplay IState from istate[Enum.gameplay] slot of array

        if (istates[(int)GameManager.IStateType.gameMenu] != null)              // set current state to gamemenu, or complain if gameMenu istate doesn't exist
        {
            currentstate = istates[(int)GameManager.IStateType.gameMenu];
            currentstate.StartState(null);
            istates[(int)GameManager.IStateType.gameMenu].gameObject.SetActive(true);
        }

        //InputManager.instance.LoadKeybinds();   // load keybindings

        eventSystem = (EventSystem)FindObjectOfType(typeof(EventSystem));
    }
Пример #16
0
        private void MouseClicked(MouseState mouseState)
        {
            Point     MouseClick     = new Point(mouseState.X, mouseState.Y);
            Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10));

            switch (GState)
            {
            // If nothing selected, check whether location was selected
            case LocationState.Normal:
                foreach (string CharName in CharPics.Keys)
                {
                    if (MouseClickRect.Intersects(CharPics[CharName].Rect))
                    {
                        GState             = LocationState.ClickedPerson;
                        SpeechMenu         = new SpeechMenu(Greetings[CharName], CharPics[CharName].Rect, Content, Arial);
                        SelectedPersonName = CharName;
                    }
                }
                if (MouseClickRect.Intersects(NotebookRect))
                {
                    GState = LocationState.ToNotebook;
                }
                if (MouseClickRect.Intersects(MapIconRect))
                {
                    GState = LocationState.ClickedReturn;
                    string query = "Are you sure you're done exploring for now?";
                    ConfirmMenu = new ConfirmMenu(query, Content, Arial);
                }
                break;

            case LocationState.ClickedPerson:
                if (SpeechMenu.IsCancelling(MouseClickRect))
                {
                    GState     = LocationState.Normal;
                    SpeechMenu = null;
                }
                else if (SpeechMenu.IsConfirming(MouseClickRect))
                {
                    GState = LocationState.ConfirmedPerson;
                    Interviewees.Add(SelectedPersonName);
                    SpeechMenu = null;
                }
                break;

            case LocationState.ClickedReturn:
                if (ConfirmMenu.IsCancelling(MouseClickRect))
                {
                    GState      = LocationState.Normal;
                    ConfirmMenu = null;
                }
                else if (ConfirmMenu.IsConfirming(MouseClickRect))
                {
                    GState      = LocationState.ConfirmedReturn;
                    ConfirmMenu = null;
                }
                break;

            default:
                break;
            }
        }