public MultiplayerGameManager()
 {
     LeadingState = new MultiplayerMapState(this);
     TrailingState0 = new MultiplayerMapState(this, -15);
     TrailingState1 = new MultiplayerMapState(this, -30);
     TrailingState2 = new MultiplayerMapState(this, -45);
     TrailingState3 = new MultiplayerMapState(this, -60);
     TrailingState4 = new MultiplayerMapState(this, -120);
 }
 void Rollback(MultiplayerMapState Source, MultiplayerMapState Destination)
 {
     Destination.Actions.Clear();
     Destination.Planets.Clear();
     Destination.Fleets.Clear();
     foreach (Planet planet in Source.Planets)
     {
         Destination.Planets.Add(new Planet(planet));
     }
     foreach (Fleet fleet in Source.Fleets)
     {
         Destination.Fleets.Add(new Fleet(fleet));
     }
     Destination.Actions.AddRange((from ga in Source.Actions select ga.CreateCopy()));
     Destination.Update(Destination.StateFrame - Source.StateFrame);
 }