wave behavior and fixed explosion
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user