Fix menus between floors
This commit is contained in:
@@ -211,14 +211,20 @@ public partial class Game : Node3D, IGame
|
||||
InGameUI.PlayerInfoUI.Show();
|
||||
GameRepo.Resume();
|
||||
})
|
||||
.Handle((in GameState.Output.OpenFloorExitScreen _) =>
|
||||
.Handle((in GameState.Output.OpenTeleportScreen _) =>
|
||||
{
|
||||
InGameUI.UseTeleportPrompt.Show();
|
||||
InGameUI.UseTeleportPrompt.FadeIn();
|
||||
})
|
||||
.Handle((in GameState.Output.LoadNextFloor _) =>
|
||||
.Handle((in GameState.Output.OpenFloorExitScreen _) =>
|
||||
{
|
||||
InGameUI.UseTeleportPrompt.FadeOut();
|
||||
FloorClearMenu.Show();
|
||||
FloorClearMenu.FadeIn();
|
||||
})
|
||||
.Handle((in GameState.Output.LoadNextFloor _) =>
|
||||
{
|
||||
FloorClearMenu.FadeOut();
|
||||
Map.SpawnNextFloor();
|
||||
if (Player.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
{
|
||||
@@ -249,6 +255,9 @@ public partial class Game : Node3D, IGame
|
||||
GameState.Start();
|
||||
this.Provide();
|
||||
InGameUI.UseTeleportPrompt.TeleportToNextFloor += UseTeleportPrompt_TeleportToNextFloor;
|
||||
InGameUI.UseTeleportPrompt.CloseTeleportPrompt += UseTeleportPrompt_CloseTeleportPrompt;
|
||||
FloorClearMenu.GoToNextFloor += FloorClearMenu_GoToNextFloor;
|
||||
FloorClearMenu.SaveAndExit += FloorClearMenu_SaveAndExit;
|
||||
FloorClearMenu.TransitionCompleted += FloorClearMenu_TransitionCompleted;
|
||||
|
||||
GameRepo.RestorativePickedUp += GameEventDepot_RestorativePickedUp;
|
||||
@@ -269,6 +278,16 @@ public partial class Game : Node3D, IGame
|
||||
MainMenu.Show();
|
||||
}
|
||||
|
||||
private void FloorClearMenu_SaveAndExit()
|
||||
{
|
||||
//SaveFile.Save();
|
||||
Player.Deactivate();
|
||||
GameState.Input(new GameState.Input.ReturnToMainMenu());
|
||||
InGameUI.Hide();
|
||||
MainMenu.FadeIn();
|
||||
}
|
||||
|
||||
private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor());
|
||||
public void LoadExistingGame() => SaveFile.Load().ContinueWith((_) => CallDeferred(nameof(FinishedLoadingSaveFile)));
|
||||
|
||||
public void InitializeGame()
|
||||
@@ -382,16 +401,19 @@ public partial class Game : Node3D, IGame
|
||||
restorative.GlobalPosition = vector;
|
||||
}
|
||||
|
||||
private void UseTeleportPrompt_TeleportToNextFloor()
|
||||
private void UseTeleportPrompt_CloseTeleportPrompt()
|
||||
{
|
||||
InGameUI.UseTeleportPrompt.FadeIn();
|
||||
GameState.Input(new GameState.Input.LoadNextFloor());
|
||||
GameEventDepot.OnDungeonAThemeAreaEntered();
|
||||
GameState.Input(new GameState.Input.CloseTeleport());
|
||||
InGameUI.UseTeleportPrompt.FadeOut();
|
||||
GameRepo.Resume();
|
||||
}
|
||||
|
||||
private void UseTeleportPrompt_TeleportToNextFloor() => GameState.Input(new GameState.Input.UseTeleport());
|
||||
|
||||
private void FloorClearMenu_TransitionCompleted()
|
||||
{
|
||||
GameRepo.Resume();
|
||||
GameEventDepot.OnDungeonAThemeAreaEntered();
|
||||
}
|
||||
|
||||
private void GameEventDepot_RestorativePickedUp(IHealthPack obj) => Player.Stats.SetCurrentVT(Player.Stats.CurrentVT.Value + (int)obj.RestoreAmount);
|
||||
|
||||
Reference in New Issue
Block a user