public void SelectPole(PoleControl newSelection)
    {
        if (selectedStone == null)
        {
            return;
        }
        float oldX = GetPolePositionX(selectedStone.CurrentPole);
        float newX = newSelection.GetPositionX();

        if (oldX == newX)
        {
            selectedStone = null;
            return;
        }

        StoneControl newSelectedStone = newSelection.GetTopStone();

        if (newSelectedStone != null && selectedStone.Size > newSelectedStone.Size)
        {
            return;
        }

        isUp = true;

        if (oldX < newX)
        {
            rightCount = (newX - oldX) / 6 <= 1? 1 : 2;
        }
        else
        {
            leftCount = (oldX - newX) / 6 <= 1? 1 : 2;
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Adds the stone.
    /// </summary>
    /// <returns><c>true</c>, if stone was added, <c>false</c> otherwise.</returns>
    /// <param name="stone">Stone.</param>
    public bool AddStone(StoneControl stone)
    {
        if (stones.Count >= NumberOfSlots)
        {
            return(false);
        }

        stones.Add(stone);
        return(true);
    }
    public void SelectStone(StoneControl newSelection)
    {
        if (selectedStone == null)
        {
            selectedStone = newSelection;
            return;
        }

        if (!selectedStone.IsUp)
        {
            selectedStone = newSelection;
        }
    }