Exemplo n.º 1
0
        /// <summary>
        /// Activates the loading screen.
        /// </summary>
        public static void Load(ScreenManager screenManager, bool loadingIsSlow,
                                params GameScreen[] screensToLoad)
        {
            // Tell all the current screens to transition off.
            foreach (GameScreen screen in screenManager.GetScreens())
                screen.ExitScreen();

            // Create and activate the loading screen.
            LoadingScreen loadingScreen = new LoadingScreen(screenManager,
                                                            loadingIsSlow,
                                                            screensToLoad);

            screenManager.AddScreen(loadingScreen);
        }
 /// <summary>
 /// Switch to the screen to the "right" of this one in the UI.
 /// </summary>
 protected override void PageScreenRight()
 {
     ExitScreen();
     ScreenManager.AddScreen(new StatisticsScreen(Session.Party.Players[0]));
 }
 /// <summary>
 /// Respond to the triggering of the X button (and related key).
 /// </summary>
 protected override void SelectTriggered(Quest entry)
 {
     ScreenManager.AddScreen(new QuestDetailsScreen(entry));
 }
 /// <summary>
 /// Switch to the screen to the "left" of this one in the UI.
 /// </summary>
 protected override void PageScreenLeft()
 {
     ExitScreen();
     ScreenManager.AddScreen(new InventoryScreen(false));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Event handler for when the Help menu entry is selected.
 /// </summary>
 void HelpMenuEntrySelected(object sender, EventArgs e)
 {
     ScreenManager.AddScreen(new HelpScreen());
 }
Exemplo n.º 6
0
 /// <summary>
 /// Event handler for when the Controls menu entry is selected.
 /// </summary>
 void ControlsMenuEntrySelected(object sender, EventArgs e)
 {
     ScreenManager.AddScreen(new ControlsScreen());
 }
Exemplo n.º 7
0
 /// <summary>
 /// Event handler for when the Save Game menu entry is selected.
 /// </summary>
 void SaveGameMenuEntrySelected(object sender, EventArgs e)
 {
     ScreenManager.AddScreen(
         new SaveLoadScreen(SaveLoadScreen.SaveLoadScreenMode.Save));
 }
Exemplo n.º 8
0
        /// <summary>
        /// Handles user input.
        /// </summary>
        public override void HandleInput()
        {
            if (InputManager.IsButtonClicked(new Rectangle((int)textPosition.X, (int)textPosition.Y,
                                                           120, 40)))
            {
                ScreenManager.AddScreen(new StoreBuyScreen(store));
                currentCursor = 0;
                return;
            }
            if (InputManager.IsButtonClicked(new Rectangle((int)textPosition.X,
                                                           (int)textPosition.Y + (int)interval, 120, 40)))
            {
                currentCursor = 1;
                ScreenManager.AddScreen(new StoreSellScreen(store));
                return;
            }
            if (InputManager.IsButtonClicked(new Rectangle((int)textPosition.X,
                                                           (int)textPosition.Y + (int)(interval * 2), 120, 40)))
            {
                ExitScreen();
                currentCursor = 2;
                return;
            }

            // exits the screen
            if (InputManager.IsActionTriggered(InputManager.Action.Back))
            {
                ExitScreen();
                return;
            }
            // select one of the buttons
            else if (InputManager.IsActionTriggered(InputManager.Action.Ok))
            {
                if (currentCursor == 0)
                {
                    ScreenManager.AddScreen(new StoreBuyScreen(store));
                }
                else if (currentCursor == 1)
                {
                    ScreenManager.AddScreen(new StoreSellScreen(store));
                }
                else
                {
                    ExitScreen();
                }
                return;
            }
            // move the cursor up
            else if (InputManager.IsActionTriggered(InputManager.Action.MoveCharacterUp))
            {
                currentCursor--;
                if (currentCursor < 0)
                {
                    currentCursor = 0;
                }
            }
            // move the cursor down
            else if (InputManager.IsActionTriggered(InputManager.Action.MoveCharacterDown))
            {
                currentCursor++;
                if (currentCursor > 2)
                {
                    currentCursor = 2;
                }
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Respond to user input.
        /// </summary>
        public override void HandleInput()
        {
            bool backClicked   = false;
            bool selectClicked = false;
            bool deleteClicked = false;

            foreach (var item in ItemPositionMapping)
            {
                if (InputManager.IsButtonClicked(item.Key))
                {
                    currentSlot = item.Value;
                    break;
                }
            }


            if (InputManager.IsButtonClicked(new Rectangle
                                                 ((int)(backPosition.X),
                                                 (int)backPosition.Y,
                                                 (int)(backTexture.Width * ScaledVector2.DrawFactor),
                                                 (int)(backTexture.Height * ScaledVector2.DrawFactor))))
            {
                backClicked = true;
            }
            if (InputManager.IsButtonClicked(new Rectangle
                                                 ((int)selectPosition.X,
                                                 (int)selectPosition.Y,
                                                 (int)(selectTexture.Width * ScaledVector2.DrawFactor),
                                                 (int)(selectTexture.Height * ScaledVector2.DrawFactor))))
            {
                selectClicked = true;
            }
            if (InputManager.IsButtonClicked(new Rectangle
                                                 ((int)deletePosition.X,
                                                 (int)deletePosition.Y,
                                                 (int)(deleteTexture.Width * ScaledVector2.DrawFactor),
                                                 (int)(deleteTexture.Height * ScaledVector2.DrawFactor))))
            {
                deleteClicked = true;
            }

            // handle exiting the screen
            if (InputManager.IsActionTriggered(InputManager.Action.Back) || backClicked)
            {
                ExitScreen();
                return;
            }

            // handle selecting a save game
            if (selectClicked &&
                (Session.SaveGameDescriptions != null))
            {
                switch (mode)
                {
                case SaveLoadScreenMode.Load:
                    if ((currentSlot >= 0) &&
                        (currentSlot < Session.SaveGameDescriptions.Count) &&
                        (Session.SaveGameDescriptions[currentSlot] != null))
                    {
                        if (Session.IsActive)
                        {
                            MessageBoxScreen messageBoxScreen = new MessageBoxScreen(
                                "Are you sure you want to load this game?");
                            messageBoxScreen.Accepted +=
                                ConfirmLoadMessageBoxAccepted;
                            ScreenManager.AddScreen(messageBoxScreen);
                        }
                        else
                        {
                            ConfirmLoadMessageBoxAccepted(null, EventArgs.Empty);
                        }
                    }
                    break;

                case SaveLoadScreenMode.Save:
                    if ((currentSlot >= 0) &&
                        (currentSlot <= Session.SaveGameDescriptions.Count))
                    {
                        if (currentSlot == Session.SaveGameDescriptions.Count)
                        {
                            ConfirmSaveMessageBoxAccepted(null, EventArgs.Empty);
                        }
                        else
                        {
                            MessageBoxScreen messageBoxScreen = new MessageBoxScreen(
                                "Are you sure you want to overwrite this save game?");
                            messageBoxScreen.Accepted +=
                                ConfirmSaveMessageBoxAccepted;
                            ScreenManager.AddScreen(messageBoxScreen);
                        }
                    }
                    break;
                }
            }
            // handle deletion
            else if (InputManager.IsActionTriggered(InputManager.Action.DropUnEquip) || deleteClicked &&
                     (Session.SaveGameDescriptions != null))
            {
                if ((currentSlot >= 0) &&
                    (currentSlot < Session.SaveGameDescriptions.Count) &&
                    (Session.SaveGameDescriptions[currentSlot] != null))
                {
                    MessageBoxScreen messageBoxScreen = new MessageBoxScreen(
                        "Are you sure you want to delete this save game?");
                    messageBoxScreen.Accepted += ConfirmDeleteMessageBoxAccepted;
                    ScreenManager.AddScreen(messageBoxScreen);
                }
            }
            // handle cursor-down
            else if (InputManager.IsActionTriggered(InputManager.Action.CursorDown) &&
                     (Session.SaveGameDescriptions != null))
            {
                int maximumSlot = Session.SaveGameDescriptions.Count;
                if (mode == SaveLoadScreenMode.Save)
                {
                    maximumSlot = Math.Min(maximumSlot + 1,
                                           Session.MaximumSaveGameDescriptions);
                }
                if (currentSlot < maximumSlot - 1)
                {
                    currentSlot++;
                }
            }
            // handle cursor-up
            else if (InputManager.IsActionTriggered(InputManager.Action.CursorUp) &&
                     (Session.SaveGameDescriptions != null))
            {
                if (currentSlot >= 1)
                {
                    currentSlot--;
                }
            }
        }