public void SetOccupyingPlayer(Player p)
    {
        state                = (TileSpaceState)p.playerNum;
        occupyingPlayer      = p;
        occupyingIcon.color  = p.playerColor[0];
        occupyingIcon.sprite = occupyingPlayer.PlayerIcon;
        occupyingIcon.transform.localScale = Vector3.zero;
        Task addIcon = new PiecePlacementAnimation(occupyingIcon);

        _tm.Do(addIcon);
    }
    public void Init(int xCoord, int yCoord, int tn)
    {
        coord    = new Vector2(xCoord, yCoord);
        tileNum  = tn;
        renderer = GetComponent <SpriteRenderer>();

        _touchID = -1;

        state = TileSpaceState.EMPTY;


        Services.EventManager.Register <GameEndEvent>(OnGameEnd);
    }