public void OnPointerClick(PointerEventData eventData)
        {
            tile.UpdateClickHint();
            //Player cannot play while a cinematic is playing or if another of its units is moving
            if (tile == null || !levelController.PlayerCanPlay)
            {
                return;
            }

            var clickButton = ReadClick(eventData);

            EventSystem.current.SetSelectedGameObject(null);
            var selectedPlayerUnit = tile.GridController.SelectedUnit;

            if (tile.LinkedUnitCanBeSelectedByPlayer && tile.LinkedUnit != selectedPlayerUnit)
            {
                try
                {
                    if (clickButton == ClickButton.LeftClick || (clickButton == ClickButton.RightClick && selectedPlayerUnit?.WeaponType != WeaponType.HealingStaff))
                    {
                        SelectUnit(grid);
                        return;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
            if (selectedPlayerUnit != null)
            {
                if (!tile.IsPossibleAction)
                {
                    DeselectUnit(grid);
                }
                else if (tile == selectedPlayerUnit.CurrentTile)
                {
                    if (clickButton == ClickButton.RightClick)
                    {
                        selectedPlayerUnit.Rest();
                    }
                    DeselectUnit(grid);
                }
                else if (!playerClickManager.ActionIsSet || playerClickManager.TileToConfirm != tile)
                {
                    playerClickManager.SetAction(selectedPlayerUnit, tile, clickButton);
                }
                else if (playerClickManager.TileToConfirm == tile)
                {
                    if (playerClickManager.ExecuteAction() != ActionType.Nothing)
                    {
                        DeselectUnit(grid);
                    }
                    else
                    {
                        coroutineStarter.StartCoroutine(SelectAfterMove(grid, selectedPlayerUnit, tile));
                    }
                }
                else
                {
                    DeselectUnit(grid);
                }
            }
            tile.UpdateClickHint();
        }