示例#1
0
    protected bool ButtonDoorAction()
    {
        //There's another pending action, so we should probably clean it up first
        if (m_currentPendingCreationAction != CreationAction.None)
        {
            CleanUpPendingAction();
        }

        CameraManager.Singleton.selectionMode = CameraManager.CameraSelectionMode.Tiles;

        m_currentPendingCreationAction = CreationAction.Object;
        m_currentPendingObjectType     = UIObjectType.Door;

        return(true);
    }
 /// <summary>
 /// Инициализация интерфейса уровня.
 /// </summary>
 private void InitializeLevelUI()
 {
     _model.UIItems = new List <UIObject>();
     for (UIObjectType i = UIObjectType.Health; i <= UIObjectType.Timer; i++)
     {
         UIObject item = new UIObject()
         {
             Type = i
         };
         _model.UIItems.Add(item);
     }
     MenuHeader     = "";
     _currentMenu   = UIObjectType.OK;
     CurrentCommand = ModelStateMachineCommand.Resume;
     _menuDisplayed = false;
     ShadowLevel    = false;
 }
 /// <summary>
 /// Инициализация главного меню.
 /// </summary>
 private void InitializeMainMenu()
 {
     _model.UIItems = new List <UIObject>();
     for (UIObjectType i = UIObjectType.New_game; i <= UIObjectType.Exit; i++)
     {
         UIObject item = new UIObject()
         {
             Type  = i,
             State = 0
         };
         _model.UIItems.Add(item);
     }
     _model.UIItems[0].State = 1;
     SelectedMenuItem        = 0;
     MenuHeader     = "Alien Explorer";
     _currentMenu   = UIObjectType.OK;
     CurrentCommand = ModelStateMachineCommand.None;
 }
        /// <summary>
        /// Выбор процедуры инициализации нужного меню.
        /// </summary>
        /// <param name="parType">Тип меню.</param>
        public void EnterToMenu(UIObjectType parType)
        {
            switch (parType)
            {
            case UIObjectType.OK:
                InitializeLevelUI();
                break;

            case UIObjectType.Resume:
                InitializePauseMenu();
                break;

            case UIObjectType.Next_level:
                InitializeWinMenu();
                break;

            case UIObjectType.Restart:
                InitializeLoseMenu();
                break;
            }
        }
        /// <summary>
        /// Инициализация меню подтвержения действия.
        /// </summary>
        /// <param name="parType">Тип родительского меню.</param>
        private void InitializeConfirmationMenu(UIObjectType parType)
        {
            string caption = "";

            _model.UIItems = new List <UIObject>();
            switch (parType)
            {
            case UIObjectType.New_game:
                caption    = "Progress will be lost. Continue?";
                MenuHeader = "New game";
                break;

            case UIObjectType.Load_game:
                caption    = "Load last played level?";
                MenuHeader = "Load game";
                break;

            case UIObjectType.Exit:
                caption    = "Close game?";
                MenuHeader = "Exit";
                break;
            }
            _model.UIItems.Add(new UIObject()
            {
                Type = UIObjectType.Text, State = 0, Text = caption, ID = -1
            });
            for (UIObjectType i = UIObjectType.OK; i <= UIObjectType.Cancel; i++)
            {
                UIObject item = new UIObject()
                {
                    Type  = i,
                    State = 0
                };
                _model.UIItems.Add(item);
            }
            _model.UIItems[2].State = 1;
            _currentMenu            = parType;
            SelectedMenuItem        = 2;
            CurrentCommand          = ModelStateMachineCommand.None;
        }
        /// <summary>
        /// Выбор процедуры инициализации нужного меню.
        /// </summary>
        /// <param name="parType">Тип меню.</param>
        private void EnterToMenu(UIObjectType parType)
        {
            switch (parType)
            {
            case UIObjectType.OK:
                InitializeMainMenu();
                break;

            case UIObjectType.New_game:
            case UIObjectType.Load_game:
            case UIObjectType.Exit:
                InitializeConfirmationMenu(parType);
                break;

            case UIObjectType.Choose_level:
                InitializeChooseLevelMenu();
                break;

            case UIObjectType.Records:
                InitializeRecordsMenu();
                break;
            }
        }
        /// <summary>
        /// Обработка действия подтверждения (обычно нажатие клавишы Enter).
        /// </summary>
        protected override void AcceptAction()
        {
            UIObjectType selectedItem = _model.UIItems[SelectedMenuItem].Type;

            switch (selectedItem)
            {
            case UIObjectType.Resume:
                EnterToMenu(UIObjectType.OK);
                break;

            case UIObjectType.Restart:
                CurrentCommand = ModelStateMachineCommand.LoadLevel;
                break;

            case UIObjectType.Next_level:
                CurrentCommand = ModelStateMachineCommand.LoadNextLevel;
                break;

            case UIObjectType.Back_to_main_menu:
                CurrentCommand = ModelStateMachineCommand.LoadMenu;
                break;
            }
        }
        /// <summary>
        /// Обработка действия подтверждения (обычно нажатие клавишы Enter).
        /// </summary>
        protected override void AcceptAction()
        {
            UIObjectType selectedItem = _model.UIItems[SelectedMenuItem].Type;

            switch (_currentMenu)
            {
            case UIObjectType.OK:
                if (selectedItem != UIObjectType.New_game)
                {
                    EnterToMenu(selectedItem);
                }
                else
                {
                    int currentProgress = SaveFile.GetInstance().LevelToLoad;
                    int firstLevel      = LevelLoader.CheckAvailableLevels().OrderBy(x => x).First();
                    if (firstLevel != currentProgress)
                    {
                        EnterToMenu(selectedItem);
                    }
                    else
                    {
                        CurrentCommand = ModelStateMachineCommand.LoadFirstLevel;
                    }
                }
                break;

            case UIObjectType.New_game:
                if (_model.UIItems[SelectedMenuItem].Type == UIObjectType.OK)
                {
                    CurrentCommand = ModelStateMachineCommand.LoadFirstLevel;
                }
                else
                {
                    EnterToMenu(UIObjectType.OK);
                }
                break;

            case UIObjectType.Load_game:
                if (_model.UIItems[SelectedMenuItem].Type == UIObjectType.OK)
                {
                    CurrentCommand = ModelStateMachineCommand.LoadLastLevel;
                }
                else
                {
                    EnterToMenu(UIObjectType.OK);
                }
                break;

            case UIObjectType.Choose_level:
                CurrentCommand   = ModelStateMachineCommand.LoadLevel;
                SelectedMenuItem = _model.UIItems[SelectedMenuItem].ID;
                break;

            case UIObjectType.Exit:
                if (_model.UIItems[SelectedMenuItem].Type == UIObjectType.OK)
                {
                    CurrentCommand = ModelStateMachineCommand.Exit;
                }
                else
                {
                    EnterToMenu(UIObjectType.OK);
                }
                break;
            }
        }
示例#9
0
 public void CleanUpPendingAction()
 {
     CameraManager.Singleton.selectionMode = CameraManager.CameraSelectionMode.None;
     m_currentPendingObjectType            = UIObjectType.None;
 }
示例#10
0
 public LB_EditorUIElementModel(string uiObjectName, UIObjectType uiObjectType)
 {
     this.UIObjectName = uiObjectName;
     this.ObjectType   = uiObjectType;
 }