Ejemplo n.º 1
0
    private void OnTileOver(Vector3Int position, TileBase tile)
    {
        uiFeedbackController.Clear();
        if (!ToolIsValid())
        {
            return;
        }

        PuzzlePiece toolPiece = puzzlePieceMap[tool.tile.name];

        PuzzlePiece targetPiece;

        if (puzzlePieceMap.TryGetValue(tile.name, out targetPiece))
        {
            if (toolPiece == targetPiece)
            {
                return;
            }
            if (toolPiece.IsPlantableOn(targetPiece))
            {
                if (CheckNeighbors(position, toolPiece))
                {
                    uiFeedbackController.ShowPlantable(position);
                    return;
                }
            }
            uiFeedbackController.ShowUnplantable(position);
        }
    }
Ejemplo n.º 2
0
    private void OnTileClicked(Vector3Int position, TileBase tile)
    {
        if (!ToolIsValid())
        {
            return;
        }

        PuzzlePiece toolPiece = puzzlePieceMap[tool.tile.name];

        PuzzlePiece targetPiece;

        if (puzzlePieceMap.TryGetValue(tile.name, out targetPiece))
        {
            if (toolPiece.IsPlantableOn(targetPiece))
            {
                if (CheckNeighbors(position, toolPiece))
                {
                    GameManager.Instance.PlaySoundClip("dirt_pick_01", "dirt_pick_02", "dirt_pick_04", "dirt_pick_05");
                    PaintTile(position);
                    PropogateEffects(position, toolPiece);
                    return;
                }
            }
            Debug.Log("Can't plant there");
            GameManager.Instance.PlaySoundClip("err_misclick");
        }
        else
        {
            Debug.Log("No target piece");
            GameManager.Instance.PlaySoundClip("err_misclick");
        }
    }