/** * 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()); } }
/** * Generate a new universe */ public void generate() { generatePlanets(game.getGame()); generateWormholes(game.getGame()); game.getGame().setYear(Consts.startingYear); foreach (Player player in game.getGame().getPlayers()) { if (player.getRace().raceType == Race.RaceType.humanoid) { player.getRace().setHumanoid(); } Message.info(player, "Welcome to the universe, go forth and conquer!"); foreach (Planet planet in game.getGame().getPlanets()) { if (planet.getOwner() == null) { planet.makeHomeworld(player, game.getGame().getYear()); player.setHomeworld(planet); planet.addQueueItem(QueueItemType.AutoMine, 5); planet.addQueueItem(QueueItemType.AutoFactory, 5); player.getPlanetKnowledges().Add(new PlanetKnowledge(planet)); Message.homePlanet(player, planet); break; } } player.getTechs().init(player, techStore); foreach (TechHull hull in player.getTechs().getHulls()) { ShipDesign design = shipDesigner.designShip(hull, player); design.computeAggregate(player); player.getDesigns().Add(design); } ShipDesign starbase = shipDesigner.designShip(techStore.getHull("Space Station"), player); starbase.computeAggregate(player); player.getDesigns().Add(starbase); foreach (ShipDesign design in player.getDesigns()) { Fleet fleet = fleetController.makeFleet(design.getHullName(), player.getHomeworld().getX(), player.getHomeworld().getY(), player); fleet.addShipStack(design, 1); fleet.addWaypoint(player.getHomeworld().getX(), player.getHomeworld().getY(), 5, WaypointTask.None, player.getHomeworld()); fleet.computeAggregate(); GameObject go = GameObject.Instantiate(baseFleet, player.getHomeworld().PlanetGameObject.transform, false); go.transform.position = Vector3.zero; go.GetComponent <FleetGameObject>().setFleet(fleet); go.name = fleet.getName(); go.SetActive(true); if (design.getHull().isStarbase()) { player.getHomeworld().setStarbase(fleet); fleet.setOrbiting(player.getHomeworld()); } else { fleet.setFuel(fleet.getAggregate().getFuelCapacity()); fleet.setOrbiting(player.getHomeworld()); } game.getGame().addFleet(fleet); player.getFleetKnowledges().Add(new FleetKnowledge(fleet)); player.setNumFleetsBuilt(player.getNumFleetsBuilt() + 1); } } }