public void OnJoinedRoom() { GameObject mineHand = PhotonNetwork.Instantiate("CardHand", new Vector3(0, -4.1f), transform.rotation, 0); mineHand.gameObject.transform.parent = GameObject.Find("Canvas").transform; mineHand.name = "CardHand" + PlayerPrefs.GetString("LoginUser", "Unknown"); if (PhotonNetwork.player.UserId == PhotonNetwork.playerList[0].UserId) { mineHand.GetComponent <HandPhoton>().isAvailable = false; } else { mineHand.GetComponent <HandPhoton>().isAvailable = true; } mineDeck = PhotonNetwork.Instantiate("Deck", new Vector3(7, -3.2f), transform.rotation, 0); mineDeck.transform.parent = GameObject.Find("NumberCanvas").transform; User user = new User(); user.email = PlayerPrefs.GetString("LoginUser", "Unknown"); DeckBean deckBean = new DeckBean(); deckBean.user = user; deckBean.name = PlayerPrefs.GetString("DeckName", "Unknown"); GameObject mineScore = PhotonNetwork.Instantiate("ScoreBox", new Vector3(-7.5f, -1.1f), transform.rotation, 0); mineScore.name = "Score" + PlayerPrefs.GetString("LoginUser", "Unknown"); mineScore.transform.parent = GameObject.Find("NumberCanvas").transform; StartCoroutine(getUserDeck(deckBean)); }
IEnumerator setDeck() { DeckBean deck = controller.GetDeck(); ItemList itemList = GameObject.Find("Item List").GetComponent <ItemList>(); List <CardBean> list = itemList.GetList(); User user = new User(); user.email = PlayerPrefs.GetString("LoginUser", "Unknown"); deck.cards = list; deck.user = user; string jsonToServer = JsonUtility.ToJson(deck); UnityWebRequest request = new UnityWebRequest("https://cardgamejavaserver.herokuapp.com/deck/editDeck", "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonToServer); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); if (request.isError) { Debug.Log(request.error); } else { SceneManager.LoadScene(3); } }
IEnumerator getUserDeck(DeckBean deckBean) { string jsonToServer = JsonUtility.ToJson(deckBean); UnityWebRequest request = new UnityWebRequest("https://cardgamejavaserver.herokuapp.com/deck/userDeck", "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonToServer); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); if (!request.isError) { DeckBean deck = JsonUtility.FromJson <DeckBean>(request.downloadHandler.text); Vector3 pos = transform.position; pos.y = pos.y - 4f; pos.x = pos.x - 3.5f; int count = 0; Card leader = PhotonNetwork.Instantiate("Card", transform.position, transform.rotation, 0).GetComponent <Card>(); leader.GetComponent <CardPhoton>().isVisible = true; leader.isLeader = true; leader.Id = deck.leader.id; leader.name = deck.leader.name; leader.Strength = deck.leader.strength; leader.changeStrength(leader.Strength); leader.sprites[0] = Resources.Load("sprites/Cards/SmallSize/" + leader.Id, typeof(Sprite)) as Sprite; leader.changeSprite(0); leader.transform.localScale = new Vector3(1F, 1F, 0); leader.transform.position = new Vector3(-7.3F, -3.5F, -1); deck.cards = UtilityHelper.RandomizeList(deck.cards); List <CardBean> cardsForHand = deck.cards.GetRange(0, 10); List <CardBean> cardsForDeck = deck.cards.GetRange(10, deck.cards.Count - 10); mineDeck.GetComponent <DeckPhoton>().cardsInDeck = cardsForDeck; foreach (CardBean card in cardsForHand) { Card cardForGame = PhotonNetwork.Instantiate("Card", transform.position, transform.rotation, 0).GetComponent <Card>(); cardForGame.name = card.id; cardForGame.gameObject.AddComponent <CardOnBoard>(); cardForGame.Id = card.id; cardForGame.Strength = card.strength; cardForGame.changeStrength(cardForGame.Strength); cardForGame.sprites[0] = Resources.Load("sprites/Cards/SmallSize/" + cardForGame.Id, typeof(Sprite)) as Sprite; cardForGame.sprites[1] = Resources.Load("sprites/Cards/FullSize/" + cardForGame.Id, typeof(Sprite)) as Sprite; cardForGame.changeSprite(0); cardForGame.transform.localScale = new Vector3(0.6F, 0.6F, 0); cardForGame.transform.parent = GameObject.Find("CardHand" + PlayerPrefs.GetString("LoginUser", "Unknown")).transform; count += 1; cardForGame.transform.Find("Strenge").GetComponent <SpriteRenderer>().sortingOrder = count + 1; cardForGame.transform.position = pos; pos.z -= 0.1f; pos.x += 0.8f; cardForGame.GetComponentInChildren <SpriteRenderer>().sortingOrder = count; } } }
IEnumerator getUserDeck(DeckBean deckBean) { string jsonToServer = JsonUtility.ToJson(deckBean); UnityWebRequest request = new UnityWebRequest("https://cardgamejavaserver.herokuapp.com/deck/userDeck", "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonToServer); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); if (request.isError) { // todo обработать } else { deck = JsonUtility.FromJson <DeckBean>(request.downloadHandler.text); Vector3 position = transform.position; position.y = position.y + 2.5f; position.x = position.x + 7f; position.z = 0; Card newCard = Instantiate(card, position, card.transform.rotation) as Card; newCard.name = deck.leader.id; newCard.gameObject.AddComponent <CardInColl>(); newCard.Id = deck.leader.id; newCard.Strength = deck.leader.strength; newCard.changeStrength(newCard.Strength); newCard.sprites[0] = Resources.Load("sprites/Cards/SmallSize/" + newCard.Id, typeof(Sprite)) as Sprite; newCard.sprites[1] = Resources.Load("sprites/Cards/FullSize/" + newCard.Id, typeof(Sprite)) as Sprite; newCard.transform.Find("Count").gameObject.SetActive(false); newCard.changeSprite(0); newCard.transform.position = position; newCard.transform.localScale = new Vector3(0.9F, 0.9F, 0); newCard.transform.parent = GameObject.Find("RightPanel").transform; foreach (CardBean card in deck.cards) { ItemList itemList = GameObject.Find("Item List").GetComponent <ItemList>(); itemList.AddToList(card.id, card.name, false); Sprite sprite = GameObject.Find(card.id).transform.Find("Count").GetComponent <SpriteRenderer>().sprite; if (sprite != null) { if (Int32.Parse(sprite.name) == 1) { sprite = null; GameObject.Find(card.id).GetComponentInChildren <SpriteRenderer>().color = new Color32(100, 100, 100, 255); } else { sprite = Resources.Load("sprites/Cards/power/" + (Int32.Parse(sprite.name) - 1).ToString(), typeof(Sprite)) as Sprite; } GameObject.Find(card.id).transform.Find("Count").GetComponent <SpriteRenderer>().sprite = sprite; } } } }
IEnumerator createNewDeck(DeckBean deckBean) { string jsonToServer = JsonUtility.ToJson(deckBean); UnityWebRequest request = new UnityWebRequest("https://cardgamejavaserver.herokuapp.com/deck/create", "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonToServer); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); if (request.isError) { // todo обработать } else { PlayerPrefs.SetString("DeckName", deckBean.name); SceneManager.LoadScene(4); } }
IEnumerator getUserCollection() { User user = new User(); user.email = PlayerPrefs.GetString("LoginUser", "Unknown"); Debug.Log(user.email); string jsonToServer = JsonUtility.ToJson(user); UnityWebRequest request = new UnityWebRequest("https://cardgamejavaserver.herokuapp.com/collection/userDeckCards", "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonToServer); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.Send()); if (request.isError) { Debug.Log(request.error); } else { string jsonString = JsonHelper.fixJson(request.downloadHandler.text); CardBean[] cards = JsonHelper.FromJson <CardBean>(jsonString); playerCards = new Dictionary <CardBean, int>(); Dictionary <CardBean, int> notIniqCards = cards .GroupBy(n => n, (n, m) => new { Key = n, Cnt = m.Count() }) .Where(n => n.Cnt > 1) .ToDictionary(n => n.Key, n => n.Cnt); Dictionary <CardBean, int> uniqCards = cards .GroupBy(n => n, (n, m) => new { Key = n, Cnt = m.Count() }) .Where(n => n.Cnt == 1) .ToDictionary(n => n.Key, n => n.Cnt); playerCards = uniqCards.Union(notIniqCards).ToDictionary(n => n.Key, n => n.Value); int count = 1; Vector3 position = transform.position; position.y = position.y + startTransformY; position.x = position.x - startTransformX; position.z = 0; foreach (KeyValuePair <CardBean, int> keyValue in playerCards) { Card newCard = Instantiate(card, position, card.transform.rotation) as Card; newCard.gameObject.AddComponent <CardInDeckBuild>(); newCard.name = keyValue.Key.id; newCard.Id = keyValue.Key.id; newCard.Strength = keyValue.Key.strength; newCard.Name = keyValue.Key.name; newCard.changeStrength(newCard.Strength); newCard.sprites[0] = Resources.Load("sprites/Cards/SmallSize/" + newCard.Id, typeof(Sprite)) as Sprite; newCard.sprites[1] = Resources.Load("sprites/Cards/FullSize/" + newCard.Id, typeof(Sprite)) as Sprite; newCard.changeSprite(0); newCard.transform.position = position; newCard.transform.localScale = new Vector3(1.3F, 1.3F, 0); newCard.transform.Find("Count").GetComponent <SpriteRenderer>().sprite = Resources.Load("sprites/Cards/power/" + keyValue.Value, typeof(Sprite)) as Sprite; newCard.transform.parent = GameObject.Find("Content").transform; if (count % 3 == 0) { position.y = position.y - transformY; position.x = transform.position.x - startTransformX; } else { position.x = position.x + transformX; } count++; } DeckBean deckBean = new DeckBean(); User findUser = new User(); findUser.email = PlayerPrefs.GetString("LoginUser", "Unknown"); deckBean.user = findUser; deckBean.name = PlayerPrefs.GetString("DeckName", "Unknown"); StartCoroutine(getUserDeck(deckBean)); } }