Beispiel #1
0
    private void CheckFleetMovement()
    {
        var targetTile = MapManager.NearestTileToMousePosition;

        if (targetTile == null || CurrentSelectedTile == null)
        {
            return;
        }

        if (CurrentSelectedTile == targetTile)
        {
            // Rotate Fleet
            RotateFleet(CurrentSelectedTile.Fleet.ID, false);
            //RotateFleetToPosition(CurrentSelectedTile.Fleet.ID, CurrentSelectedTile.Fleet.RotationPosition - 1);
            return;
        }

        if (CurrentSelectedTile != null && targetTile.Fleet != null)
        {
            // Attack
            AttackEnemyFleet();
            return;
        }

        // Move fleet
        if (MoveableTileList.Exists(t => t == targetTile))
        {
            MoveFleet(CurrentSelectedTile.Fleet.ID, targetTile.Position);

            TileManager.SelectTile(targetTile);

            CheckShowMovementArea();
        }
    }
Beispiel #2
0
    public void ResetMovementArea()
    {
        MoveableTileList.Clear();

        foreach (var tileObject in MoveableTileObjectList)
        {
            Destroy(tileObject.gameObject);
        }

        MoveableTileObjectList.Clear();
    }