public void initShipDesign(ShipDesign design) { TechHull hull = StaticTechStore.getInstance().getHull(design.getHullName()); design.setHull(hull); for (int slotIndex = 0; slotIndex < hull.getSlots().Count; slotIndex++) { ShipDesignSlot designSlot = design.getSlots()[slotIndex]; if (designSlot.getHullComponentName() == null) { break; } designSlot.setHullSlot(hull.getSlots()[slotIndex]); designSlot.setHullComponent(StaticTechStore.getInstance().getHullComponent(designSlot.getHullComponentName())); } design.getAggregate().setEngine( StaticTechStore.getInstance(). getEngine( design. getAggregate(). getEngineName())); }
/** * 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); } } }