wave behavior and fixed explosion

This commit is contained in:
2026-05-16 19:48:48 +02:00
parent b3ae3e37ea
commit 1898d91a28
27 changed files with 355 additions and 21 deletions

View File

@@ -13,7 +13,12 @@ using Movementtests.systems;
typeof(IAutoConnect),
typeof(IProvider)
)]
public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>, IProvide<TagsManager>, IProvide<CuesManager>, IProvide<TokenManager>
public partial class MainSceneTemplate : Node3D,
IProvide<InventoryManager>,
IProvide<TagsManager>,
IProvide<CuesManager>,
IProvide<TokenManager>,
IProvide<WaveManager>
{
public override void _Notification(int what) => this.Notify(what);
@@ -32,6 +37,7 @@ public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>, IPr
[Export] public WeaponInventory? InitialWeaponInventory { get; set; }
[Export] public int MaxNumberOfProjectiles { get; set; } = 3;
[Export] public WaveContent? WaveContent { get; set; }
#endregion
@@ -44,6 +50,9 @@ public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>, IPr
public required TokenManager TokenManager { get; set; }
TokenManager IProvide<TokenManager>.Value() => TokenManager;
public required WaveManager WaveManager { get; set; }
WaveManager IProvide<WaveManager>.Value() => WaveManager;
public void OnReady()
{
PlayerFellPlane.BodyEntered += StartResetPlayerAnimation;
@@ -57,10 +66,21 @@ public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>, IPr
TokenManager = new TokenManager();
TokenManager.Initialize(MaxNumberOfProjectiles);
AddChild(TokenManager);
WaveManager = new WaveManager();
if (WaveContent != null)
WaveManager.InitializeFromResource(WaveContent);
AddChild(WaveManager);
this.Provide();
}
public void OnProvided()
{
if (WaveContent != null)
GetTree().CreateTimer(3).Timeout += WaveManager.StartWaves;
}
public void ResetPlayerPosition()
{
if (Respawnabble == null || PlayerRespawnMarker == null) throw new Exception("Player or respawn marker is null");