Beispiel #1
0
    /// <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();
    }
Beispiel #2
0
    /// <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();
    }
Beispiel #3
0
    /// <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");
        }
    }
Beispiel #4
0
    /// <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();
    }
Beispiel #5
0
    /// <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);
    }
Beispiel #6
0
    /// <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);
            }
        }
    }
Beispiel #7
0
 /// <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);
 }