修改两个导弹的状态获取方法,将导弹状态和导弹引导系统状态分开获取

This commit is contained in:
Tian jianyong 2024-10-24 12:07:23 +08:00
parent 6fca00b28c
commit 22660eb7a1
3 changed files with 34 additions and 18 deletions

View File

@ -218,12 +218,7 @@ namespace ActiveProtect.Models
LastError = error; LastError = error;
LastGuidanceAcceleration = GuidanceAcceleration; LastGuidanceAcceleration = GuidanceAcceleration;
Console.WriteLine($"Current Position: {Position}"); //Console.WriteLine($"Shortest Distance Vector: {shortestDistanceVector}");
Console.WriteLine($"Laser Source Position: {LaserSourcePosition}");
Console.WriteLine($"Laser Direction: {LaserDirection}");
Console.WriteLine($"Shortest Distance Vector: {shortestDistanceVector}");
//Console.WriteLine($"Guidance Command: {GuidanceCommand.Magnitude()}, Lateral Error: {shortestDistanceVector.Magnitude()}, Lateral Acceleration: {lateralAcceleration.Magnitude()}, Forward Acceleration: {forwardAcceleration.Magnitude()}");
} }
/// <summary> /// <summary>
@ -232,7 +227,7 @@ namespace ActiveProtect.Models
/// <returns>制导系统状态</returns> /// <returns>制导系统状态</returns>
public override string GetStatus() public override string GetStatus()
{ {
return $"LaserBeamRiderGuidanceSystem: HasGuidance={HasGuidance}, LaserSourcePosition={LaserSourcePosition}, LaserDirection={LaserDirection}, GuidanceAcceleration={GuidanceAcceleration}"; return base.GetStatus();
} }
/// <summary> /// <summary>

View File

@ -158,7 +158,7 @@ namespace ActiveProtect.Models
public override string GetStatus() public override string GetStatus()
{ {
string baseStatus = base.GetStatus().Replace("导弹", "激光驾束制导导弹"); string baseStatus = base.GetStatus().Replace("导弹", "激光驾束制导导弹");
string additionalStatus = $"\n 激光引导: {(LaserBeamRiderGuidanceSystem.HasGuidance ? "" : "")}"; string additionalStatus = LaserBeamRiderGuidanceSystem.HasGuidance ? LaserBeamRiderGuidanceSystem.GetStatus() : "";
return baseStatus + additionalStatus; return baseStatus + additionalStatus;
} }

View File

@ -71,16 +71,6 @@ namespace ActiveProtect.Models
LaserGuidanceSystem.DeactivateLaserDesignator(); LaserGuidanceSystem.DeactivateLaserDesignator();
} }
/// <summary>
/// 获取导弹状态信息
/// </summary>
/// <returns>状态信息字符串</returns>
public override string GetStatus()
{
string baseStatus = base.GetStatus().Replace("导弹", "激光半主动制导导弹");
string additionalStatus = $"\n 激光引导: {(LaserGuidanceSystem.HasGuidance ? "" : "")}";
return baseStatus + additionalStatus;
}
/// <summary> /// <summary>
/// 激活导弹 /// 激活导弹
@ -104,6 +94,10 @@ namespace ActiveProtect.Models
SimulationManager.UnsubscribeFromEvent<LaserIlluminationStopEvent>(OnLaserIlluminationStop); SimulationManager.UnsubscribeFromEvent<LaserIlluminationStopEvent>(OnLaserIlluminationStop);
} }
/// <summary>
/// 更新导弹状态
/// </summary>
/// <param name="deltaTime">时间步长</param>
public override void Update(double deltaTime) public override void Update(double deltaTime)
{ {
switch (currentStage) switch (currentStage)
@ -124,6 +118,10 @@ namespace ActiveProtect.Models
base.Update(deltaTime); base.Update(deltaTime);
} }
/// <summary>
/// 更新发射阶段
/// </summary>
/// <param name="deltaTime">时间步长</param>
private void UpdateLaunchStage(double deltaTime) private void UpdateLaunchStage(double deltaTime)
{ {
// 发射阶段 // 发射阶段
@ -134,6 +132,10 @@ namespace ActiveProtect.Models
} }
} }
/// <summary>
/// 更新巡航阶段
/// </summary>
/// <param name="deltaTime">时间步长</param>
private void UpdateCruiseStage(double deltaTime) private void UpdateCruiseStage(double deltaTime)
{ {
LaserGuidanceSystem.Update(deltaTime, Position, Velocity); LaserGuidanceSystem.Update(deltaTime, Position, Velocity);
@ -149,15 +151,34 @@ namespace ActiveProtect.Models
} }
} }
/// <summary>
/// 更新爆炸阶段
/// </summary>
/// <param name="deltaTime">时间步长</param>
private void UpdateExplodeStage(double deltaTime) private void UpdateExplodeStage(double deltaTime)
{ {
base.Explode(); base.Explode();
} }
/// <summary>
/// 更新自毁阶段
/// </summary>
/// <param name="deltaTime">时间步长</param>
private void UpdateSelfDestructStage(double deltaTime) private void UpdateSelfDestructStage(double deltaTime)
{ {
SelfDestruct(); SelfDestruct();
} }
/// <summary>
/// 获取导弹状态信息
/// </summary>
/// <returns>状态信息字符串</returns>
public override string GetStatus()
{
string baseStatus = base.GetStatus().Replace("导弹", "激光半主动制导导弹");
string additionalStatus = LaserGuidanceSystem.HasGuidance ? LaserGuidanceSystem.GetStatus() : "";
return baseStatus + additionalStatus;
}
} }
} }