修改两个导弹的状态获取方法,将导弹状态和导弹引导系统状态分开获取
This commit is contained in:
parent
6fca00b28c
commit
22660eb7a1
@ -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>
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user