Example #1
0
    private void NetworkAttackUnitOfFleet(int fleetID, int unitPosition, int strength)
    {
        var fleet = FleetList.Find(f => f.ID == fleetID);

        if (fleet == null)
        {
            return;
        }

        fleet.AttackUnit(unitPosition, strength);
    }
Example #2
0
    public void DestroyFleet(Fleet fleet)
    {
        var tileOfFleet = TileList.Find(t => t.Fleet == fleet);

        tileOfFleet.Fleet = null;

        Destroy(fleet.FleetParent.gameObject);

        TileManager.ResetHighlightedTile();

        FleetList.Remove(fleet);
    }
Example #3
0
    private void NetworkMoveFleet(int fleetID, Vector2 targetTilePosition)
    {
        var fleet = FleetList.Find(f => f.ID == fleetID);

        if (fleet == null)
        {
            return;
        }

        var currentTile = TileList.Find(t => t.Fleet == fleet);
        var targetTile  = TileList.Find(t => t.Position == targetTilePosition);

        targetTile.Fleet  = fleet;
        currentTile.Fleet = null;

        fleet.MoveFleet(targetTile.TileParent.position);
    }
Example #4
0
        /// <summary>
        /// Return the closest refuelling point.
        /// </summary>
        /// <param name="fleet">The fleet looking for fuel.</param>
        /// <returns>The closest fleet that can refuel (normally a star base).</returns>
        private Fleet ClosestFuel(Fleet customer)
        {
            if (customer == null)
            {
                return(null);
            }

            // initialise the list of fuel stations, if null.
            if (FuelStations == null)
            {
                FuelStations = new FleetList();
                foreach (Fleet pump in clientState.EmpireState.OwnedFleets.Values)
                {
                    if (pump.CanRefuel)
                    {
                        FuelStations.Add(pump);
                    }
                }
            }

            // if there are still no fuel stations, bug out
            if (FuelStations.Count == 0)
            {
                return(null);
            }

            Fleet  closestFuelSoFar   = null;
            double minRefulerDistance = double.MaxValue;

            foreach (Fleet pump in FuelStations.Values)
            {
                double distSquare = PointUtilities.DistanceSquare(pump.Position, customer.Position);
                if (distSquare < minRefulerDistance)
                {
                    minRefulerDistance = distSquare;
                    closestFuelSoFar   = pump;
                }
            }

            return(closestFuelSoFar);
        }
Example #5
0
    public void AddBufferedFleetsToWorld(BufferedFleet bufferedFleet)
    {
        var fleetTile = TileList.Find(t => t.Position == bufferedFleet.Position);

        if (fleetTile.Fleet != null)
        {
            return;
        }

        var fleetParent = new GameObject("Fleet of: " + bufferedFleet.Player).transform;

        fleetParent.position = fleetTile.TileParent.position;
        fleetParent.SetParent(GameObject.Find(Tags.Fleets).transform);

        #region Instantiate units
        var units = new Unit[6];

        for (int i = 0; i < units.Length; i++)
        {
            var unitParent = new GameObject("Unit: " + i).transform;

            fleetParent.rotation = Quaternion.Euler(Vector3.up * (i * -60 - 30));

            unitParent.position = fleetTile.TileParent.position + Vector3.forward * 0.6f;
            unitParent.SetParent(fleetParent);
        }

        fleetParent.rotation = Quaternion.identity;
        #endregion

        var newFleet = new Fleet(bufferedFleet.ID, bufferedFleet.Player, fleetParent, (FleetType)bufferedFleet.FleetType, units);

        FleetList.Add(newFleet);

        fleetTile.Fleet = newFleet;

        BufferedFleetList.Remove(bufferedFleet);
    }
Example #6
0
 /// <summary>
 /// Initializing constructor.
 /// </summary>
 /// <param name="newFleet">The Fleet to be managed.</param>
 /// <param name="newState">The AbstractAI.clientState.</param>
 public DefaultFleetAI(Fleet newFleet, ClientData newState, FleetList newFuelStations)
 {
     fleet        = newFleet;
     clientState  = newState;
     FuelStations = newFuelStations;
 }
Example #7
0
    private void NetworkRotateFleet(int fleetID, bool rotateRight)
    {
        var fleet = FleetList.Find(f => f.ID == fleetID);

        fleet.RotateFleet(rotateRight ? 1 : -1);
    }