예제 #1
0
    //IEnumerator Start()
    //{
    //    string downloadUrl = "https://laeringsliv.azurewebsites.net/CardDeckCollections/DownloadCardDeckCollection?id=1"; // TODO: Using ID 2 for Pro version
    //    UnityWebRequest www = UnityWebRequest.Get(downloadUrl);

    //    yield return www.SendWebRequest();

    //    byte[] json = www.downloadHandler.data;

    //    try {
    //        string outp = Encoding.UTF8.GetString(json);
    //        _cardDeckCollection = JsonUtility.FromJson<CardDeckCollection>(outp);


    //        if (_cardDeckCollection == null) {
    //            throw new Exception("Empty Card Deck");
    //        } else {
    //            SplashScreenLogic.Instance.DeckReady();
    //            CollectionSaveManager.Instance.SaveCollection(1, Encoding.UTF8.GetString(json));
    //        }


    //        // If a connection to the server cannot be established, use the on-device backup files to generate decks.
    //    } catch (Exception e) {
    //        print(e);
    //        //_cardDeckCollectionProvider = new GenerateCards();
    //        //_cardDeckCollection[i-1] = _cardDeckCollectionProvider.GetCardDeckCollection(1);
    //        _cardDeckCollection = JsonUtility.FromJson<CardDeckCollection>(CollectionSaveManager.Instance.LoadCollection(1));
    //        Debug.LogError("Could not get data from server. Using local backup");

    //    }

    //    //TODO Making a dummy to demonstrate:
    //    GUIManager.Instance.SetcardDeckVersionNumber(0 + "." + 75 + "." + 120);
    //    //GUIManager.Instance.SetcardDeckVersionNumber(_cardDeckCollection[0].MainVersion + "." + _cardDeckCollection[0].SubVersion + "." + _cardDeckCollection[0].SubSubVersion);


    //    //for (int i = 1; i < 4; i++) {
    //    //    string downloadUrl = "https://laeringsliv.azurewebsites.net/CardDeckCollections/DownloadCardDeckCollection?id=" + i;
    //    //    UnityWebRequest www = UnityWebRequest.Get(downloadUrl);

    //    //    yield return www.SendWebRequest();

    //    //    byte[] json = www.downloadHandler.data;

    //    //    try {
    //    //        _cardDeckCollection[i-1] = JsonUtility.FromJson<CardDeckCollection>(Encoding.UTF8.GetString(json));


    //    //        if (_cardDeckCollection[i-1] == null) {
    //    //            throw new Exception("Empty Card Deck");
    //    //        } else {
    //    //            SplashScreenLogic.Instance.DeckReady();
    //    //            CollectionSaveManager.Instance.SaveCollection(i, Encoding.UTF8.GetString(json));
    //    //        }


    //    //    // If a connection to the server cannot be established, use the on-device backup files to generate decks.
    //    //    } catch (Exception e) {
    //    //        print(e);
    //    //        //_cardDeckCollectionProvider = new GenerateCards();
    //    //        //_cardDeckCollection[i-1] = _cardDeckCollectionProvider.GetCardDeckCollection(1);
    //    //        _cardDeckCollection[i - 1] = JsonUtility.FromJson<CardDeckCollection>(CollectionSaveManager.Instance.LoadCollection(i));
    //    //        Debug.LogError("Could not get data from server. Using local backup");
    //    //    }
    //    //}
    //    ////TODO Making a dummy to demonstrate:
    //    //GUIManager.Instance.SetcardDeckVersionNumber(0 + "." + 75 + "." + 120);
    //    ////GUIManager.Instance.SetcardDeckVersionNumber(_cardDeckCollection[0].MainVersion + "." + _cardDeckCollection[0].SubVersion + "." + _cardDeckCollection[0].SubSubVersion);

    //}

    public void TimeoutProcedure()
    {
        StopAllCoroutines();

        _cardDeckCollection = JsonConvert.DeserializeObject <CardDeckCollection>(CollectionSaveManager.Instance.LoadCollection(1));
        if (_cardDeckCollection != null)
        {
            Debug.LogError("Could not get data from server. Using local backup");
            LoginProcedure.Instance.UseBackup();
        }
        else
        {
            LoginProcedure.Instance.NoBackup();
        }



        //for (int i = 1; i < 4; i++) {
        //    _cardDeckCollection[i - 1] = JsonUtility.FromJson<CardDeckCollection>(CollectionSaveManager.Instance.LoadCollection(i));
        //    Debug.LogError("Could not get data from server. Using local backup");
        //}
        //TODO Making a dummy to demonstrate:
        GUIManager.Instance.SetcardDeckVersionNumber(0 + "." + 75 + "." + 120);
        //GUIManager.Instance.SetcardDeckVersionNumber(_cardDeckCollection[0].MainVersion + "." + _cardDeckCollection[0].SubVersion + "." + _cardDeckCollection[0].SubSubVersion);
    }
예제 #2
0
    IEnumerator GetCardDeckCollectionRoutine(string deckID)
    {
        string          downloadUrl = "https://laeringsliv.azurewebsites.net/CardDeckCollections/DownloadCardDeckCollection?id=" + deckID;
        UnityWebRequest www         = UnityWebRequest.Get(downloadUrl);

        yield return(www.SendWebRequest());

        byte[] json = www.downloadHandler.data;

        try {
            string outp = Encoding.UTF8.GetString(json);
            _cardDeckCollection = JsonConvert.DeserializeObject <CardDeckCollection>(outp);

            if (_cardDeckCollection == null)
            {
                throw new Exception("Empty Card Deck");
            }
            else
            {
                LoginProcedure.Instance.DeckReady();
                LoginProcedure.Instance.SetCardDeckID(deckID);
                CollectionSaveManager.Instance.SaveCollection(1, Encoding.UTF8.GetString(json));
            }
            PlayerPrefs.SetString("DeckID", deckID);
            LoginProcedure.Instance.ConfirmUser();

            // If a connection to the server cannot be established, use the on-device backup files to generate decks.
        } catch (Exception e) {
            print(e);
            //_cardDeckCollectionProvider = new GenerateCards();
            //_cardDeckCollection[i-1] = _cardDeckCollectionProvider.GetCardDeckCollection(1);
            TimeoutProcedure();
        }
    }
예제 #3
0
    public CardDeckCollection GetCardDeckCollection(int gameID)
    {
        #region Play Cards

        List <PlayCard> playCards = new List <PlayCard>();

        // Generate playing cards
        TextAsset input = Resources.Load <TextAsset>("PlayCards");
        string[]  data  = input.text.Split(new char[] { '\n' }); // Split each line into its own segment

        for (int i = 1; i < numOfCards + 1; i++)
        {
            // Ignore index 0, as it is the identifier line
            playCards.Add(PlayCardUtility.GeneratePlayCard(data[i]));
        }



        #endregion

        #region Feedback Cards

        // Generate Tips cards
        TextAsset testInput = Resources.Load <TextAsset>("TipsCards");
        string[]  tipsData  = testInput.text.Split(new char[] { '\n' });

        List <FeedbackCard> feedbackCards = new List <FeedbackCard>();

        for (int i = 1; i < numOfTipsCards + 1; i++)
        {
            // Ignore index 0, as it is the identifier line
            feedbackCards.Add(PlayCardUtility.GenerateFeedbackCard(tipsData[i]));
        }

        #endregion

        CardDeck cardDeck = new CardDeck
        {
            CardDeckID    = 0,
            Name          = "Default",
            Description   = "Local card deck",
            PlayCards     = playCards,
            FeedbackCards = feedbackCards
        };

        List <CardDeck> cardDecks = new List <CardDeck> {
            cardDeck
        };

        CardDeckCollection cardDeckCollection = new CardDeckCollection
        {
            GameID        = gameID,
            PlayCardDecks = cardDecks
        };

        return(cardDeckCollection);
    }