ActiveProtect/SimulationEnvironment/SimulationEvents.cs

209 lines
5.0 KiB
C#

using ActiveProtect.Models;
namespace ActiveProtect.SimulationEnvironment
{
/// <summary>
/// 仿真事件的基类
/// </summary>
public class SimulationEvent
{
/// <summary>
/// 事件发送者的ID
/// </summary>
public string? SenderId { get; set; }
/// <summary>
/// 事件发生的时间戳
/// </summary>
public double Timestamp { get; set; }
}
/// <summary>
/// 导弹发射事件
/// </summary>
public class MissileFireEvent : SimulationEvent
{
/// <summary>
/// 目标ID
/// </summary>
public string? TargetId { get; set; }
}
/// <summary>
/// 激光照射事件
/// </summary>
public class LaserIlluminationStartEvent : SimulationEvent
{
/// <summary>
/// 激光定位器
/// </summary>
public LaserDesignator? LaserDesignator { get; set; }
/// <summary>
/// 目标元素
/// </summary>
public SimulationElement? Target { get; set; }
}
/// <summary>
/// 激光照射更新事件
/// </summary>
public class LaserIlluminationUpdateEvent : SimulationEvent
{
/// <summary>
/// 激光定位器
/// </summary>
public LaserDesignator? LaserDesignator { get; set; }
/// <summary>
/// 目标元素
/// </summary>
public SimulationElement? Target { get; set; }
}
/// <summary
/// 激光照射停止事件
/// </summary>
public class LaserIlluminationStopEvent : SimulationEvent
{
public LaserDesignator? LaserDesignator { get; set; }
public SimulationElement? Target { get; set; }
}
/// <summary>
/// 激光干扰事件
/// </summary>
public class LaserJammingEvent : SimulationEvent
{
/// <summary>
/// 目标ID
/// </summary>
public string? TargetId { get; set; }
/// <summary>
/// 干扰功率
/// </summary>
public double JammingPower { get; set; }
}
/// <summary>
/// 实体销毁事件
/// </summary>
public class EntityDestroyedEvent : SimulationEvent
{
/// <summary>
/// 被销毁实体的ID
/// </summary>
public string? DestroyedEntityId { get; set; }
}
/// <summary>
/// 激光告警器警报事件
/// </summary>
public class LaserWarnerAlarmEvent : SimulationEvent
{
/// <summary>
/// 目标ID
/// </summary>
public string? TargetId { get; set; }
}
/// <summary>
/// 激光告警器警报停止事件
/// </summary>
public class LaserWarnerAlarmStopEvent : SimulationEvent
{
/// <summary>
/// 目标ID
/// </summary>
public string? TargetId { get; set; }
}
/// <summary>
/// 实体激活事件
/// </summary>
public class EntityActivatedEvent : SimulationEvent
{
/// <summary>
/// 被激活实体的ID
/// </summary>
public string? ActivatedEntityId { get; set; }
}
/// <summary>
/// 实体停用事件
/// </summary>
public class EntityDeactivatedEvent : SimulationEvent
{
/// <summary>
/// 被停用实体的ID
/// </summary>
public string? DeactivatedEntityId { get; set; }
}
/// <summary>
/// 激光开始事件
/// </summary>
public class LaserBeamStartEvent : SimulationEvent
{
public LaserBeamRider? LaserBeamRider { get; set; }
}
/// <summary>
/// 激光更新事件
/// </summary>
public class LaserBeamUpdateEvent : SimulationEvent
{
public LaserBeamRider? LaserBeamRider { get; set; }
}
/// <summary>
/// 激光停止事件
/// </summary>
public class LaserBeamStopEvent : SimulationEvent
{
public LaserBeamRider? LaserBeamRider { get; set; }
}
/// <summary>
/// 红外指令制导事件
/// </summary>
public class InfraredGuidanceCommandEvent : SimulationEvent
{
/// <summary>
/// 目标导弹ID
/// </summary>
public string? TargetMissileId { get; set; }
/// <summary>
/// 视线向量
/// </summary>
public Vector3D TrackerToTargetVector { get; set; } = Vector3D.Zero;
/// <summary>
/// 视线向量
/// </summary>
public Vector3D TrackerToMissileVector { get; set; } = Vector3D.Zero;
}
/// <summary>
/// 红外指令制导导弹点亮红外热源事件
/// </summary>
public class InfraredGuidanceMissileLightEvent : SimulationEvent
{
/// <summary>
/// 红外热源辐射功率(瓦特)
/// </summary>
public double RadiationPower { get; set; }
}
/// <summary>
/// 红外指令制导导弹熄灭红外热源事件
/// </summary>
public class InfraredGuidanceMissileLightOffEvent : SimulationEvent
{
}
}