示例#1
0
        public void StartGame(Player Player2)
        {
            controller = new Controller();

            Player FirstPlayer = controller.GameStart(clientinf, Player2);

            lock (_locker)
            {
                try
                {
                    if (ServerMain.rooms[clientinf.NumRoom].playerFirst.Name == null)
                    {
                        ServerMain.rooms[clientinf.NumRoom].playerFirst = FirstPlayer;
                    }
                    else
                    {
                        FirstPlayer = ServerMain.rooms[clientinf.NumRoom].playerFirst;
                    }
                }
                catch
                {
                    ServerMain.rooms[clientinf.NumRoom].playerFirst = FirstPlayer;
                }
            }
            SendDataToUsersFirstTime send = new SendDataToUsersFirstTime();

            send.Command     = PacketsToServer.SendDataToUserFirstTime;
            send.EnemyName   = Player2.Name;
            send.EnemyHealth = Player2.Health;
            send.MyHealth    = clientinf.Health;
            send.MyMana      = clientinf.Mana;

            send.StartKoloda          = clientinf.Deck;
            send.ListCardInAHandFirst = clientinf.CardHand;
            bool whosfirst;

            if (ServerMain.rooms[clientinf.NumRoom].playerFirst.Name == clientinf.Name)
            {
                whosfirst = true;
            }
            else
            {
                whosfirst = false;
            }
            send.AmIFirst = whosfirst;
            strpacket     = JsonConvert.SerializeObject(send) + "$";
            Send(strpacket);
        }
示例#2
0
        public void StartGame(Player Player1, Player Player2)
        {
            controller = new Controller();
            controller.GameStart(Player1, Player2);
            SendDataToUsersFirstTime send = new SendDataToUsersFirstTime();

            send.Command = PacketsToServer.SendDataToUsers;
            send.Player1 = Player1;
            send.Player2 = Player2;
            var obj = JsonConvert.DeserializeObject <List <Card> >(File.ReadAllText("Heroes.json"));

            send.ListCard   = obj;
            send.WhoIsFirst = controller.First(Player1, Player2);
            strpacket       = JsonConvert.SerializeObject(send);
            Send(strpacket);
        }
示例#3
0
        public void ReciveMesFromServ(string message)
        {
            switch (JsonConvert.DeserializeObject <ResultRegPacket>(message).Command)
            {
            case PacketsToServer.ResultRegPacket:
                ResultRegPacket result = JsonConvert.DeserializeObject <ResultRegPacket>(message);
                ChangeForm();
                ChangeForm1(result.ListAllClients);
                //SendQAFORstWindow();
                break;

            case PacketsToServer.ResultRegPacketFailed:
                ResultRegPacket resultf = JsonConvert.DeserializeObject <ResultRegPacket>(message);
                SendMessage(string.Format("Это имя уже занято!Введите другое имя."));

                break;

            case PacketsToServer.StartWindowPacket:
                StartWindowPacket resultWindow = JsonConvert.DeserializeObject <StartWindowPacket>(message);
                ChangeForm1(resultWindow.ListAllClients);
                break;

            case PacketsToServer.ListOfAllClients:
                ListOfAllClients list = JsonConvert.DeserializeObject <ListOfAllClients>(message);
                ChangeForm1(list.ListAllClients);
                break;

            case PacketsToServer.ListOfWaitingClients:
                ListOfWaitingClients waitgapacket = JsonConvert.DeserializeObject <ListOfWaitingClients>(message);
                ChangeForm2(waitgapacket.ListWaitingClients);
                break;

            case PacketsToServer.AskGamePacket:
                AskGamePacket gameasktpacket = JsonConvert.DeserializeObject <AskGamePacket>(message);
                MessForME(gameasktpacket.login);

                break;

            case PacketsToServer.ResultChooseEnemyPacketSuccess:
                ResultChooseEnemyPacketSuccess gamepaket = JsonConvert.DeserializeObject <ResultChooseEnemyPacketSuccess>(message);

                ChangeFormToNewForm();
                MakeCards(gamepaket.listAllCards);
                break;

            case PacketsToServer.ResultChooseEnemyPacketFailed:
                // ChangeFormToNewForm();
                SendMessage("Противник отклонил игру");

                break;

            case PacketsToServer.ResultChooseCardList:
                ResultChooseCardList anscard = JsonConvert.DeserializeObject <ResultChooseCardList>(message);
                if (anscard.ResultOfChooseCard == Status.fail)
                {
                    ISCardRight = false;
                    //  ChangeFormCard();//добавить обработчик
                }
                else
                {
                    ISCardRight = true;
                }
                if (ISCardRightEnemy == true && ISCardRight == true)
                {
                    ChangeToFormGame(); SendStart(enemyName);
                }
                break;

            case PacketsToServer.ISErrorOfEnemy:
                ISErrorOfEnemy errEnemy = JsonConvert.DeserializeObject <ISErrorOfEnemy>(message);
                if (errEnemy.ISErr == false)
                {
                    ISCardRightEnemy = true;
                }
                else
                if (errEnemy.ISErr != false && ISCardRight == true)
                {
                    ISCardRightEnemy = false;
                    MessForMEWait("подождите, ваш противник еще выбирает карты");
                    // CardClose();//добавить обработчик
                }
                if (ISCardRightEnemy == true && ISCardRight == true)
                {
                    ChangeToFormGame(); SendStart(enemyName);
                }
                break;

            case PacketsToServer.SendDataToUserFirstTime:
                SendDataToUsersFirstTime DataFirst = JsonConvert.DeserializeObject <SendDataToUsersFirstTime>(message);
                ChangeGameForm(DataFirst.AmIFirst, DataFirst.EnemyHealth, DataFirst.EnemyName, DataFirst.MyHealth, DataFirst.MyMana, DataFirst.StartKoloda, name, DataFirst.ListCardInAHandFirst);
                break;

            case PacketsToServer.Error:
                Error carder = JsonConvert.DeserializeObject <Error>(message);
                if (carder.ErrorToUser == MessagesToClientErrors.NotEnouthMana)
                {
                    MessForME("У вас не хватает маны");
                }
                break;

            case PacketsToServer.CardOnABoard:
                CardOnABoard card = JsonConvert.DeserializeObject <CardOnABoard>(message);
                if (card.login == name)
                {
                    CardOnABoard(card.card);
                }
                else
                {
                    CardOnOtherABoard(card.card);
                }
                break;

            case PacketsToServer.SendDataToUsers:
                SendDataToUsers Data = JsonConvert.DeserializeObject <SendDataToUsers>(message);
                ChangeAftepStep(Data.AmIFirst, Data.EnemyHealth, enemyName, Data.MyHealth, Data.MyMana, Data.Arena1, Data.Arena2, Data.EnemyArena1, Data.EnemyArena2);
                break;

            case PacketsToServer.EnemyLeftGamePacket:
                IfEnemyLeft("Ваш противник сдался! Вы выйграли!");
                break;
            }
        }