Esempio n. 1
0
        //SendSeverDataArrayをRecvClientDataclassに変換
        public RecvCliantData RecvArrayConvertClass(SendSeverDataArray sever)
        {
            RecvCliantData rData      = new RecvCliantData(new FieldDataProxy[global.FieldSize.y, global.FieldSize.x], null, -1, null, null);
            int            severCount = 0;

            for (int i = 0; i < sever.AllFeildData.Length / global.FieldSize.x; i++)
            {
                for (int j = 0; j < sever.AllFeildData.Length / global.FieldSize.y; j++)
                {
                    //カードデータをClassに変換する
                    rData.AllFeildData[i, j]._CardData.Cost   = sever.AllFeildData[severCount].SendCardData.Cost;
                    rData.AllFeildData[i, j]._CardData.Name   = sever.AllFeildData[severCount].SendCardData.Name;
                    rData.AllFeildData[i, j]._CardData.Number = sever.AllFeildData[severCount].SendCardData.Number;
                    rData.AllFeildData[i, j]._CardData.Rarity = sever.AllFeildData[severCount].SendCardData.Rarity;
                    rData.AllFeildData[i, j]._CardData.Score  = sever.AllFeildData[severCount].SendCardData.Score;
                    rData.AllFeildData[i, j]._CardData.Text   = sever.AllFeildData[severCount].SendCardData.Text;
                    rData.AllFeildData[i, j]._CardData.Type   = sever.AllFeildData[severCount].SendCardData.Type;

                    //残りも変換
                    rData.AllFeildData[i, j].IsRankUp         = sever.AllFeildData[severCount].IsRankUp;
                    rData.AllFeildData[i, j].MaptipNumber     = sever.AllFeildData[severCount].MaptipNumber;
                    rData.AllFeildData[i, j].PossessionPlayer = sever.AllFeildData[severCount].PossessionPlayer;
                    rData.AllFeildData[i, j].RankID           = sever.AllFeildData[severCount].RankID;
                    severCount++;
                }
            }
            //プレイヤーデータを構造体に変換
            for (int i = (int)PlayerType.Player1; i < (int)PlayerType.EndPlayer; i++)
            {
                rData.AllPlayerData[i].PlayerNumber = sever.AllPlayerData[i].PlayerNumber;
                rData.AllPlayerData[i].Ranking      = sever.AllPlayerData[i].Ranking;
                rData.AllPlayerData[i].ScorePerTurn = sever.AllPlayerData[i].ScorePerTurn;
                rData.AllPlayerData[i].TotalScore   = sever.AllPlayerData[i].TotalScore;
            }
            //描画メソッドを構造体に変換
            for (int i = 0; i < sever.DrawDataList.Length; i++)
            {
                for (int j = 0; j < sever.DrawDataList[i].vs.Length; j++)
                {
                    rData.DrawDataList[i][j] = sever.DrawDataList[i].vs[j];
                }
            }
            //引くカードのデータを構造体に変換
            for (int i = 0; i < sever.DrawCardList.Length; i++)
            {
                rData.DrawCardList[i].Name   = sever.DrawCardList[i].Name;
                rData.DrawCardList[i].Number = sever.DrawCardList[i].Number;
                rData.DrawCardList[i].Rarity = sever.DrawCardList[i].Rarity;
                rData.DrawCardList[i].Score  = sever.DrawCardList[i].Score;
                rData.DrawCardList[i].Text   = sever.DrawCardList[i].Text;
                rData.DrawCardList[i].Type   = sever.DrawCardList[i].Type;
            }

            return(rData);
        }
Esempio n. 2
0
        // Update is called once per frame
        void FixedUpdate()
        {
            if (!isLocalPlayer)
            {
                return;                     //他プレイヤーには何もしない
            }
            //データを受け取っていれば
            if (recvSeverData.isRecvFinished)
            {
                recvSeverData.isRecvFinished     = false;
                DrawManager.instance._IsDrawFaze = true;
                //SendSeverDataArrayをRecvClientDataclassに変換
                recvCliantData = RecvArrayConvertClass(recvSeverData);
                DrawManager.instance.isDrawInit    = true;
                DrawManager.instance._DrawDataList = new List <List <int> >(recvCliantData.DrawDataList);
                if (recvCliantData != null)
                {
                    print("受け取ったよ");
                }
            }
            //描画処理

            if (!UIMgr.instance.isClientTurn)   //ターンエンドであれば
            {
                UIMgr.instance.isClientTurn = true;
                //int Length = UIMgr.instance.useCardGroup.Count;
                for (int i = 0; i < UIMgr.instance._UseCardData.Count; i++)
                {
                    clientDataArrayList.Add(SendClassConvertArray(UIMgr.instance._UseCardData[i]));  //一度型変換
                }
                SendClientDataArray[] clientDataArray = clientDataArrayList.ToArray();
                CmdSendClientData(clientDataArray, playerNum);                      //データ送信
            }
            else
            {
                if (Input.GetMouseButtonDown(0))        //クリックされていれば
                {
                    UIMgr.instance.isNowClick = true;
                }
                else
                {
                    UIMgr.instance.isNowClick = false;
                }

                if (UIMgr.instance.isDragEnd)           //ドラッグが終わっていれば
                {
                    UIMgr.instance.isDragEnd = false;
                    Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;

                    if (Physics.Raycast(ray, out hit))
                    {
                        if (hit.collider.CompareTag("Stage"))
                        {
                            ////多分こことCardMovementの2か所で使用カードデータが入れられているので、こっちを消しました
                            //UIMgr.instance.useCardData._PlayerNum = playerNum;
                            ////hit.transform.gameObject.GetComponent<TileData_Maneger>().planePos = new Vector2(hit.transform.position.x, hit.transform.position.z);
                            //UIMgr.instance.useCardData._FieldPos = new Vector2(hit.transform.gameObject.GetComponent<TileData_Maneger>().planePos.x, hit.transform.gameObject.GetComponent<TileData_Maneger>().planePos.y);
                            //// リストに追加
                            //UIMgr.instance._UseCardData.Add(new ClientData(UIMgr.instance.useCardData._CardDataProxy,
                            //    UIMgr.instance.useCardData._PlayerNum,
                            //    UIMgr.instance.useCardData._CardPlayTime,
                            //    UIMgr.instance.useCardData._FieldPos));

                            ////print(UIMgr.instance.useCardData._CardDataProxy.Name);
                        }
                    }
                }
            }
        } // end Updata
Esempio n. 3
0
        //SendSeverDataArrayをRecvClientDataclassに変換
        public RecvCliantData RecvArrayConvertClass(SendSeverDataArray sever)
        {
            RecvCliantData rData      = new RecvCliantData(new FieldDataProxy[global.FieldSize.y, global.FieldSize.x], null, -1, null, null);
            int            severCount = 0;

            for (int i = 0; i < global.FieldSize.y; i++)
            {
                for (int j = 0; j < global.FieldSize.x; j++)
                {
                    CardDataProxy  InitCard = new CardDataProxy(-1, "", "", -1, -1, -1, -1);
                    FieldDataProxy Init     = new FieldDataProxy(InitCard, -1, -1, false, -1);
                    rData.AllFeildData[i, j] = Init;
                }
            }

            //プレイヤー初期化
            PlayerDataProxy InitPlayer = new PlayerDataProxy(-1, -1, -1, -1);

            rData.AllPlayerData = new PlayerDataProxy[4];
            for (int i = 0; i < 4; i++)
            {
                rData.AllPlayerData[i] = InitPlayer;
            }

            List <List <int> > InitDrawList = new List <List <int> >();

            rData.DrawDataList = InitDrawList;

            List <CardDataProxy> InitCardData = new List <CardDataProxy>();

            rData.DrawCardList = InitCardData;

            for (int i = 0; i < sever.AllFeildData.Length / global.FieldSize.x; i++)
            {
                for (int j = 0; j < sever.AllFeildData.Length / global.FieldSize.y; j++)
                {
                    //カードデータをClassに変換する
                    rData.AllFeildData[i, j]._CardData.Cost   = sever.AllFeildData[severCount].SendCardData.Cost;
                    rData.AllFeildData[i, j]._CardData.Name   = sever.AllFeildData[severCount].SendCardData.Name;
                    rData.AllFeildData[i, j]._CardData.Number = sever.AllFeildData[severCount].SendCardData.Number;
                    rData.AllFeildData[i, j]._CardData.Rarity = sever.AllFeildData[severCount].SendCardData.Rarity;
                    rData.AllFeildData[i, j]._CardData.Score  = sever.AllFeildData[severCount].SendCardData.Score;
                    rData.AllFeildData[i, j]._CardData.Text   = sever.AllFeildData[severCount].SendCardData.Text;
                    rData.AllFeildData[i, j]._CardData.Type   = sever.AllFeildData[severCount].SendCardData.Type;

                    //残りも変換
                    rData.AllFeildData[i, j].IsRankUp         = sever.AllFeildData[severCount].IsRankUp;
                    rData.AllFeildData[i, j].MaptipNumber     = sever.AllFeildData[severCount].MaptipNumber;
                    rData.AllFeildData[i, j].PossessionPlayer = sever.AllFeildData[severCount].PossessionPlayer;
                    rData.AllFeildData[i, j].RankID           = sever.AllFeildData[severCount].RankID;
                    severCount++;
                }
            }
            //プレイヤーデータを構造体に変換
            for (int i = (int)PlayerType.Player1; i < (int)PlayerType.EndPlayer; i++)
            {
                rData.AllPlayerData[i].PlayerNumber = sever.AllPlayerData[i].PlayerNumber;
                rData.AllPlayerData[i].Ranking      = sever.AllPlayerData[i].Ranking;
                rData.AllPlayerData[i].ScorePerTurn = sever.AllPlayerData[i].ScorePerTurn;
                rData.AllPlayerData[i].TotalScore   = sever.AllPlayerData[i].TotalScore;
            }


            //描画メソッドを構造体に変換
            List <List <int> > AddData = new List <List <int> >();

            for (int i = 0; i < sever.DrawDataList.Length; i++)
            {
                List <int> ListData = new List <int>();
                for (int j = 0; j < sever.DrawDataList[i].vs.Length; j++)
                {
                    ListData.Add(sever.DrawDataList[i].vs[j]);
                    //rData.DrawDataList[i][j] = sever.DrawDataList[i].vs[j];
                }
                AddData.Add(ListData);
            }
            rData.DrawDataList = new List <List <int> >(AddData);

            //引くカードのデータを構造体に変換
            for (int i = 0; i < sever.DrawCardList.Length; i++)
            {
                CardDataProxy AddCardData = new CardDataProxy(sever.DrawCardList[i].Number, sever.DrawCardList[i].Name, sever.DrawCardList[i].Text, sever.DrawCardList[i].Cost,
                                                              sever.DrawCardList[i].Score, sever.DrawCardList[i].Type, sever.DrawCardList[i].Rarity);

                rData.DrawCardList.Add(AddCardData);
                //rData.DrawCardList[i].Name = sever.DrawCardList[i].Name;
                //rData.DrawCardList[i].Number = sever.DrawCardList[i].Number;
                //rData.DrawCardList[i].Rarity = sever.DrawCardList[i].Rarity;
                //rData.DrawCardList[i].Score = sever.DrawCardList[i].Score;
                //rData.DrawCardList[i].Text = sever.DrawCardList[i].Text;
                //rData.DrawCardList[i].Type = sever.DrawCardList[i].Type;
            }

            return(rData);
        }
Esempio n. 4
0
        //RecvCliantDataクラスをSendSeverDataArray構造体に変換

        public SendSeverDataArray ClassConvertArray(RecvCliantData sever)
        {
            //work用
            SendSeverDataArray sData;

            //初期化
            sData.AllFeildData  = new SendFieldDataArray[_prm.FieldSize.y * _prm.FieldSize.x];
            sData.AllPlayerData = new SendPlayerDataArray[(int)PlayerType.EndPlayer];
            sData.NowTurn       = 0;
            sData.DrawCardList  = null;
            sData.DrawDataList  = null;
            int sDataCount = 0;

            //フィールドデータを構造体に変換
            for (int i = 0; i < _prm.FieldSize.y; i++)
            {
                for (int j = 0; j < _prm.FieldSize.x; j++)
                {
                    //カードデータを構造体に変換する
                    sData.AllFeildData[sDataCount].SendCardData.Cost   = sever.AllFeildData[i, j]._CardData.Cost;
                    sData.AllFeildData[sDataCount].SendCardData.Name   = sever.AllFeildData[i, j]._CardData.Name;
                    sData.AllFeildData[sDataCount].SendCardData.Number = sever.AllFeildData[i, j]._CardData.Number;
                    sData.AllFeildData[sDataCount].SendCardData.Rarity = sever.AllFeildData[i, j]._CardData.Rarity;
                    sData.AllFeildData[sDataCount].SendCardData.Score  = sever.AllFeildData[i, j]._CardData.Score;
                    sData.AllFeildData[sDataCount].SendCardData.Text   = sever.AllFeildData[i, j]._CardData.Text;
                    sData.AllFeildData[sDataCount].SendCardData.Type   = sever.AllFeildData[i, j]._CardData.Type;

                    //残りのデータも変換
                    sData.AllFeildData[sDataCount].IsRankUp         = sever.AllFeildData[i, j].IsRankUp;
                    sData.AllFeildData[sDataCount].MaptipNumber     = sever.AllFeildData[i, j].MaptipNumber;
                    sData.AllFeildData[sDataCount].PossessionPlayer = sever.AllFeildData[i, j].PossessionPlayer;
                    sData.AllFeildData[sDataCount].RankID           = sever.AllFeildData[i, j].RankID;
                    sDataCount++;
                }
            }
            //プレイヤーデータを構造体に変換
            for (int i = (int)PlayerType.Player1; i < (int)PlayerType.EndPlayer; i++)
            {
                sData.AllPlayerData[i].PlayerNumber = sever.AllPlayerData[i].PlayerNumber;
                sData.AllPlayerData[i].Ranking      = sever.AllPlayerData[i].Ranking;
                sData.AllPlayerData[i].ScorePerTurn = sever.AllPlayerData[i].ScorePerTurn;
                sData.AllPlayerData[i].TotalScore   = sever.AllPlayerData[i].TotalScore;
            }
            //描画メソッドを構造体に変換
            for (int i = 0; i < sever.DrawDataList.Count; i++)
            {
                for (int j = 0; j < sever.DrawDataList[i].Count; j++)
                {
                    sData.DrawDataList[i].vs[j] = sever.DrawDataList[i][j];
                }
            }
            //引くカードのデータを構造体に変換
            for (int i = 0; i < sever._DrawCardList.Count; i++)
            {
                sData.DrawCardList[i].Name   = sever.DrawCardList[i].Name;
                sData.DrawCardList[i].Number = sever.DrawCardList[i].Number;
                sData.DrawCardList[i].Rarity = sever.DrawCardList[i].Rarity;
                sData.DrawCardList[i].Score  = sever.DrawCardList[i].Score;
                sData.DrawCardList[i].Text   = sever.DrawCardList[i].Text;
                sData.DrawCardList[i].Type   = sever.DrawCardList[i].Type;
            }
            //
            sData.isRecvFinished = true;
            return(sData);
        }
Esempio n. 5
0
        //情報をまとめて送り返す処理
        public void CreateRecvObject(FieldDataProxy[][] Field, PlayerDataProxy[] Player, int Turn, List <List <int> > DrawData, List <CardDataProxy>[] DrawCard)
        {
            _PlayerObj = GameObject.FindGameObjectsWithTag("Player");

            //プレイヤーごとの渡すデータを作成
            for (int player = (int)PlayerType.Player1; player < (int)PlayerType.EndPlayer; player++)
            {
                //初期化
                CardDataProxy InitCard = new CardDataProxy(-1, "", "", -1, -1, -1, -1);
                FieldDataProxy[,] AllFieldObj;
                AllFieldObj = new FieldDataProxy[_prm.FieldSize.y, _prm.FieldSize.x];
                for (int i = 0; i < _prm.FieldSize.y; i++)
                {
                    for (int j = 0; j < _prm.FieldSize.x; j++)
                    {
                        AllFieldObj[i, j] = Field[i][j];
                    }
                }

                recvData[player] = new RecvCliantData(AllFieldObj, Player, Turn, DrawData, DrawCard[player]);

                //ここから処理

                //フィールドデータを詰める
                for (int i = 0; i < _prm.FieldSize.y; i++)
                {
                    for (int j = 0; j < _prm.FieldSize.x; j++)
                    {
                        if (Field[i][j].Data != null)
                        {
                            Debug.Log(recvData[player].AllFeildData[i, j]._CardData = _FieldObj[i * _prm.FieldSize.y + j].GetComponent <TileData_Maneger>().Field._CardData);

                            //各プレイヤーのrecvDataに対して、フィールドデータを入れている
                            recvData[player].AllFeildData[i, j]._CardData         = Field[i][j]._CardData;
                            recvData[player].AllFeildData[i, j]._IsRankUp         = Field[i][j]._IsRankUp;
                            recvData[player].AllFeildData[i, j]._MaptipNumber     = Field[i][j]._MaptipNumber;
                            recvData[player].AllFeildData[i, j]._PossessionPlayer = Field[i][j]._PossessionPlayer;
                            recvData[player].AllFeildData[i, j]._RankID           = Field[i][j]._RankID;
                        }
                        else
                        {
                            print("ないよ");
                        }
                    }
                }

                //プレイヤーデータを詰める
                for (int i = 0; i < _PlayerObj.Length; i++)
                {
                    recvData[player].AllPlayerData[i] = Player[i];
                }

                //現在のターン数を詰める
                recvData[player].NowTurn = Turn;

                //使ったカードの情報を詰める
                recvData[player].DrawDataList = DrawData;

                //ドローカード情報を詰める
                recvData[player].DrawCardList = DrawCard[player];
            }

            //全プレイヤーの情報を詰める
            for (int player = (int)PlayerType.Player1; player < (int)PlayerType.EndPlayer; player++)
            {
                //クラスを構造体に変換し、構造体配列に代入
                sendDataArray[player] = ClassConvertArray(recvData[player]);
            }
            //_RecvObj.GetComponent<RecvData>().Recv = recvData;
        }