Done adding Obstacles and balancing BirdPooper

This commit is contained in:
2025-12-15 02:08:01 +01:00
parent bf04f93d72
commit e54b8805d8
9 changed files with 128 additions and 12 deletions

View File

@@ -34,6 +34,13 @@ namespace Minigames.BirdPooper
private IBirdPooperSettings settings;
private float spawnTimer;
private bool isSpawning;
private float _currentTargetInterval = 1f;
[Header("Spawn Timing")]
[Tooltip("Minimum interval between target spawns (seconds)")]
[SerializeField] private float minTargetSpawnInterval = 1f;
[Tooltip("Maximum interval between target spawns (seconds)")]
[SerializeField] private float maxTargetSpawnInterval = 2f;
internal override void OnManagedAwake()
{
@@ -44,7 +51,18 @@ namespace Minigames.BirdPooper
if (settings == null)
{
Debug.LogError("[TargetSpawner] BirdPooperSettings not found!");
return;
// continue we'll use inspector intervals
}
// Validate interval range
if (minTargetSpawnInterval < 0f) minTargetSpawnInterval = 0f;
if (maxTargetSpawnInterval < 0f) maxTargetSpawnInterval = 0f;
if (minTargetSpawnInterval > maxTargetSpawnInterval)
{
float tmp = minTargetSpawnInterval;
minTargetSpawnInterval = maxTargetSpawnInterval;
maxTargetSpawnInterval = tmp;
Debug.LogWarning("[TargetSpawner] minTargetSpawnInterval was greater than maxTargetSpawnInterval. Values were swapped.");
}
// Validate references
@@ -78,15 +96,17 @@ namespace Minigames.BirdPooper
private void Update()
{
if (!isSpawning || settings == null)
if (!isSpawning)
return;
spawnTimer += Time.deltaTime;
if (spawnTimer >= settings.TargetSpawnInterval)
if (spawnTimer >= _currentTargetInterval)
{
SpawnTarget();
spawnTimer = 0f;
// pick next random interval
_currentTargetInterval = Random.Range(minTargetSpawnInterval, maxTargetSpawnInterval);
}
}
@@ -153,6 +173,8 @@ namespace Minigames.BirdPooper
{
isSpawning = true;
spawnTimer = 0f;
// choose initial interval
_currentTargetInterval = Random.Range(minTargetSpawnInterval, maxTargetSpawnInterval);
Debug.Log("[TargetSpawner] Started spawning targets");
}