/// <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; }
protected override void OnTurnStopped(WorldCtl sender) { if (_trajectoryPoints.Count <= SavedPointsPerTurnCount) { InvokeComplete(); } else { CalculateTrajectory(); InvokeUpdated(); } }
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(); }
protected override void OnTurnStarted(WorldCtl sender) { Assert.IsNotNull(CurrentFlightTask); Assert.IsTrue(CurrentFlightTask.State == FlightTaskState.Active); }
/// <summary> /// Action that is taken at the end of the turn. /// </summary> protected virtual void OnTurnStopped(WorldCtl sender) { }
private void OnTurnStarted(WorldCtl sender) { CleanTrajectory(); }