using CounterDrone.Core.Models;

namespace CounterDrone.Core.Algorithms
{
    /// <summary>云团扩散模型接口</summary>
    public interface ICloudDispersionModel
    {
        void Initialize(AmmunitionSpec ammo, CombatScene env, Vector3 releasePos, float releaseTime);
        void Tick(float deltaTime, float windSpeed, WindDirection windDir);
        Vector3 Center { get; }
        float Radius { get; }
        float CoreDensity { get; }
        float EffectiveRadius { get; }
        ParticleParams Particles { get; }
        bool IsDissipated { get; }
        /// <summary>当前扩散阶段：1=爆轰膨胀, 2=湍流扩散, 3=高斯扩散</summary>
        int Phase { get; }
        /// <summary>云团已存在时间（秒）</summary>
        float Elapsed { get; }
    }
}
