/// <summary> /// ///flipcard /// </summary> /// <param name="cardproperties"></param> public void CardClicked(CardPorperties cardproperties) { int x = Random.Range(0, AM.draw.Length); AM.PlayAudio(AM.draw[x]); cardproperties.flipcard(); }
/// <summary> /// ////call gameover when time is over or challenge is finished /// </summary> void GameOver() { GameStart = false; if (version >= 4 && version < 6) { GameTime = timer; timer2 = 0; } else if (version >= 6) { timer2 = 0; } UI.ShowRetryButton(); UI.ToggleGridLayout(true); NewClickedCard = null; OldClickedCard = null; for (int i = 0; i < CardList.Count; i++) { if (!CardList[i].IsCardFlipped()) { CardList[i].flipcard(); } } // StopAllCoroutines(); // we will show a button to restart our game, or a prompt of pressing any buttons we will animate animate //RestartGame(); }
/// <summary> /// OnclickCard subscribed to event; /// </summary> private void GameManager_OnClickCard(CardPorperties obj) { if (cardsready) { Cards ReceievedCard = obj.card; // CardClicked(obj); Debug.Log(ReceievedCard.name); if (version < 2) { if (!obj.IsCardFlipped()) { CardClicked(obj); if (OldClickedCard == null) { OldClickedCard = obj; } else { NewClickedCard = obj; StartCoroutine(CheckMatch()); } } else { Debug.Log("Card Is ALready Flipped"); } } else if (version >= 2) { if (OldClickedCard == null && !obj.IsCardFlipped()) { CardClicked(obj); OldClickedCard = obj; } else if (OldClickedCard == obj && obj.IsCardFlipped()) { OldClickedCard = null; CardClicked(obj); } else { CardClicked(obj); NewClickedCard = obj; StartCoroutine(CheckMatch()); } } } else { Debug.Log("Cards Are no ready"); } }
/// <summary> /// ///////shuffle dem, cards /// </summary> private void ShuffleCards() { // CardPorperties[] ArrayOfCards = CardList.ToArray(); AM.PlayAudio(AM.Shuffle); for (int i = 0; i < CardList.Count; i++) { CardPorperties temp = CardList[i]; int j = Random.Range(i, CardList.Count); CardList[i] = CardList[j]; CardList[j] = temp; } ShuffleInUi(); }
/// <summary> /// ////instantaniating the prefab and adding it to card list /// </summary> /// <param name="CardsIndex"></param> void InstantaniatingCardOnBoard(int CardsIndex) { // not working CardPorperties CardObject = Instantiate(CardPrefab, CardZone) as CardPorperties; CardObject.card = Cards[CardsIndex]; // CardObject.gameObject.SetActive(false); CardList.Add(CardObject); CardObject.OnClickCard += GameManager_OnClickCard; if (version >= 3) { CardObject.flipcard(); CardObject.gameObject.SetActive(false); } // yield return new WaitForSeconds(1f); }
/// <summary> /// //checkmatch /// </summary> /// <returns></returns> IEnumerator CheckMatch() { if (OldClickedCard.card == NewClickedCard.card) { AM.PlayAudio(AM.Match); yield return(new WaitForSeconds(.25f)); AM.PlayAudio(AM.Match); DestroyingCards(OldClickedCard); DestroyingCards(NewClickedCard); OldClickedCard = null; NewClickedCard = null; if (version >= 5) { AddOrRemoveTime(GiveOrRemoveTimeValue); } if (CheckEmptyCardList()) { UpdateGameRecord(PlayRecord); GameOver(); } } else { yield return(new WaitForSeconds(.25f)); OldClickedCard.flipcard(); NewClickedCard.flipcard(); OldClickedCard = null; NewClickedCard = null; if (version >= 5) { AddOrRemoveTime(-GiveOrRemoveTimeValue); } } }
/// <summary> /// /////destroying the cards after the cards have been matched /// </summary> /// <param name="card"></param> void DestroyingCards(CardPorperties card) { card.OnClickCard -= GameManager_OnClickCard; CardList.Remove(card); Destroy(card.gameObject); }