/// <summary>
 ///    Если корабль в состоянии гиперпрыжка, то подписан на WorldCtl.TurnStarted.
 ///    Если текущая дата совпадает с датой прибытия, перемещает корабль в целевую систему.
 /// </summary>
 /// <remarks>
 ///    Продолжение банкета - HyperjumpFlightTask.OnTargetStarSystemReached.
 /// </remarks>
 private void OnTurnStarted(WorldCtl sender)
 {
     if (WorldContext.WorldCtl.Date < CurrentHyperjumpInfo.ArrivalDate)
     {
         return;                                                                            //Если еще рано, ждем дальше
     }
     Spacecraft.Location  = CurrentHyperjumpInfo.TargetSystem;
     CurrentHyperjumpInfo = null;
 }
Exemple #2
0
 protected override void OnTurnStopped(WorldCtl sender)
 {
     if (_trajectoryPoints.Count <= SavedPointsPerTurnCount)
     {
         InvokeComplete();
     }
     else
     {
         CalculateTrajectory();
         InvokeUpdated();
     }
 }
Exemple #3
0
 protected override void OnTurnStopped(WorldCtl sender)
 {
     if (Location == WorldContext.StarSystems.Void)
     {
         _position = Geometry.NaN2;
         _rotation = Single.NaN;
         _velocity = Geometry.NaN2;
     }
     else
     {
         _position = CurrentFlightTask.Position;
         _rotation = CurrentFlightTask.Rotation;
         _velocity = CurrentFlightTask.Velocity;
     }
 }
 protected override void OnTurnStopped(WorldCtl sender)
 {
     InvokeComplete();
 }
Exemple #5
0
 protected override void OnTurnStarted(WorldCtl sender)
 {
     Assert.IsNotNull(CurrentFlightTask);
     Assert.IsTrue(CurrentFlightTask.State == FlightTaskState.Active);
 }
Exemple #6
0
 /// <summary>
 ///    Action that is taken at the end of the turn.
 /// </summary>
 protected virtual void OnTurnStopped(WorldCtl sender)
 {
 }
Exemple #7
0
 private void OnTurnStarted(WorldCtl sender)
 {
     CleanTrajectory();
 }