void OnMouseDown() { if (render.sprite == null || BoardController.instance.IsShifting) { return; } if (isSelected) { Deselect(); } else { if (previousSelected == null) { Select(); } else { //swap sprites only if rhem adjoined if (GetAllAdjoinedTiles().Contains(previousSelected.gameObject)) { cleared = false; SwapSprite(previousSelected.render); previousSelectedTemp = previousSelected; previousSelected.Deselect(); ClearAllMatches(); //find all matches on board StopCoroutine(BoardController.instance.FindMatchesOnBoard()); StartCoroutine(BoardController.instance.FindMatchesOnBoard()); //cancel swap if matching isn't found if (!cleared) { SwapSprite(previousSelectedTemp.GetComponent <SpriteRenderer>()); previousSelectedTemp = null; cleared = false; } } else { previousSelected.GetComponent <ElementController>().Deselect(); Select(); } } } }