Example #1
0
 void DoVerticalMove(ReplacementNeighbors neighborsPositions)
 {
     if (mapInfo.CanWeMoveTileFromTo(neighborsPositions.top, neighborsPositions.actualPosition))
     {
         tilemapManager.StartCoroutine(ChangeTilePositionWithLerp(neighborsPositions.actualPosition, neighborsPositions.top));
     }
 }
Example #2
0
 void DoObliqueMove(ReplacementNeighbors neighborsPositions)
 {
     if (!moveLeft && mapInfo.CanWeMakeObliqueMoveToLeft(neighborsPositions) && !mapInfo.IsItPossibleToMoveTileDown(neighborsPositions.topRight))
     {
         tilemapManager.StartCoroutine(ChangeTilePositionWithLerp(neighborsPositions.actualPosition, neighborsPositions.topRight));
     }
     else if (moveLeft && mapInfo.CanWeMakeObliqueMoveToRight(neighborsPositions) && !mapInfo.IsItPossibleToMoveTileDown(neighborsPositions.topLeft))
     {
         tilemapManager.StartCoroutine(ChangeTilePositionWithLerp(neighborsPositions.actualPosition, neighborsPositions.topLeft));
     }
 }
Example #3
0
    void MoveTilesToEmptyPlacesInMap(int x, int idOfHorizontalLayerOfMap)
    {
        ReplacementNeighbors neighborsPositions = new ReplacementNeighbors(actualPosition: new Vector3Int(x, idOfHorizontalLayerOfMap, 0));

        mapInfo.actualPositionOfEmptyTile = neighborsPositions.actualPosition;

        if (mapInfo.IsItPossibleToMoveTileDown(neighborsPositions.actualPosition))
        {
            DoVerticalMove(neighborsPositions);
        }
        else
        {
            DoObliqueMove(neighborsPositions);
        }
    }