public void SplitFleet(Empire empire)
{
Fleet fleet = new Fleet();
fleet.Empire = FleetToSplit.Empire;
fleet.GalaxyX = FleetToSplit.GalaxyX;
fleet.GalaxyY = FleetToSplit.GalaxyY;
fleet.AdjacentSystem = FleetToSplit.AdjacentSystem;
foreach (KeyValuePair<Ship, int> ship in FleetToSplit.Ships)
{
if (ship.Value > 0)
{
SelectedFleet.SubtractShips(ship.Key, ship.Value);
fleet.AddShips(ship.Key, ship.Value);
}
}
foreach (var transport in FleetToSplit.TransportShips)
{
if (transport.amount > 0)
{
SelectedFleet.SubtractTransport(transport.raceOnShip, transport.amount);
fleet.AddTransport(transport.raceOnShip, transport.amount);
}
}
SelectedFleet.ClearEmptyShips();
fleet.ClearEmptyShips();
fleet.TravelNodes = FleetToSplit.TravelNodes;
if (SelectedFleet.Ships.Count == 0 && SelectedFleet.TransportShips.Count == 0)
{
Fleets.Remove(SelectedFleet);
empire.FleetManager.RemoveFleet(SelectedFleet);
}
if (fleet.Ships.Count > 0 || fleet.TransportShips.Count > 0)
{
Fleets.Add(fleet);
empire.FleetManager.AddFleet(fleet);
}
SelectedFleet = fleet;
}