Esempio n. 1
0
    /// <summary>
    /// Ayuda visual para movimiento del jugador
    /// </summary>
    public void movement()
    {
        Vector3Int currentPosition = tilemap.WorldToCell(currentChar.transform.position);

        move = currentChar.getMoveArea(currentPosition);
        BoundsInt.PositionEnumerator tiles = move.allPositionsWithin;
        tiles = tiles.GetEnumerator();
        while (tiles.MoveNext())
        {
            if (availableTile(tiles.Current) && (tiles.Current.x - currentPosition.x == 0 || tiles.Current.y - currentPosition.y == 0))
            {
                tilemap.RemoveTileFlags(tiles.Current, TileFlags.LockColor);
                tilemap.SetColor(tiles.Current, new Color(0, 0, 1, 0.8f));
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Ayuda visual para el ataque
    /// </summary>
    public void attack()
    {
        Vector3Int currentPosition = tilemap.WorldToCell(currentChar.transform.position);

        attackArea = currentChar.getMoveArea(currentPosition);
        BoundsInt.PositionEnumerator tiles = attackArea.allPositionsWithin;
        tiles = tiles.GetEnumerator();
        while (tiles.MoveNext())
        {
            if (!currentPosition.Equals(tiles.Current))
            {
                tilemap.RemoveTileFlags(tiles.Current, TileFlags.LockColor);
                tilemap.SetColor(tiles.Current, new Color(1, 0, 0, 0.8f));
            }
        }
    }
Esempio n. 3
0
    /// <summary>
    /// Metodo para eliminar toda ayuda visual
    /// </summary>
    public void clearVisualHelp()
    {
        BoundsInt.PositionEnumerator tiles = new BoundsInt.PositionEnumerator();
        switch (currentChar.getState())
        {
        case StateManager.move:
            tiles = move.allPositionsWithin;
            break;

        case StateManager.attack:
            tiles = attackArea.allPositionsWithin;
            break;
        }
        tiles = tiles.GetEnumerator();

        while (tiles.MoveNext())
        {
            tilemap.SetColor(tiles.Current, defaultTileColor);
        }
    }
Esempio n. 4
0
    /// <summary>
    /// Metodo para colocar los triggers de sala en las entradas de una sala
    /// </summary>
    /// <param name="tile"></param>
    /// <param name="tilemap"></param>
    public void setTriggers(GameObject tile, ref Tilemap tilemap)
    {
        GameObject clon = tile;

        for (int i = 0; i < sides.Length; ++i)
        {
            //si el lado tiene camino se comprueba donde colocar el trigger
            if (sides[i])
            {
                BoundsInt wall = getTriggerPosition(i);
                BoundsInt.PositionEnumerator iterator = wall.allPositionsWithin;
                iterator = iterator.GetEnumerator();
                while (iterator.MoveNext())
                {
                    if (tilemap.GetTile(iterator.Current) != null && tilemap.GetTile(iterator.Current).name.Contains("Floor"))
                    {
                        clon.transform.position = tilemap.GetCellCenterWorld(iterator.Current);
                        GameObject.Instantiate(clon);
                    }
                }
            }
        }
    }