using ActiveProtect.Utility; using ActiveProtect.Models; using System.Net.Mime; namespace ActiveProtect.Simulation { /// /// 仿真事件的基类 /// public class SimulationEvent { /// /// 事件发送者的ID /// public string? SenderId { get; set; } /// /// 事件发生的时间戳 /// public double Timestamp { get; set; } } /// /// 导弹发射事件 /// public class MissileFireEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 激光照射事件 /// public class LaserIlluminationStartEvent : SimulationEvent { /// /// 激光定位器 /// public LaserDesignator? LaserDesignator { get; set; } /// /// 目标元素 /// public SimulationElement? Target { get; set; } } /// /// 激光照射更新事件 /// public class LaserIlluminationUpdateEvent : SimulationEvent { /// /// 激光定位器 /// public LaserDesignator? LaserDesignator { get; set; } /// /// 目标元素 /// public SimulationElement? Target { get; set; } } /// /// 激光照射停止事件 /// public class LaserIlluminationStopEvent : SimulationEvent { public LaserDesignator? LaserDesignator { get; set; } public SimulationElement? Target { get; set; } } /// /// 激光干扰事件 /// public class LaserJammingEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 干扰功率 /// public double JammingPower { get; set; } } /// /// 实体销毁事件 /// public class EntityDestroyedEvent : SimulationEvent { /// /// 被销毁实体的ID /// public string? DestroyedEntityId { get; set; } } /// /// 激光告警器警报事件 /// public class LaserWarnerAlarmEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 激光告警器警报停止事件 /// public class LaserWarnerAlarmStopEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 实体激活事件 /// public class EntityActivatedEvent : SimulationEvent { /// /// 被激活实体的ID /// public string? ActivatedEntityId { get; set; } } /// /// 实体停用事件 /// public class EntityDeactivatedEvent : SimulationEvent { /// /// 被停用实体的ID /// public string? DeactivatedEntityId { get; set; } } /// /// 激光开始事件 /// public class LaserBeamStartEvent : SimulationEvent { public LaserBeamRider? LaserBeamRider { get; set; } } /// /// 激光更新事件 /// public class LaserBeamUpdateEvent : SimulationEvent { public LaserBeamRider? LaserBeamRider { get; set; } } /// /// 激光停止事件 /// public class LaserBeamStopEvent : SimulationEvent { public LaserBeamRider? LaserBeamRider { get; set; } } /// /// 红外指令制导事件 /// public class InfraredGuidanceCommandEvent : SimulationEvent { /// /// 目标导弹ID /// public string? TargetMissileId { get; set; } /// /// 视线向量 /// public Vector3D TrackerToTargetVector { get; set; } = Vector3D.Zero; /// /// 视线向量 /// public Vector3D TrackerToMissileVector { get; set; } = Vector3D.Zero; } /// /// 红外指令制导导弹点亮红外热源事件 /// public class InfraredGuidanceMissileLightEvent : SimulationEvent { /// /// 红外热源辐射功率(瓦特) /// public double RadiationPower { get; set; } } /// /// 红外指令制导导弹熄灭红外热源事件 /// public class InfraredGuidanceMissileLightOffEvent : SimulationEvent { } /// /// 毫米波干扰事件 /// public class MillimeterWaveJammingEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 干扰功率(瓦特) /// public double JammingPower { get; set; } } /// /// 坦克辐射事件 /// public class TankRadiationEvent : SimulationEvent { /// /// 激光漫反射强度 /// public double LaserReflectionIntensity { get; set; } /// /// 毫米波反射强度 /// public double MillimeterWaveReflectionIntensity { get; set; } /// /// 毫米波辐射温度 /// public double MillimeterWaveRadiationTemperature { get; set; } /// /// 红外辐射强度 /// public double InfraredRadiationIntensity { get; set; } } /// /// 目标被击中事件 /// public class TargetHitEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 导弹ID /// public string? MissileId { get; set; } } /// /// 红外探测事件 /// public class InfraredDetectionEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 红外辐射强度 /// public double Intensity { get; set; } } /// /// 红外告警器警报事件 /// public class InfraredWarnerAlarmEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 红外告警器警报停止事件 /// public class InfraredWarnerAlarmStopEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 紫外探测事件 /// public class UltravioletDetectionEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 紫外辐射强度 /// public double Intensity { get; set; } } /// /// 紫外告警器警报事件 /// public class UltravioletWarnerAlarmEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 紫外告警器警报停止事件 /// public class UltravioletWarnerAlarmStopEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 毫米波探测事件 /// public class MillimeterWaveDetectionEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 毫米波辐射强度 /// public double Intensity { get; set; } /// /// 毫米波频率(GHz) /// public double Frequency { get; set; } } /// /// 毫米波告警器警报事件 /// public class MillimeterWaveWarnerAlarmEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 探测到的频率(GHz) /// public double DetectedFrequency { get; set; } } /// /// 毫米波告警器警报停止事件 /// public class MillimeterWaveWarnerAlarmStopEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } } /// /// 红外干扰事件 /// public class InfraredJammingEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 干扰功率(瓦特) /// public double JammingPower { get; set; } /// /// 最小波长(微米) /// public double WavelengthMin { get; set; } /// /// 最大波长(微米) /// public double WavelengthMax { get; set; } } /// /// 烟幕干扰事件 /// public class SmokeJammingEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 烟幕类型 /// public SmokeType SmokeType { get; set; } /// /// 烟幕浓度(kg/m³) /// public float Density { get; set; } /// /// 烟幕厚度(米) /// public float Thickness { get; set; } } /// /// 末敏弹毫米波干扰事件 /// public class TerminalMillimeterWaveJammingEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 干扰功率(瓦特) /// public double JammingPower { get; set; } /// /// 干扰频率(GHz) /// public double Frequency { get; set; } /// /// 距离(米) /// public double Distance { get; set; } } /// /// 末敏弹威胁探测事件 /// public class TerminalThreatDetectionEvent : SimulationEvent { /// /// 目标ID /// public string? TargetId { get; set; } /// /// 目标距离(米) /// public double Distance { get; set; } } }