/** * Build a fleet and add it to the planet */ private void buildFleet(Planet planet, ProductionQueueItem item, int numBuilt) { planet.getOwner().setNumFleetsBuilt(planet.getOwner().getNumFleetsBuilt() + 1); string name = (item.getFleetName() != null ? item.getFleetName() : string.Format("Fleet #" + planet.getOwner().getNumFleetsBuilt())); bool foundFleet = false; if (item.getFleetName() != null && planet.getOrbitingFleets().Count > 0) { foreach (Fleet fleet in planet.getOrbitingFleets()) { if (fleet.getName().Equals(item.getFleetName())) { fleetController.addFleetToStack(fleet, new ShipStack(item.getShipDesign(), numBuilt)); foundFleet = true; break; } } } if (!foundFleet) { Fleet fleet = fleetController.makeFleet( name, planet.getX(), planet.getY(), planet.getOwner()); fleet.getShipStacks().Add(new ShipStack(item.getShipDesign(), item.getQuantity())); fleet.computeAggregate(); GameObject go = GameObject.Instantiate(baseFleet, planet.PlanetGameObject.transform, false); go.transform.position = Vector3.zero; go.GetComponent <FleetGameObject>().setFleet(fleet); go.name = fleet.getName(); go.SetActive(true); go.GetComponent <FleetGameObject>().getFleet().setFuel(fleet.getAggregate().getFuelCapacity()); go.GetComponent <FleetGameObject>().getFleet().setOrbiting(planet); go.GetComponent <FleetGameObject>().getFleet().addWaypoint(fleet.getX(), fleet.getY(), 5, WaypointTask.None, planet); game.getGame().addFleet(go.GetComponent <FleetGameObject>().getFleet()); } }