/// <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)); }
/// <summary> /// Event handler for when the Help menu entry is selected. /// </summary> void HelpMenuEntrySelected(object sender, EventArgs e) { ScreenManager.AddScreen(new HelpScreen()); }
/// <summary> /// Event handler for when the Controls menu entry is selected. /// </summary> void ControlsMenuEntrySelected(object sender, EventArgs e) { ScreenManager.AddScreen(new ControlsScreen()); }
/// <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)); }
/// <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; } } }
/// <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--; } } }