Пример #1
0
    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);
        }
    }
Пример #3
0
    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;
            }
        }
    }
Пример #4
0
    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);
        }
    }
Пример #6
0
    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));
        }
    }