예제 #1
0
/**
 * 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);
        }
    }
예제 #2
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());
        }
    }
예제 #3
0
 string GetProductionItemName(ProductionQueueItem pqi)
 {
     if (pqi.getType() != QueueItemType.Fleet)
     {
         return(pqi.getType().ToString());
     }
     else
     {
         return(pqi.getShipDesign().getHullName());
     }
 }