using CounterDrone.Core.Models;

namespace CounterDrone.Core.Algorithms
{
    /// <summary>毁伤模型接口</summary>
    public interface IDamageModel
    {
        float CalculateDamage(DroneType droneType, PowerType powerType,
            AerosolType aerosolType, float cloudDensity, float exposureTime, float deltaTime);

        /// <summary>达到 100% 毁伤所需的连续暴露时间 (s)</summary>
        float RequiredExposureSeconds(DroneType droneType, PowerType powerType, AerosolType aerosolType);

        DamageStage GetDamageStage(float accumulatedDamage);
    }
}
