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; } }
/// <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; } }