Add plastique item

Add Door object
Initial work for look up animation
This commit is contained in:
2026-01-02 17:06:01 -08:00
parent 5b9de11e5a
commit 04543fcfac
32 changed files with 1652 additions and 990 deletions

View File

@@ -167,12 +167,14 @@ public partial class Game : Node3D, IGame
OnLoadLevelRequest += LoadLevel;
GameRepo.RestorativePickedUp += GameEventDepot_RestorativePickedUp;
GameRepo.CloseInventoryEvent += ExitInventoryAction;
_player.Inventory.BroadcastMessage += BroadcastMessage;
_map.FloorLoaded += OnFloorLoadFinished;
_player.PlayerDied += GameOver;
_player.PointUpFinished += PointUpFinished;
GameOverMenu.NewGame += OnNewGame;
GameOverMenu.QuitGame += OnQuit;
@@ -234,6 +236,14 @@ public partial class Game : Node3D, IGame
dropped.Drop();
}
public void SetItem(InventoryItem item)
{
var setScene = GD.Load<PackedScene>("res://src/items/misc/SetItem.tscn");
var setItem = setScene.Instantiate<SetItem>();
AddChild(setItem);
setItem.Set();
}
public void ThrowItem(InventoryItem item)
{
var thrownScene = GD.Load<PackedScene>("res://src/items/thrown/ThrownItem.tscn");
@@ -296,9 +306,7 @@ public partial class Game : Node3D, IGame
})
.Handle((in GameState.Output.CloseInventoryMenu _) =>
{
GameRepo.Resume();
InGameUI.InventoryMenu.Hide();
InGameUI.InventoryMenu.SetProcessInput(false);
CloseInventory();
})
.Handle((in GameState.Output.OpenDebugMenu _) =>
{
@@ -325,6 +333,7 @@ public partial class Game : Node3D, IGame
})
.Handle((in GameState.Output.LoadNextFloor _) =>
{
_player.Reset();
LoadNextLevel.FadeOut();
EmitSignal(SignalName.OnLoadLevelRequest);
Task.Run(() => Save());
@@ -366,6 +375,15 @@ public partial class Game : Node3D, IGame
InGameUI.Hide();
}
private void ExitInventoryAction() => GameState.Input(new GameState.Input.CloseInventory());
private void CloseInventory()
{
GameRepo.Resume();
InGameUI.InventoryMenu.Hide();
InGameUI.InventoryMenu.SetProcessInput(false);
}
private async void LoadLevel() => await _map.LoadFloor();
private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor());
@@ -385,7 +403,13 @@ public partial class Game : Node3D, IGame
GameRepo.Resume();
}
private void UseTeleportPrompt_TeleportToNextFloor() => GameState.Input(new GameState.Input.UseTeleport());
private void UseTeleportPrompt_TeleportToNextFloor()
{
//_player.LookUp();
GameState.Input(new GameState.Input.UseTeleport());
}
private void PointUpFinished() => GameState.Input(new GameState.Input.UseTeleport());
private void FloorClearMenu_TransitionCompleted()
{