Esempio n. 1
0
/**
 * 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());
        }
    }
Esempio n. 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);
            }
        }
    }