Beispiel #1
0
    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()));
    }
Beispiel #2
0
    /**
     * 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);
            }
        }
    }