//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); }
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(); } }
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); }