//Returns the found cell item from processing players move
    CellItem ProcessPlayerMove(CellItem cellItem, int Index)
    {
        int column       = cellItem.CellColumn;
        int columnheight = m_GameGridComponent.GetColLength();

        for (int i = 0; i < columnheight; i++)
        {
            CellItem FoundCell       = m_GameGridComponent.GetGridCell(column, i);
            Gem      selectedItemGem = FoundCell.m_CurrentObject.GetComponent <Gem>();

            if (!selectedItemGem.IsGemOwned())
            {
                Color teamColor = m_PlayerManager.GetActivePlayersTurn().PlayerColor;
                int   teamInt   = m_PlayerManager.GetActivePlayersTurn().PlayerId;
                selectedItemGem.SetPlayerColour(teamColor);
                selectedItemGem.SetPlayerOwner(teamInt);
                return(FoundCell);
            }
        }

        //failed to do move
        return(null);
    }