diff --git a/ThreatSource.sln b/ThreatSource.sln
index 5492b46..eb9598c 100644
--- a/ThreatSource.sln
+++ b/ThreatSource.sln
@@ -6,6 +6,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThreatSource", "ThreatSourc
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThreatSource.Tests", "ThreatSource.Tests\ThreatSource.Tests.csproj", "{973EB84A-AED4-49A3-A12A-C0969F022915}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThreatSource.Tools", "tools\ThreatSource.Tools.csproj", "{31DEBAE2-F5B2-4001-8C08-33A9A0637D35}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -20,6 +22,10 @@ Global
{973EB84A-AED4-49A3-A12A-C0969F022915}.Debug|Any CPU.Build.0 = Debug|Any CPU
{973EB84A-AED4-49A3-A12A-C0969F022915}.Release|Any CPU.ActiveCfg = Release|Any CPU
{973EB84A-AED4-49A3-A12A-C0969F022915}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31DEBAE2-F5B2-4001-8C08-33A9A0637D35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31DEBAE2-F5B2-4001-8C08-33A9A0637D35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31DEBAE2-F5B2-4001-8C08-33A9A0637D35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31DEBAE2-F5B2-4001-8C08-33A9A0637D35}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ThreatSource/src/Data/DataModels.cs b/ThreatSource/src/Data/DataModels.cs
index 23e6a99..1f1ea5c 100644
--- a/ThreatSource/src/Data/DataModels.cs
+++ b/ThreatSource/src/Data/DataModels.cs
@@ -361,13 +361,8 @@ namespace ThreatSource.Data
/// 获取或设置干扰机的类型
///
///
- /// 可选值:
- /// - LaserJammer:激光干扰机
- /// - IRJammer:红外干扰机
- /// - MMWJammer:毫米波干扰机
- /// - SmokeGrenade:烟幕弹
///
- public JammerType Type { get; set; }
+ public JammingType Type { get; set; }
///
/// 获取或设置烟幕弹的配置
diff --git a/ThreatSource/src/Data/ThreatSourceFactory.cs b/ThreatSource/src/Data/ThreatSourceFactory.cs
index 4fb3738..05fcbc7 100644
--- a/ThreatSource/src/Data/ThreatSourceFactory.cs
+++ b/ThreatSource/src/Data/ThreatSourceFactory.cs
@@ -136,7 +136,7 @@ namespace ThreatSource.Data
public IIndicator CreateIndicator(string indicatorId, string indicatorModel, string targetId, string missileId, MotionParameters motionParameters)
{
var data = _dataManager.GetIndicator(indicatorModel);
-
+
return data.Type switch
{
IndicatorType.LaserDesignator when data.DesignatorConfig != null => new LaserDesignator(
@@ -232,32 +232,32 @@ namespace ThreatSource.Data
var data = _dataManager.GetJammer(jammerModel);
return data.Type switch
{
- JammerType.SmokeGrenade => new SmokeGrenade(
+ JammingType.SmokeGrenade => new SmokeGrenade(
jammerId,
data.SmokeGrenadeConfig,
motionParameters,
_simulationManager
),
- JammerType.LaserDecoy => new LaserDecoy(
+ JammingType.LaserDecoy => new LaserDecoy(
jammerId,
data.LaserDecoyConfig,
motionParameters,
sourceId,
_simulationManager
),
- JammerType.Laser => new LaserJammer(
+ JammingType.Laser => new LaserJammer(
jammerId,
data.LaserJammerConfig,
motionParameters,
_simulationManager
),
- JammerType.Infrared => new InfraredJammer(
+ JammingType.Infrared => new InfraredJammer(
jammerId,
data.InfraredJammerConfig,
motionParameters,
_simulationManager
),
- JammerType.MillimeterWave => new MillimeterWaveJammer(
+ JammingType.MillimeterWave => new MillimeterWaveJammer(
jammerId,
data.MillimeterWaveJammerConfig,
motionParameters,
diff --git a/ThreatSource/src/Guidance/InfraredImagingGuidanceSystem.cs b/ThreatSource/src/Guidance/InfraredImagingGuidanceSystem.cs
index 28c1561..29ef630 100644
--- a/ThreatSource/src/Guidance/InfraredImagingGuidanceSystem.cs
+++ b/ThreatSource/src/Guidance/InfraredImagingGuidanceSystem.cs
@@ -135,7 +135,7 @@ namespace ThreatSource.Guidance
backgroundIntensity: guidanceConfig.BackgroundIntensity,
wavelength: guidanceConfig.WaveLength
);
- InitializeJamming(guidanceConfig.JammingResistanceThreshold, [JammingType.Infrared, JammingType.SmokeScreen]);
+ InitializeJamming(guidanceConfig.JammingResistanceThreshold, [JammingType.Infrared, JammingType.SmokeGrenade]);
SwitchToSearchMode(); // 初始化为搜索模式
}
@@ -159,7 +159,7 @@ namespace ThreatSource.Guidance
// 调用基类处理硬干扰状态
base.HandleJammingApplied(parameters);
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
if (SimulationManager.GetEntityById(parameters.JammerId) is SmokeGrenade smokeGrenade)
{
@@ -198,7 +198,7 @@ namespace ThreatSource.Guidance
Debug.WriteLine("红外引导系统干扰已清除");
// 干扰清除后的恢复逻辑
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
SmokeAttenuation = 1.0; // Reset smoke attenuation
Debug.WriteLine("[烟幕干扰清除 IR]");
diff --git a/ThreatSource/src/Guidance/LaserSemiActiveGuidanceSystem.cs b/ThreatSource/src/Guidance/LaserSemiActiveGuidanceSystem.cs
index fdb2cd4..ed2fab6 100644
--- a/ThreatSource/src/Guidance/LaserSemiActiveGuidanceSystem.cs
+++ b/ThreatSource/src/Guidance/LaserSemiActiveGuidanceSystem.cs
@@ -166,7 +166,7 @@ namespace ThreatSource.Guidance
// 初始化加速度平滑处理
PreviousGuidanceAcceleration = Vector3D.Zero;
- InitializeJamming(guidanceConfig.JammingResistanceThreshold, [JammingType.Laser, JammingType.SmokeScreen, JammingType.Decoy]);
+ InitializeJamming(guidanceConfig.JammingResistanceThreshold, [JammingType.Laser, JammingType.SmokeGrenade, JammingType.LaserDecoy]);
}
///
@@ -292,13 +292,13 @@ namespace ThreatSource.Guidance
LaserIlluminationOn = false; // 无法确认照射状态
// 不需要再次设置 HasGuidance = false
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
// 计算并应用烟幕衰减
SmokeAttenuation = CalculateSmokeAttenuation(parameters);
Debug.WriteLine($"[LASER_SEMI_ACTIVE] 烟幕干扰应用,衰减因子: {SmokeAttenuation:P2}", "Jamming");
}
- else if (parameters.Type == JammingType.Decoy)
+ else if (parameters.Type == JammingType.LaserDecoy)
{
if (parameters.JammerId != null && parameters.SourceId != null)
{
@@ -327,12 +327,12 @@ namespace ThreatSource.Guidance
// 不需要设置 HasGuidance = true, 基类可能已处理
// 激光照射状态 LaserIlluminationOn 会在收到下一个有效 Update 事件时恢复
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
SmokeAttenuation = 1.0; // 重置烟幕衰减
Debug.WriteLine($"[LASER_SEMI_ACTIVE] 烟幕干扰已清除。", "Jamming");
}
- else if (parameters.Type == JammingType.Decoy)
+ else if (parameters.Type == JammingType.LaserDecoy)
{
if (parameters.JammerId != null)
{
diff --git a/ThreatSource/src/Guidance/MillimeterWaveGuidanceSystem.cs b/ThreatSource/src/Guidance/MillimeterWaveGuidanceSystem.cs
index eea499a..b913338 100644
--- a/ThreatSource/src/Guidance/MillimeterWaveGuidanceSystem.cs
+++ b/ThreatSource/src/Guidance/MillimeterWaveGuidanceSystem.cs
@@ -146,7 +146,7 @@ namespace ThreatSource.Guidance
: base(id, maxAcceleration, guidanceCoefficient, simulationManager)
{
this.config = config;
- InitializeJamming(config.JammingResistanceThreshold, [JammingType.MillimeterWave, JammingType.SmokeScreen]);
+ InitializeJamming(config.JammingResistanceThreshold, [JammingType.MillimeterWave, JammingType.SmokeGrenade]);
SwitchToSearchMode(); // 初始化为搜索模式
}
@@ -238,7 +238,7 @@ namespace ThreatSource.Guidance
SwitchToSearchMode();
}
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
// 计算烟幕透过率
// TODO: 实现基于 JammingParameters 中烟幕属性 (浓度、厚度等) 的真实透过率计算。
@@ -260,7 +260,7 @@ namespace ThreatSource.Guidance
Debug.WriteLine($"[MMW_GUIDANCE] 毫米波干扰已清除。", "Jamming");
// 干扰清除后是否需要切换模式?取决于当前是否有目标。Update 会处理。
}
- else if (parameters.Type == JammingType.SmokeScreen)
+ else if (parameters.Type == JammingType.SmokeGrenade)
{
_currentSmokeTransmittance = 1.0; // 重置烟幕透过率
Debug.WriteLine($"[MMW_GUIDANCE] 烟幕干扰已清除。", "Jamming");
diff --git a/ThreatSource/src/Indicator/BaseIndicator.cs b/ThreatSource/src/Indicator/BaseIndicator.cs
index 66fa929..4facbc2 100644
--- a/ThreatSource/src/Indicator/BaseIndicator.cs
+++ b/ThreatSource/src/Indicator/BaseIndicator.cs
@@ -144,7 +144,7 @@ namespace ThreatSource.Indicator
protected virtual void HandleJammingApplied(JammingParameters parameters)
{
// 如果是烟幕干扰,重新计算遮挡状态
- if (parameters.Type == JammingType.SmokeScreen)
+ if (parameters.Type == JammingType.SmokeGrenade)
{
RecalculateObscurationStatus();
Debug.WriteLine($"[BaseIndicator] 烟幕状态更新,IsTargetObscured: {IsTargetObscured}", "Jamming");
@@ -164,7 +164,7 @@ namespace ThreatSource.Indicator
protected virtual void HandleJammingCleared(JammingParameters parameters)
{
// 如果是烟幕干扰,重新计算遮挡状态
- if (parameters.Type == JammingType.SmokeScreen)
+ if (parameters.Type == JammingType.SmokeGrenade)
{
RecalculateObscurationStatus();
Debug.WriteLine($"[BaseIndicator] 烟幕状态更新,IsTargetObscured: {IsTargetObscured}", "Jamming");
diff --git a/ThreatSource/src/Indicator/InfraredTracker.cs b/ThreatSource/src/Indicator/InfraredTracker.cs
index e3df858..449de19 100644
--- a/ThreatSource/src/Indicator/InfraredTracker.cs
+++ b/ThreatSource/src/Indicator/InfraredTracker.cs
@@ -28,7 +28,7 @@ namespace ThreatSource.Indicator
/// 红外测角仪支持的干扰类型:
/// - 红外干扰
///
- public override IEnumerable SupportedJammingTypes => [JammingType.Infrared, JammingType.SmokeScreen];
+ public override IEnumerable SupportedJammingTypes => [JammingType.Infrared, JammingType.SmokeGrenade];
///
/// 红外测角仪配置参数
diff --git a/ThreatSource/src/Indicator/LaserBeamRider.cs b/ThreatSource/src/Indicator/LaserBeamRider.cs
index 8d3f832..090ff10 100644
--- a/ThreatSource/src/Indicator/LaserBeamRider.cs
+++ b/ThreatSource/src/Indicator/LaserBeamRider.cs
@@ -25,7 +25,7 @@ namespace ThreatSource.Indicator
/// 激光驾束仪支持的干扰类型:
/// - 激光干扰
///
- public override IEnumerable SupportedJammingTypes => [JammingType.Laser, JammingType.SmokeScreen];
+ public override IEnumerable SupportedJammingTypes => [JammingType.Laser, JammingType.SmokeGrenade];
///
/// 获取或设置干扰阈值,单位:分贝
diff --git a/ThreatSource/src/Indicator/LaserDesignator.cs b/ThreatSource/src/Indicator/LaserDesignator.cs
index 18dd973..1d5e28b 100644
--- a/ThreatSource/src/Indicator/LaserDesignator.cs
+++ b/ThreatSource/src/Indicator/LaserDesignator.cs
@@ -25,7 +25,7 @@ namespace ThreatSource.Indicator
/// 激光目标指示器支持的干扰类型:
/// - 激光干扰
///
- public override IEnumerable SupportedJammingTypes => [JammingType.Laser, JammingType.SmokeScreen];
+ public override IEnumerable SupportedJammingTypes => [JammingType.Laser, JammingType.SmokeGrenade];
///
/// 获取或设置干扰阈值,单位:分贝
diff --git a/ThreatSource/src/Jammable/JammableComponent.cs b/ThreatSource/src/Jammable/JammableComponent.cs
index e90e332..b5ded34 100644
--- a/ThreatSource/src/Jammable/JammableComponent.cs
+++ b/ThreatSource/src/Jammable/JammableComponent.cs
@@ -159,7 +159,7 @@ namespace ThreatSource.Jammable
}
// 烟幕干扰总是有效,如果支持的话
- if (parameters.Type == JammingType.SmokeScreen)
+ if (parameters.Type == JammingType.SmokeGrenade)
{
Debug.WriteLine($"[干扰有效性检查] 烟幕干扰有效。");
return true;
diff --git a/ThreatSource/src/Jammer/BaseJammer.cs b/ThreatSource/src/Jammer/BaseJammer.cs
index 9398e70..6181581 100644
--- a/ThreatSource/src/Jammer/BaseJammer.cs
+++ b/ThreatSource/src/Jammer/BaseJammer.cs
@@ -20,15 +20,10 @@ namespace ThreatSource.Jammer
///
protected JammingParameters? CurrentParameters { get; set; }
- ///
- /// 干扰器类型
- ///
- protected abstract JammerType Type { get; }
-
///
/// 支持的干扰类型
///
- protected abstract JammingType[] SupportedJammingTypes { get; }
+ protected abstract JammingType JammingType { get; }
///
/// 干扰器状态
@@ -89,7 +84,6 @@ namespace ThreatSource.Jammer
{
return new JammerRunningState
{
- Type = Type,
State = State,
CurrentParameters = CurrentParameters,
IsJamming = IsJamming
@@ -103,7 +97,7 @@ namespace ThreatSource.Jammer
public virtual void StartJamming(JammingParameters parameters)
{
// 检查是否是该类型的干扰
- if (!SupportedJammingTypes.Contains(parameters.Type))
+ if (JammingType != parameters.Type)
{
Console.WriteLine($"干扰器 {Id} 不支持 {parameters.Type} 类型的干扰");
return;
@@ -226,7 +220,7 @@ namespace ThreatSource.Jammer
/// 干扰器状态信息
public override string GetStatus()
{
- return base.GetStatus() + $"干扰器状态:{State}, type: {Type}, isJamming: {IsJamming}\n";
+ return base.GetStatus() + $"干扰器状态:{State}, type: {JammingType}, isJamming: {IsJamming}\n";
}
}
}
diff --git a/ThreatSource/src/Jammer/IJammer.cs b/ThreatSource/src/Jammer/IJammer.cs
index 2ba2602..48b84a6 100644
--- a/ThreatSource/src/Jammer/IJammer.cs
+++ b/ThreatSource/src/Jammer/IJammer.cs
@@ -46,11 +46,6 @@ namespace ThreatSource.Jammer
///
public struct JammerRunningState
{
- ///
- /// 干扰器类型
- ///
- public JammerType Type { get; set; }
-
///
/// 干扰器工作状态
///
@@ -67,42 +62,6 @@ namespace ThreatSource.Jammer
public bool IsJamming { get; set; }
}
- ///
- /// 干扰器类型枚举
- ///
- public enum JammerType
- {
- ///
- /// 激光干扰器
- ///
- Laser,
-
- ///
- /// 激光诱偏目标
- ///
- LaserDecoy,
-
- ///
- /// 红外干扰器
- ///
- Infrared,
-
- ///
- /// 紫外干扰器
- ///
- Ultraviolet,
-
- ///
- /// 毫米波干扰器
- ///
- MillimeterWave,
-
- ///
- /// 烟幕弹
- ///
- SmokeGrenade
- }
-
///
/// 干扰器工作状态枚举
///
diff --git a/ThreatSource/src/Jammer/InfraredJammer.cs b/ThreatSource/src/Jammer/InfraredJammer.cs
index c16156c..5a121cd 100644
--- a/ThreatSource/src/Jammer/InfraredJammer.cs
+++ b/ThreatSource/src/Jammer/InfraredJammer.cs
@@ -15,15 +15,10 @@ namespace ThreatSource.Jammer
///
public readonly InfraredJammerConfig config;
- ///
- /// 干扰器类型
- ///
- protected override JammerType Type => JammerType.Infrared;
-
///
/// 支持的干扰类型
///
- protected override JammingType[] SupportedJammingTypes => [JammingType.Infrared];
+ protected override JammingType JammingType => JammingType.Infrared;
///
/// 初始化红外干扰器的新实例
@@ -45,12 +40,12 @@ namespace ThreatSource.Jammer
{
return new JammingParameters
{
- Type = JammingType.Infrared,
- JammerId = Id,
+ Type = Jammer.JammingType.Infrared,
+ JammerId = base.Id,
Power = config.Power,
Wavelength = config.Wavelength,
- Direction = Orientation.ToVector(),
- SourcePosition = Position,
+ Direction = base.Orientation.ToVector(),
+ SourcePosition = base.Position,
AngleRange = config.AngleRange,
Mode = config.Mode,
Duration = config.Duration,
diff --git a/ThreatSource/src/Jammer/JammingParameters.cs b/ThreatSource/src/Jammer/JammingParameters.cs
index 3232945..9dc5fd9 100644
--- a/ThreatSource/src/Jammer/JammingParameters.cs
+++ b/ThreatSource/src/Jammer/JammingParameters.cs
@@ -176,21 +176,16 @@ namespace ThreatSource.Jammer
/// 激光干扰
///
Laser,
-
- ///
- /// 射频干扰
- ///
- RadioFrequency,
///
/// 诱偏干扰
///
- Decoy,
+ LaserDecoy,
///
/// 烟幕干扰
///
- SmokeScreen
+ SmokeGrenade
}
///
diff --git a/ThreatSource/src/Jammer/LaserDecoy.cs b/ThreatSource/src/Jammer/LaserDecoy.cs
index 7379478..afcca5d 100644
--- a/ThreatSource/src/Jammer/LaserDecoy.cs
+++ b/ThreatSource/src/Jammer/LaserDecoy.cs
@@ -11,15 +11,10 @@ namespace ThreatSource.Jammer
///
public class LaserDecoy : BaseJammer
{
- ///
- /// 获取干扰器类型
- ///
- protected override JammerType Type => JammerType.LaserDecoy;
-
///
/// 支持的干扰类型
///
- protected override JammingType[] SupportedJammingTypes => [JammingType.Decoy];
+ protected override JammingType JammingType => JammingType.LaserDecoy;
///
/// 激光诱偏目标配置
@@ -56,15 +51,15 @@ namespace ThreatSource.Jammer
return new JammingParameters
{
- Type = JammingType.Decoy,
+ Type = Jammer.JammingType.LaserDecoy,
Mode = config.Mode,
- JammerId = Id,
+ JammerId = base.Id,
SourceId = SourceId,
Power = config.Power,
Wavelength = config.Wavelength,
SourcePosition = sourcePosition,
- Direction = Orientation.ToVector(),
- DecoyPosition = Position,
+ Direction = base.Orientation.ToVector(),
+ DecoyPosition = base.Position,
AngleRange = config.DivergenceAngle,
Duration = config.Duration,
ReflectiveArea = config.ReflectiveArea,
diff --git a/ThreatSource/src/Jammer/LaserJammer.cs b/ThreatSource/src/Jammer/LaserJammer.cs
index 5a598c8..537b1cb 100644
--- a/ThreatSource/src/Jammer/LaserJammer.cs
+++ b/ThreatSource/src/Jammer/LaserJammer.cs
@@ -10,15 +10,10 @@ namespace ThreatSource.Jammer
///
public class LaserJammer : BaseJammer
{
- ///
- /// 干扰器类型
- ///
- protected override JammerType Type => JammerType.Laser;
-
///
/// 支持的干扰类型
///
- protected override JammingType[] SupportedJammingTypes => [JammingType.Laser];
+ protected override JammingType JammingType => JammingType.Laser;
///
/// 激光干扰器配置
@@ -45,12 +40,12 @@ namespace ThreatSource.Jammer
{
return new JammingParameters
{
- Type = JammingType.Laser,
- JammerId = Id,
+ Type = Jammer.JammingType.Laser,
+ JammerId = base.Id,
Power = config.Power,
Wavelength = config.Wavelength,
- Direction = Orientation.ToVector(),
- SourcePosition = Position,
+ Direction = base.Orientation.ToVector(),
+ SourcePosition = base.Position,
Mode = config.Mode,
Duration = config.Duration,
StartTime = DateTime.UtcNow
diff --git a/ThreatSource/src/Jammer/MillimeterWaveJammer.cs b/ThreatSource/src/Jammer/MillimeterWaveJammer.cs
index c191140..0c1ed7a 100644
--- a/ThreatSource/src/Jammer/MillimeterWaveJammer.cs
+++ b/ThreatSource/src/Jammer/MillimeterWaveJammer.cs
@@ -10,15 +10,10 @@ namespace ThreatSource.Jammer
///
public class MillimeterWaveJammer : BaseJammer
{
- ///
- /// 干扰器类型
- ///
- protected override JammerType Type => JammerType.MillimeterWave;
-
///
/// 支持的干扰类型
///
- protected override JammingType[] SupportedJammingTypes => [JammingType.MillimeterWave];
+ protected override JammingType JammingType => JammingType.MillimeterWave;
///
/// 毫米波干扰器配置
@@ -45,12 +40,12 @@ namespace ThreatSource.Jammer
{
return new JammingParameters
{
- Type = JammingType.MillimeterWave,
- JammerId = Id,
+ Type = Jammer.JammingType.MillimeterWave,
+ JammerId = base.Id,
Power = config.Power,
Wavelength = config.Wavelength,
- Direction = Orientation.ToVector(),
- SourcePosition = Position,
+ Direction = base.Orientation.ToVector(),
+ SourcePosition = base.Position,
Mode = config.Mode,
Duration = config.Duration,
StartTime = DateTime.UtcNow
diff --git a/ThreatSource/src/Jammer/SmokeGrenade.cs b/ThreatSource/src/Jammer/SmokeGrenade.cs
index 0ed6a64..5c9ad1b 100644
--- a/ThreatSource/src/Jammer/SmokeGrenade.cs
+++ b/ThreatSource/src/Jammer/SmokeGrenade.cs
@@ -17,15 +17,10 @@ namespace ThreatSource.Jammer
///
public readonly SmokeGrenadeConfig config;
- ///
- /// 获取干扰器类型
- ///
- protected override JammerType Type => JammerType.SmokeGrenade;
-
///
/// 支持的干扰类型
///
- protected override JammingType[] SupportedJammingTypes => [JammingType.SmokeScreen];
+ protected override JammingType JammingType => JammingType.SmokeGrenade;
///
/// 初始化烟幕弹实例
@@ -52,12 +47,12 @@ namespace ThreatSource.Jammer
{
return new JammingParameters
{
- Type = JammingType.SmokeScreen,
+ Type = Jammer.JammingType.SmokeGrenade,
Mode = config.Mode,
- JammerId = Id,
+ JammerId = base.Id,
Power = 0, // 烟幕不需要功率参数
- Direction = Orientation.ToVector(),
- SourcePosition = Position,
+ Direction = base.Orientation.ToVector(),
+ SourcePosition = base.Position,
AngleRange = 2 * Math.PI, // 烟幕为全方位效果
Duration = config.Duration,
StartTime = DateTime.UtcNow,
diff --git a/tools/ComprehensiveMissileSimulator.cs b/tools/ComprehensiveMissileSimulator.cs
index d16ce05..046425b 100644
--- a/tools/ComprehensiveMissileSimulator.cs
+++ b/tools/ComprehensiveMissileSimulator.cs
@@ -92,7 +92,7 @@ namespace ThreatSource.Tools.MissileSimulation
missileJammingMap["LBRM_1"] = new List<(JammingType, string, string, string, string)>
{
(JammingType.Laser, "激光干扰", "LaserJammer_Designator", "阻塞", "指示器"),
- (JammingType.SmokeScreen, "烟幕弹", "SG_1", "遮蔽", "两者")
+ (JammingType.SmokeGrenade, "烟幕弹", "SG_1", "遮蔽", "两者")
};
// 激光半主动制导导弹
@@ -100,29 +100,29 @@ namespace ThreatSource.Tools.MissileSimulation
{
(JammingType.Laser, "激光干扰(指示器)", "LaserJammer_Designator", "阻塞", "指示器"),
(JammingType.Laser, "激光干扰(导弹)", "LaserJammer_Missile", "阻塞", "导弹"),
- (JammingType.Decoy, "激光诱偏目标", "LDY_1", "欺骗", "导弹"),
- (JammingType.SmokeScreen, "烟幕弹", "SG_1", "遮蔽", "两者")
+ (JammingType.LaserDecoy, "激光诱偏目标", "LDY_1", "欺骗", "导弹"),
+ (JammingType.SmokeGrenade, "烟幕弹", "SG_1", "遮蔽", "两者")
};
// 红外指令制导导弹
missileJammingMap["ICGM_1"] = new List<(JammingType, string, string, string, string)>
{
(JammingType.Infrared, "红外干扰", "InfraredJammer_Designator", "阻塞", "指示器"),
- (JammingType.SmokeScreen, "烟幕弹", "SG_2", "遮蔽", "指示器")
+ (JammingType.SmokeGrenade, "烟幕弹", "SG_2", "遮蔽", "指示器")
};
// 红外成像末制导导弹
missileJammingMap["ITGM_1"] = new List<(JammingType, string, string, string, string)>
{
(JammingType.Infrared, "红外干扰", "InfraredJammer_Missile", "阻塞", "导弹"),
- (JammingType.SmokeScreen, "红外烟幕弹", "SG_2", "遮蔽", "导弹")
+ (JammingType.SmokeGrenade, "红外烟幕弹", "SG_2", "遮蔽", "导弹")
};
// 毫米波末制导导弹
missileJammingMap["MMWG_1"] = new List<(JammingType, string, string, string, string)>
{
(JammingType.MillimeterWave, "毫米波干扰", "MillimeterWaveJammer_Missile", "阻塞", "导弹"),
- (JammingType.SmokeScreen, "烟幕弹", "SG_1", "遮蔽", "导弹")
+ (JammingType.SmokeGrenade, "烟幕弹", "SG_1", "遮蔽", "导弹")
};
// 末敏子弹药
@@ -132,7 +132,7 @@ namespace ThreatSource.Tools.MissileSimulation
(JammingType.Infrared, "红外干扰", "InfraredJammer_Missile", "阻塞", "子弹药"),
(JammingType.MillimeterWave, "毫米波干扰", "MillimeterWaveJammer_Submunition", "阻塞", "子弹药"),
(JammingType.MillimeterWave, "毫米波假信号", "MillimeterWaveJammer_Submunition", "欺骗", "子弹药"),
- (JammingType.SmokeScreen, "烟幕弹", "SG_3", "遮蔽", "子弹药")
+ (JammingType.SmokeGrenade, "烟幕弹", "SG_3", "遮蔽", "子弹药")
};
}
@@ -749,7 +749,7 @@ namespace ThreatSource.Tools.MissileSimulation
case JammingType.MillimeterWave:
jammerId = "MillimeterWaveJammer_Missile"; // 假设这个也可以用于指示器
break;
- case JammingType.SmokeScreen:
+ case JammingType.SmokeGrenade:
if (indicator.Id.Contains("LD"))
jammerId = "SG_1"; // 激光烟幕
else if (indicator.Id.Contains("IR"))
@@ -757,7 +757,7 @@ namespace ThreatSource.Tools.MissileSimulation
else
jammerId = "SG_3"; // 默认烟幕
break;
- case JammingType.Decoy:
+ case JammingType.LaserDecoy:
jammerId = "LDY_1";
break;
}
@@ -832,7 +832,7 @@ namespace ThreatSource.Tools.MissileSimulation
else
jammerId = "MillimeterWaveJammer_Missile";
break;
- case JammingType.SmokeScreen:
+ case JammingType.SmokeGrenade:
if (missile.Id.Contains("ITGM") || missile.Id.Contains("ICGM"))
jammerId = "SG_2"; // 红外烟幕用于红外导弹
else if (missile.Id.Contains("TSM"))
@@ -840,7 +840,7 @@ namespace ThreatSource.Tools.MissileSimulation
else
jammerId = "SG_1"; // 默认烟幕
break;
- case JammingType.Decoy:
+ case JammingType.LaserDecoy:
jammerId = "LDY_1";
break;
}
@@ -917,7 +917,7 @@ namespace ThreatSource.Tools.MissileSimulation
{
switch (type)
{
- case JammingType.SmokeScreen:
+ case JammingType.SmokeGrenade:
if (category == "水平烟幕弹")
{
jammers["SG_1"].Activate();
@@ -931,7 +931,7 @@ namespace ThreatSource.Tools.MissileSimulation
jammers["SG_3"].Activate();
}
break;
- case JammingType.Decoy:
+ case JammingType.LaserDecoy:
jammers["LDY_1"].Activate();
break;
}