// Verifica se a jogada converteu ponto public void checkForPoint(CardScript card) { Debug.Log("Checking table for a point."); if (card.numberId == wildcardId) { // caso o curinga seja selecionado em teste, recebe-se aviso Debug.Log("You selected a forbidden card! Will lose point!"); } if (lastCardChoosed == null) { // nenhuma carta selecionada anteriormente // salva a carta para futura checagem lastCardChoosed = card; } else { // já há uma carta anteriomente selecionada // checa a validade da escolha if (lastCardChoosed.numberId == card.numberId) { // cartas compõem o par Debug.Log("Correct pair. Point!"); pairs += 1; // o par é registrado CardScript.resetValidFlippedCardCount(); // ZERA lista de cartas viradas válidas // gera efeito de match em ambas as cartas assinalando PAR completo lastCardChoosed.setTriggerMatch(); card.setTriggerMatch(); GameManager.Instance.Sound.playMatch(); lastCardChoosed = null; // desassocia última escolha } else { // cartas não formam o par Debug.Log("Incorrect pair. Lost one point!"); lives -= 1; // perde-se um ponto if (hud != null && hud.isActiveAndEnabled) { // se o HUD estiver presente hud.updateLives(lives); } GameManager.Instance.Sound.playWrong(); if (lives < 1) { // GAME OVER // jogador ficou sem vida StartCoroutine("GameEnd"); GameManager.Instance.Sound.playLose(); return; } // cartas são ocultadas novamente após intervalo lockClick(); StartCoroutine(HideCardsAndUnlockDelay(2f, card, lastCardChoosed)); } updateScore(); } }