max power up count

This commit is contained in:
Vinzenz Schroeter 2024-04-17 20:12:36 +02:00
parent d02100f9a3
commit 2a94a47a96
3 changed files with 7 additions and 1 deletions

View file

@ -5,4 +5,6 @@ internal sealed class GameRules
public bool DestructibleWalls { get; set; } = true;
public double PowerUpSpawnChance { get; set; }
public int MaxPowerUpCount { get; set; } = int.MaxValue;
}

View file

@ -6,9 +6,12 @@ internal sealed class SpawnPowerUp(
) : ITickStep
{
private readonly double _spawnChance = options.Value.PowerUpSpawnChance;
private readonly int _maxCount = options.Value.MaxPowerUpCount;
public Task TickAsync(TimeSpan delta)
{
if (entityManager.PowerUps.Count() >= _maxCount)
return Task.CompletedTask;
if (Random.Shared.NextDouble() > _spawnChance * delta.TotalSeconds)
return Task.CompletedTask;

View file

@ -27,7 +27,8 @@
},
"GameRules": {
"DestructibleWalls": true,
"PowerUpSpawnChance": 0.1
"PowerUpSpawnChance": 0.1,
"MaxPowerUpCount": 15
},
"Players": {
"SpawnDelayMs": 3000,