/// <summary>
    /// From Event
    /// </summary>
    /// <param name="newGridPosition"></param>
    public void OnMouseGridPositionChanged(Vector2Int newGridPosition)
    {
        if (placedTowersCount >= maxTowers || TowerStore.IsTowerOnGridPosition(newGridPosition) || !HasResourcesForSelectedTower())
        {
            return;
        }

        currentMouseGridPosition = newGridPosition;

        var validPath = !startPoints.Contains(newGridPosition) && IsPathValidIfWaypointIsOccupied();
        // print($"This waypoint is valid to place the tower: {validPath} | mouseGridPosition: {currentMouseGridPosition}");
        var activeVFX = validPath ? validGridPositionVFX : invalidGridPositionVFX;

        activeVFX.transform.position = newGridPosition.GridPositionToVector3();
        activeVFX.Play();

        if (validPath && towerShop.SelectedItem)
        {
            SpawnPreviewTower();
        }
        else if (previewTower)
        {
            DestroyPreviewTower();
        }
    }
Ejemplo n.º 2
0
    private void InitializeGrid()
    {
        grid.Clear();

        var waypoints = FindObjectsOfType <Waypoint>().Where(waypoint => !TowerStore.IsTowerOnGridPosition(waypoint.GridPosition)).ToList();

        foreach (var waypoint in waypoints)
        {
            var position = waypoint.GridPosition;

            if (grid.ContainsKey(position))
            {
                Debug.LogWarning($"Overlapping waypoint at position: {waypoint}");
                continue;
            }

            grid.Add(position, waypoint);
        }
    }
Ejemplo n.º 3
0
 public bool HasTowerMounted()
 {
     return(TowerStore.IsTowerOnGridPosition(GridPosition));
 }