/** * Build or upgrade the starbase on the planet */ private void buildStarbase(Planet planet, ProductionQueueItem item) { if (planet.getStarbase() != null) { planet.getStarbase().getShipStacks().Clear(); planet.getStarbase().getShipStacks().Add(new ShipStack(item.getShipDesign(), 1)); planet.getStarbase().setDamage(0); planet.getStarbase().computeAggregate(); } else { Fleet fleet = fleetController.makeFleet(planet.getName() + "-starbase", planet.getX(), planet.getY(), planet.getOwner()); fleet.getShipStacks().Add(new ShipStack(item.getShipDesign(), 1)); fleet.computeAggregate(); fleet.addWaypoint(planet.getX(), planet.getY(), 5, WaypointTask.None, planet); planet.setStarbase(fleet); game.getGame().addFleet(fleet); } }
/** * 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()); } }
string GetProductionItemName(ProductionQueueItem pqi) { if (pqi.getType() != QueueItemType.Fleet) { return(pqi.getType().ToString()); } else { return(pqi.getShipDesign().getHullName()); } }