예제 #1
0
        void ProcessMessages()
        {
            switch (uiManager.GetMessage())
            {
            case DaggerfallUIMessages.dfuiSetupGameWizard:
                uiManager.PushWindow(new DaggerfallUnitySetupGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiInitGame:
                InitGame(splashVideo);
                break;

            case DaggerfallUIMessages.dfuiInitGameFromDeath:
                InitGame(deathVideo);
                break;

            case DaggerfallUIMessages.dfuiStartNewGameWizard:
                uiManager.PushWindow(new StartNewGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiOpenPauseOptionsDialog:
                uiManager.PushWindow(dfPauseOptionsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenCharacterSheetWindow:
                uiManager.PushWindow(dfCharacterSheetWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenInventoryWindow:
                uiManager.PushWindow(dfInventoryWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenTravelMapWindow:
                if (!GameManager.Instance.IsPlayerInside)            //TODO: pop-up when try to travel near enemies
                {
                    uiManager.PushWindow(dfTravelMapWindow);
                }
                break;

            case DaggerfallUIMessages.dfuiOpenAutomap:
                if (GameManager.Instance.PlayerEnterExit.IsPlayerInside)     // open automap only if player is in interior or dungeon - TODO: location automap for exterior locations
                {
                    GameManager.Instance.PauseGame(true);
                    uiManager.PushWindow(dfAutomapWindow);
                }
                else
                {
                    ContentReader.MapSummary mapSummary;
                    DFPosition mapPixel = GameManager.Instance.PlayerGPS.CurrentMapPixel;
                    if (DaggerfallUnity.Instance.ContentReader.HasLocation(mapPixel.X, mapPixel.Y, out mapSummary))
                    {
                        // There's a location at this map pixel
                        GameManager.Instance.PauseGame(true);
                        uiManager.PushWindow(dfExteriorAutomapWindow);
                    }
                }
                break;

            case DaggerfallUIMessages.dfuiOpenRestWindow:
                if (GameManager.Instance.CanPlayerRest())
                {
                    uiManager.PushWindow(new DaggerfallRestWindow(uiManager));
                }
                break;

            case DaggerfallUIMessages.dfuiOpenQuestInspector:
                uiManager.PushWindow(dfQuestInspector);
                break;

            case DaggerfallUIMessages.dfuiOpenBookReaderWindow:
                uiManager.PushWindow(dfBookReaderWindow);
                break;

            case DaggerfallUIMessages.dfuiExitGame:
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
                break;
            }
        }
예제 #2
0
        void ProcessMessages()
        {
            switch (uiManager.GetMessage())
            {
            case DaggerfallUIMessages.dfuiSetupGameWizard:
                uiManager.PushWindow(new DaggerfallUnitySetupGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiInitGame:
                InitGame(splashVideo);
                break;

            case DaggerfallUIMessages.dfuiInitGameFromDeath:
                InitGame(deathVideo);
                break;

            case DaggerfallUIMessages.dfuiStartNewGameWizard:
                uiManager.PushWindow(new StartNewGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiOpenPauseOptionsDialog:
                uiManager.PushWindow(dfPauseOptionsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenCharacterSheetWindow:
                uiManager.PushWindow(dfCharacterSheetWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenInventoryWindow:
                uiManager.PushWindow(dfInventoryWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenControlsWindow:
                uiManager.PushWindow(dfControlsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenJoystickControlsWindow:
                uiManager.PushWindow(dfJoystickControlsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenMouseControlsWindow:
                uiManager.PushWindow(dfUnityMouseControlsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenSpellBookWindow:
                if (!GameManager.Instance.PlayerSpellCasting.IsPlayingAnim)
                {
                    uiManager.PushWindow(dfSpellBookWindow);
                }
                break;

            case DaggerfallUIMessages.dfuiOpenTravelMapWindow:
                if (!GameManager.Instance.IsPlayerInside)
                {
                    if (GameManager.Instance.AreEnemiesNearby())
                    {
                        MessageBox(HardStrings.cannotTravelWithEnemiesNearby);
                    }
                    else
                    {
                        if (!GiveOffer())
                        {
                            uiManager.PushWindow(dfTravelMapWindow);
                        }
                    }
                }
                break;

            case DaggerfallUIMessages.dfuiOpenAutomap:
                if (GameManager.Instance.PlayerEnterExit.IsPlayerInside)     // open automap only if player is in interior or dungeon - TODO: location automap for exterior locations
                {
                    GameManager.Instance.PauseGame(true);
                    uiManager.PushWindow(dfAutomapWindow);
                }
                else
                {
                    ContentReader.MapSummary mapSummary;
                    DFPosition mapPixel = GameManager.Instance.PlayerGPS.CurrentMapPixel;
                    if (DaggerfallUnity.Instance.ContentReader.HasLocation(mapPixel.X, mapPixel.Y, out mapSummary))
                    {
                        // There's a location at this map pixel
                        GameManager.Instance.PauseGame(true);
                        uiManager.PushWindow(dfExteriorAutomapWindow);
                    }
                }
                break;

            case DaggerfallUIMessages.dfuiOpenRestWindow:
                if (GameManager.Instance.AreEnemiesNearby())
                {
                    // Alert player if monsters nearby
                    const int enemiesNearby = 354;
                    MessageBox(enemiesNearby);
                }
                else if (GameManager.Instance.PlayerEnterExit.IsPlayerSwimming)
                {
                    const int cannotRestNow = 355;
                    MessageBox(cannotRestNow);
                }
                else if (GameManager.Instance.PlayerController.isGrounded)
                {
                    if (!GiveOffer())
                    {
                        uiManager.PushWindow(new DaggerfallRestWindow(uiManager));
                    }
                }
                break;

            case DaggerfallUIMessages.dfuiOpenTransportWindow:
                if (GameManager.Instance.PlayerEnterExit.IsPlayerInside)
                {
                    AddHUDText(HardStrings.cannotChangeTransportationIndoors);
                }
                else
                {
                    if (GameManager.Instance.PlayerController.isGrounded)
                    {
                        uiManager.PushWindow(new DaggerfallTransportWindow(uiManager));
                    }
                }
                break;

            case DaggerfallUIMessages.dfuiOpenQuestInspector:
                uiManager.PushWindow(dfQuestInspector);
                break;

            case DaggerfallUIMessages.dfuiOpenBookReaderWindow:
                uiManager.PushWindow(dfBookReaderWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenQuestJournalWindow:
                uiManager.PushWindow(dfQuestJournalWindow);
                break;

            case DaggerfallUIMessages.dfuiStatusInfo:
                DisplayStatusInfo();
                break;

            case DaggerfallUIMessages.dfuiExitGame:
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
                break;
            }
        }
예제 #3
0
        void ProcessMessages()
        {
            switch (uiManager.GetMessage())
            {
            case DaggerfallUIMessages.dfuiSetupGameWizard:
                uiManager.PushWindow(new DaggerfallUnitySetupGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiInitGame:
                InitGame(splashVideo);
                break;

            case DaggerfallUIMessages.dfuiInitGameFromDeath:
                InitGame(deathVideo);
                break;

            case DaggerfallUIMessages.dfuiStartNewGameWizard:
                uiManager.PushWindow(new StartNewGameWizard(uiManager));
                break;

            case DaggerfallUIMessages.dfuiOpenPauseOptionsDialog:
                uiManager.PushWindow(dfPauseOptionsWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenCharacterSheetWindow:
                uiManager.PushWindow(dfCharacterSheetWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenInventoryWindow:
                uiManager.PushWindow(dfInventoryWindow);
                break;

            case DaggerfallUIMessages.dfuiOpenTravelMapWindow:
                if (!GameManager.Instance.IsPlayerInside)            //TODO: pop-up when try to travel near enemies
                {
                    uiManager.PushWindow(dfTravelMapWindow);
                }
                break;

            case DaggerfallUIMessages.dfuiOpenAutomap:
                if (GameManager.Instance.PlayerEnterExit.IsPlayerInside)     // open automap only if player is in interior or dungeon - TODO: location automap for exterior locations
                {
                    GameManager.Instance.PauseGame(true);
                    uiManager.PushWindow(dfAutomapWindow);
                }
                break;

            case DaggerfallUIMessages.dfuiOpenRestWindow:
                if (GameManager.Instance.CanPlayerRest())
                {
                    uiManager.PushWindow(new DaggerfallRestWindow(uiManager));
                }
                break;

            case DaggerfallUIMessages.dfuiExitGame:
#if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
#else
                Application.Quit();
#endif
                break;
            }
        }