General UI Work

This commit is contained in:
2025-12-03 23:21:29 -08:00
parent 34742d568e
commit 6f90a0985a
58 changed files with 1999 additions and 1621 deletions

View File

@@ -38,7 +38,7 @@ public partial class Game : Node3D, IGame
[Node] private InGameUI InGameUI { get; set; } = default!;
[Node] private IFloorClearMenu FloorClearMenu { get; set; } = default!;
[Node] private IFloorClearMenu LoadNextLevel { get; set; } = default!;
[Node] private DeathMenu DeathMenu { get; set; } = default!;
@@ -71,6 +71,8 @@ public partial class Game : Node3D, IGame
private IPlayer _player;
private IMap _map;
[Signal] private delegate void OnLoadLevelRequestEventHandler();
public Game()
{
_container = new SimpleInjector.Container();
@@ -156,14 +158,18 @@ public partial class Game : Node3D, IGame
InGameUI.UseTeleportPrompt.TeleportToNextFloor += UseTeleportPrompt_TeleportToNextFloor;
InGameUI.UseTeleportPrompt.CloseTeleportPrompt += UseTeleportPrompt_CloseTeleportPrompt;
FloorClearMenu.GoToNextFloor += FloorClearMenu_GoToNextFloor;
FloorClearMenu.Exit += FloorClearMenu_Exit;
FloorClearMenu.TransitionCompleted += FloorClearMenu_TransitionCompleted;
LoadNextLevel.GoToNextFloor += FloorClearMenu_GoToNextFloor;
LoadNextLevel.Exit += FloorClearMenu_Exit;
LoadNextLevel.TransitionCompleted += FloorClearMenu_TransitionCompleted;
OnLoadLevelRequest += LoadLevel;
GameRepo.RestorativePickedUp += GameEventDepot_RestorativePickedUp;
_player.Inventory.BroadcastMessage += BroadcastMessage;
_map.FloorLoaded += OnFloorLoadFinished;
_player.PlayerDied += GameOver;
DeathMenu.NewGame += OnNewGame;
DeathMenu.QuitGame += OnQuit;
@@ -303,13 +309,13 @@ public partial class Game : Node3D, IGame
.Handle((in GameState.Output.OpenFloorExitScreen _) =>
{
InGameUI.UseTeleportPrompt.FadeOut();
FloorClearMenu.Show();
FloorClearMenu.FadeIn();
LoadNextLevel.Show();
LoadNextLevel.FadeIn();
})
.Handle((in GameState.Output.LoadNextFloor _) =>
{
FloorClearMenu.FadeOut();
Task.Run(() => _map.LoadFloor());
LoadNextLevel.FadeOut();
EmitSignal(SignalName.OnLoadLevelRequest);
Task.Run(() => Save());
if (_player.EquipmentComponent.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange)
{
@@ -329,7 +335,7 @@ public partial class Game : Node3D, IGame
_player.Unequip(itemToDestroy);
_player.Inventory.Remove(itemToDestroy);
}
FloorClearMenu.FadeOut();
LoadNextLevel.FadeOut();
})
.Handle((in GameState.Output.GameOver _) =>
{
@@ -345,6 +351,8 @@ public partial class Game : Node3D, IGame
InGameUI.Hide();
}
private async void LoadLevel() => await _map.LoadFloor();
private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor());
private void DropRestorative(Vector3 vector)
@@ -494,15 +502,20 @@ public partial class Game : Node3D, IGame
GameRepo.Resume();
}
private void OnFloorLoadFinished()
{
LoadNextLevel.Hide();
}
private void OnQuit() => GetTree().Root.QueueFree();
public void OnExitTree()
{
InGameUI.UseTeleportPrompt.TeleportToNextFloor -= UseTeleportPrompt_TeleportToNextFloor;
InGameUI.UseTeleportPrompt.CloseTeleportPrompt -= UseTeleportPrompt_CloseTeleportPrompt;
FloorClearMenu.GoToNextFloor -= FloorClearMenu_GoToNextFloor;
FloorClearMenu.Exit -= FloorClearMenu_Exit;
FloorClearMenu.TransitionCompleted -= FloorClearMenu_TransitionCompleted;
LoadNextLevel.GoToNextFloor -= FloorClearMenu_GoToNextFloor;
LoadNextLevel.Exit -= FloorClearMenu_Exit;
LoadNextLevel.TransitionCompleted -= FloorClearMenu_TransitionCompleted;
_player.Inventory.BroadcastMessage -= BroadcastMessage;

View File

@@ -2,8 +2,8 @@
[ext_resource type="Script" uid="uid://chftlu4proh3d" path="res://src/game/Game.cs" id="1_ytcii"]
[ext_resource type="PackedScene" uid="uid://b1muxus5qdbeu" path="res://src/ui/in_game_ui/InGameUI.tscn" id="5_lxtnp"]
[ext_resource type="PackedScene" uid="uid://cgwiwufvxvfs4" path="res://src/ui/load_next_level/LoadNextLevel.tscn" id="7_yw8km"]
[ext_resource type="Script" uid="uid://cbal5oeaha4nx" path="res://src/ui/pause_menu/PauseMenu.cs" id="11_5ng8c"]
[ext_resource type="PackedScene" uid="uid://pu6gp8de3ck4" path="res://src/ui/floor_clear/FloorClearMenu.tscn" id="11_rya1n"]
[ext_resource type="PackedScene" uid="uid://dbtfgrtgpr4qg" path="res://src/ui/death_menu/DeathMenu.tscn" id="11_wypid"]
[ext_resource type="PackedScene" uid="uid://blbqgw3wosc1w" path="res://src/ui/pause_menu/PauseMenu.tscn" id="12_yev8k"]
@@ -39,9 +39,8 @@ custom_minimum_size = Vector2(1280, 720)
unique_name_in_owner = true
visible = false
[node name="FloorClearMenu" parent="." instance=ExtResource("11_rya1n")]
[node name="LoadNextLevel" parent="." instance=ExtResource("7_yw8km")]
unique_name_in_owner = true
visible = false
[node name="PauseMenu" parent="." instance=ExtResource("12_yev8k")]
unique_name_in_owner = true