public void ClickedMemoButton(MemoButton memoButton)
 {
     if (_memoButtonsClickingAllowed)
     {
         StartCoroutine(ClickedMemoButtonCoroutine(memoButton));
     }
 }
        private IEnumerator ResetMemoButtons()
        {
            _lastClickedMemoButton      = null;
            _memoButtonsClickingAllowed = true;

            var memoButtons = GameObject.FindGameObjectsWithTag("MemoButton");

            yield return(null);

            foreach (var memoButton in memoButtons)
            {
                Destroy(memoButton);
                yield return(null);
            }

            MemoButtonsPanel.GetComponent <MemoButtons>().ShowMemoButtons();
        }
        private IEnumerator ClickedMemoButtonCoroutine(MemoButton memoButton)
        {
            if (!memoButton.ShowingBack)
            {
                yield break;
            }
            memoButton.ShowFront();

            if (_lastClickedMemoButton == null)
            {
                _lastClickedMemoButton = memoButton;
                yield break;
            }

            _memoButtonsClickingAllowed = false;
            yield return(new WaitForSeconds(1));

            if (MemoButton.MemoMatch(memoButton, _lastClickedMemoButton))
            {
                ChangeScore(MatchReward);

                Destroy(_lastClickedMemoButton.gameObject);
                Destroy(memoButton.gameObject);

                _lastClickedMemoButton      = null;
                _memoButtonsClickingAllowed = true;
            }
            else
            {
                ChangeScore(MissPenalty);
                if (_lastClickedMemoButton != null)
                {
                    _lastClickedMemoButton.ShowBack();
                }
                memoButton.ShowBack();
                _lastClickedMemoButton = null;

                _memoButtonsClickingAllowed = true;
            }
        }
 public static bool MemoMatch(MemoButton lhs, MemoButton rhs)
 {
     return(lhs != null && rhs != null &&
            lhs._frontImage == rhs._frontImage &&
            lhs._backImage != rhs._backImage);
 }