public void OnLeftPressedOverCard(MouseState mouse) { Point shift = startTargetingPoint - mouse.Position; if ((shift.X * shift.X + shift.Y * shift.Y) > DRAG_HOLD_POW_2) { int gap = mouseTarget.GapCount(startTargetingPoint); if (gap != -1) { draggedPack = new VisibleCardPack(mouseTarget.pack.LastCards(gap), startTargetingPoint); draggedOriginalPoint = mouseTarget.GapLeftTopPoint(mouse.Position); mouseTarget.InvisibleCards = gap; } } }