Fix menus between floors

This commit is contained in:
2025-06-28 00:30:16 -07:00
parent 39f791e2b4
commit f33616dda4
11 changed files with 104 additions and 11 deletions

View File

@@ -0,0 +1,36 @@
using Chickensoft.Introspection;
using Chickensoft.LogicBlocks;
using Godot;
namespace Zennysoft.Ma.Adapter;
public partial class GameState
{
public partial record State
{
[Meta, LogicBlock(typeof(State), Diagram = true)]
public partial record AskForTeleportScreen : State, IGet<Input.UseTeleport>, IGet<Input.CloseTeleport>
{
public AskForTeleportScreen()
{
OnAttach(() => Get<IGameRepo>().Pause());
}
public Transition On(in Input.ReturnToMainMenu input)
{
return To<MainMenu>();
}
public Transition On(in Input.UseTeleport input)
{
Output(new Output.OpenFloorExitScreen());
return To<FloorExitScreen>();
}
public Transition On(in Input.CloseTeleport input)
{
return To<InGame>();
}
}
}
}

View File

@@ -42,8 +42,8 @@ public partial class GameState
public Transition On(in Input.FloorExitEntered input)
{
Output(new Output.OpenFloorExitScreen());
return To<FloorExitScreen>();
Output(new Output.OpenTeleportScreen());
return To<AskForTeleportScreen>();
}
public Transition On(in Input.GameOver input)