using System; using UnityEngine; namespace Minigames.Airplane.Data { /// /// Configuration for a single spawn pool. /// Contains prefabs, unlock timing, and optional spawn parameter overrides. /// [Serializable] public class SpawnPoolConfig { [Tooltip("Prefabs that can spawn from this pool")] public GameObject[] prefabs; [Tooltip("Time (seconds from game start) when this pool becomes available. 0 = available immediately.")] public float unlockTime = 0f; [Tooltip("Description for this pool (editor reference only)")] public string description = "Pool"; [Header("Spawn Parameter Overrides (0 = use global)")] [Tooltip("Override minimum spawn distance for this pool (0 = use global)")] public float overrideMinDistance = 0f; [Tooltip("Override maximum spawn distance for this pool (0 = use global)")] public float overrideMaxDistance = 0f; /// /// Check if this pool has valid prefabs assigned. /// public bool HasPrefabs => prefabs != null && prefabs.Length > 0; /// /// Get effective minimum distance (uses override if non-zero, otherwise uses global). /// public float GetMinDistance(float globalMin) => overrideMinDistance > 0f ? overrideMinDistance : globalMin; /// /// Get effective maximum distance (uses override if non-zero, otherwise uses global). /// public float GetMaxDistance(float globalMax) => overrideMaxDistance > 0f ? overrideMaxDistance : globalMax; } }