using Obstacle;
using UnityEngine;
using Player;
    public class GameProgression : MonoBehaviour
    {
        [Header("Ссылки на системы")]
        public PlayerCarController player;
        public ObstacleSpawner spawner;
        public VanController van;

        [Header("Графики сложности (Ось X - секунды игры)")]
    
        [Tooltip("Как растет скорость машины")]
        public AnimationCurve speedCurve = AnimationCurve.Linear(0, 20, 120, 50);
    
        [Tooltip("Задержка между спавном. Чем ниже график, тем плотнее поток машин")]
        public AnimationCurve spawnIntervalCurve = AnimationCurve.Linear(0, 1.5f, 120, 0.4f);
    
        [Tooltip("Шанс появления препятствий вместо авто ")]
        public AnimationCurve obstacleChanceCurve = AnimationCurve.Linear(0, 0.1f, 120, 0.5f);

        private float _timeAlive;

        void Update()
        {
            // Считаем время заезда
            _timeAlive += Time.deltaTime;

            float currentSpeed = speedCurve.Evaluate(_timeAlive);
            
            if (player != null) player.forwardSpeed = currentSpeed;
            if (van != null) van.forwardSpeed = currentSpeed;
            
            spawner.currentSpawnInterval = spawnIntervalCurve.Evaluate(_timeAlive);
            spawner.currentObstacleChance = obstacleChanceCurve.Evaluate(_timeAlive);
        }
    }
