private void ItemClick(FieldItem obj) { if (obj is IMoveable) { if (lastPicked == null) { lastPicked = obj; lastPicked.Pick(); } else { int rowDelta = Mathf.Abs(lastPicked.Row - obj.Row); int coloumnDelta = Mathf.Abs(lastPicked.Coloumn - obj.Coloumn); lastPicked.Depick(); if ((rowDelta == 1 && coloumnDelta == 0) || (rowDelta == 0 && coloumnDelta == 1)) { base.Swap(lastPicked.Coloumn, lastPicked.Row, obj.Coloumn, obj.Row); lastPicked = null; } else { lastPicked = obj; lastPicked.Pick(); } } } }