Пример #1
0
        public void DisplayScreen(int screenType, bool pauseOtherScreens, List <object> objList = null)
        {
            LoadPlayer();
            if (pauseOtherScreens)
            {
                var screens = GetScreens();
                for (var i = 0; i < screens.Length; i++)
                {
                    var screen = screens[i];
                    if (screen == CurrentScreen)
                    {
                        screen.PauseScreen();
                        break;
                    }
                }
            }
            switch (screenType)
            {
            case 1:
            case 3:
            case 9:
            case 15:
            case 27:
            case 28:
            case 29:
                LoadScreen((byte)screenType, true);
                break;

            case 4:
                m_optionsScreen.PassInData(objList);
                AddScreen(m_optionsScreen, null);
                break;

            case 5:
                if (RogueCastle.Game.PlayerStats.LockCastle || !(CurrentScreen is ProceduralLevelScreen))
                {
                    LoadScreen((byte)screenType, true);
                }
                else
                {
                    LoadScreen((byte)screenType, false);
                }
                break;

            case 6:
                AddScreen(SkillScreen, null);
                break;

            case 7:
                m_gameOverScreen.PassInData(objList);
                AddScreen(m_gameOverScreen, null);
                break;

            case 10:
                AddScreen(m_blacksmithScreen, null);
                m_blacksmithScreen.Player = Player;
                break;

            case 11:
                AddScreen(m_enchantressScreen, null);
                m_enchantressScreen.Player = Player;
                break;

            case 12:
                m_getItemScreen.PassInData(objList);
                AddScreen(m_getItemScreen, null);
                break;

            case 13:
                AddScreen(DialogueScreen, null);
                break;

            case 14:
                m_mapScreen.SetPlayer(Player);
                AddScreen(m_mapScreen, null);
                break;

            case 16:
                GetLevelScreen().CurrentRoom.DarkenRoom();
                AddScreen(m_pauseScreen, null);
                break;

            case 17:
                AddScreen(m_profileCardScreen, null);
                break;

            case 18:
                LoadScreen(18, true);
                break;

            case 19:
                m_skillUnlockScreen.PassInData(objList);
                AddScreen(m_skillUnlockScreen, null);
                break;

            case 20:
                AddScreen(m_diaryEntryScreen, null);
                break;

            case 21:
                AddScreen(m_deathDefyScreen, null);
                break;

            case 22:
                m_textScreen.PassInData(objList);
                AddScreen(m_textScreen, null);
                break;

            case 23:
                LoadScreen(23, true);
                break;

            case 24:
                GetLevelScreen().CameraLockedToPlayer     = false;
                GetLevelScreen().DisableRoomTransitioning = true;
                Player.Position = new Vector2(100f, 100f);
                LoadScreen(24, true);
                break;

            case 25:
                AddScreen(m_flashbackScreen, null);
                break;

            case 26:
                m_gameOverBossScreen.PassInData(objList);
                AddScreen(m_gameOverBossScreen, null);
                break;

            case 30:
                AddScreen(m_profileSelectScreen, null);
                break;
            }
            if (m_isWipeTransitioning)
            {
                EndWipeTransition();
            }
        }