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

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;
LastGuidanceAcceleration = GuidanceAcceleration;
Console.WriteLine($"Current Position: {Position}");
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()}");
//Console.WriteLine($"Shortest Distance Vector: {shortestDistanceVector}");
}
/// <summary>
@ -232,7 +227,7 @@ namespace ActiveProtect.Models
/// <returns>制导系统状态</returns>
public override string GetStatus()
{
return $"LaserBeamRiderGuidanceSystem: HasGuidance={HasGuidance}, LaserSourcePosition={LaserSourcePosition}, LaserDirection={LaserDirection}, GuidanceAcceleration={GuidanceAcceleration}";
return base.GetStatus();
}
/// <summary>

View File

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

View File

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