//-------------------------------------- // Event Handlers //-------------------------------------- /// <summary> /// _s the on tween to new position entry completed. /// </summary> /// <param name="gemView">Gem view.</param> private void _OnGemTweenToNewPositionEntryCompleted (GemViewComponent gemView) { gemView.OnTweenToNewPositionEntryCompleted -= _OnGemTweenToNewPositionEntryCompleted; // ARE 100% IN PROPER TARGET POSITION? if (_gemViews.Where (nextGemView => nextGemView.IsAtTargetPosition()).Count() == _gemViews.Count) { CoroutineManager.Instance.WaitForSecondsToCall (_controller.CheckForMatches, TripleMatchConstants.DURATION_DELAY_BEFORE_CHECK_FOR_MATCHES); } }
/// <summary> /// _s the on gem clicked. /// </summary> /// <param name="gemView">Gem view.</param> private void _OnGemViewClicked (GemViewComponent gemView) { // if (_model.GameState == GameState.PLAYING && _model.IsInputEnabled) { if (_model.SelectedGemVO == null) { // 1. SELECT FIRST GEM IN A PAIR _controller.SelectedGemVO = gemView.GemVO; } else if (_model.SelectedGemVO == gemView.GemVO) { // 2. DESELECT FIRST GEM IN A PAIR _controller.SelectedGemVO = null; } else if (Model.AreGemVOsSwappable (_model.SelectedGemVO, gemView.GemVO)) { // 3. SWAP FIRST & SECOND GEM IN A PAIR _AttemptSwapTwoGemVOs (_model.SelectedGemVO, gemView.GemVO); _controller.SelectedGemVO = null; } else { // 4. DESELECTED ALL _controller.SelectedGemVO = null; } } else { if (AudioManager.IsInstantiated()) { AudioManager.Instance.PlayAudioResourcePath (TripleMatchConstants.PATH_GEM_CLICK_FAIL_AUDIO, TripleMatchConstants.VOLUME_SCALE_SFX_2); } } }
/// <summary> /// _s the do destroy and remove gem view. /// </summary> /// <param name="gemView">Gem view.</param> private void _DoDestroyAndRemoveGemView (GemViewComponent gemView) { gemView.OnClicked -= _OnGemViewClicked; gemView.OnTweenToNewPositionEntryCompleted -= _OnGemTweenToNewPositionEntryCompleted; gemView.Destroy(); _gemViews.Remove (gemView); }