コード例 #1
0
    /// <summary>
    /// Metoda typu "Callback" uruchamiana po wysłaniu wiadomości do innych graczy
    /// </summary>
    /// <param name="request">Zapytanie wysłania wiadomości</param>
    /// <param name="response">Odpowiedź na wysłane żądanie</param>
    /// <param name="additionalData">Informacje dodatkowe</param>
    private void SendMessageCallback(Request request, ActionsSerializer response, object additionalData)
    {
        if (((string)response.Actions[0].ActionData.GetValue("status")).CompareTo("OK") != 0)
        {
            return;
        }
        string message = (string)additionalData;

        AddMessage(UserData.Username + ": " + message);
    }
コード例 #2
0
ファイル: UserAI.cs プロジェクト: MasteroPL/zrobmy-brydza
        protected void GetHandCallback(Request request, ActionsSerializer response, object additionalData)
        {
            SendGetHandRequest = false;
            var data = new GetHandActionResponseSerializer(response.Actions[0].ActionData);

            data.Validate();

            int  index = 0;
            Card tmp;
            var  player = Game.GetPlayerAt(Position);

            List <int> C = new List <int>();
            List <int> D = new List <int>();
            List <int> H = new List <int>();
            List <int> S = new List <int>();

            foreach (var card in data.Cards)
            {
                tmp = new Card(
                    (CardFigure)card.Figure,
                    (CardColor)card.Color,
                    Position,
                    (CardState)card.State
                    );

                player.Hand[index] = tmp;
                index++;

                if (card.Color + 1 == 1)
                {
                    C.Add(card.Figure);
                }

                if (card.Color + 1 == 2)
                {
                    D.Add(card.Figure);
                }

                if (card.Color + 1 == 3)
                {
                    H.Add(card.Figure);
                }

                if (card.Color + 1 == 4)
                {
                    S.Add(card.Figure);
                }

                AILogic = new AI(C, D, H, S);
            }
        }
コード例 #3
0
        public static ActionsSerializer WrapRequestData(string actionName, JObject data)
        {
            var result = new ActionsSerializer();

            result.Actions = new ActionSerializer[1];
            var tmp = new ActionSerializer();

            tmp.ActionName = actionName;
            tmp.ActionData = data;

            result.Actions[0] = tmp;

            return(result);
        }
コード例 #4
0
ファイル: UserAI.cs プロジェクト: MasteroPL/zrobmy-brydza
        protected void GetGrandpaHandCallback(Request request, ActionsSerializer response, object additionalData)
        {
            var data = new GetHandActionResponseSerializer(response.Actions[0].ActionData);

            data.Validate();


            int  index = 0;
            Card tmp;
            var  player = Game.GetPlayerAt((PlayerTag)(((int)Position + 2) % 4));

            List <int> C = new List <int>();
            List <int> D = new List <int>();
            List <int> H = new List <int>();
            List <int> S = new List <int>();

            foreach (var card in data.Cards)
            {
                tmp = new Card(
                    (CardFigure)card.Figure,
                    (CardColor)card.Color,
                    (PlayerTag)(((int)Position + 2) % 4),
                    (CardState)card.State
                    );
                if (card.Color + 1 == 1)
                {
                    C.Add(card.Figure);
                }

                if (card.Color + 1 == 2)
                {
                    D.Add(card.Figure);
                }

                if (card.Color + 1 == 3)
                {
                    H.Add(card.Figure);
                }

                if (card.Color + 1 == 4)
                {
                    S.Add(card.Figure);
                }
                player.Hand[index] = tmp;
                index++;
            }

            AILogic.Grandpa_hand = new AI.Hand(C, D, H, S);
        }
コード例 #5
0
        public void PerformServerAction(string actionName, JObject data, Action <Request, ActionsSerializer, object> callback = null, object additionalData = null)
        {
            var requestData    = WrapRequestData(actionName, data);
            var currentRequest = ClientSocket.SendRequest(requestData.GetApiObject());

            while (currentRequest.RequestState != RequestState.RESPONSE_RECEIVED)
            {
                ClientSocket.UpdateCommunication();
            }

            var actsSer = new ActionsSerializer(currentRequest.ResponseData);

            actsSer.Validate();

            callback?.Invoke(currentRequest, actsSer, additionalData);
        }
コード例 #6
0
        private void OnSitPlayerOutRequestCallback(Request request, ActionsSerializer response, object additionalData)
        {
            var position = (PlayerTag)additionalData;

            if (((string)response.Actions[0].ActionData.GetValue("status")).CompareTo("OK") != 0)
            {
                return;
            }

            var data = new SitPlayerOutResponseSerializer(response.Actions[0].ActionData);

            data.Validate();

            if (SeatManager.IsSeatTaken(position))
            {
                SeatManager.SitOutPlayer(position);
            }
        }
コード例 #7
0
ファイル: UserAI.cs プロジェクト: MasteroPL/zrobmy-brydza
        protected void LoadGameCallback(Request request, ActionsSerializer response, object additionalData)
        {
            Game = new Match(enableCardsShufflingAndDistributing: false);

            AILogic = null;

            var rs = new GetTableInfoActionResponseSerializer(response.Actions[0].ActionData);

            rs.Validate();

            Game.RoundsNS    = rs.RoundsNS;
            Game.RoundsWE    = rs.RoundsWE;
            Game.PointsNS[0] = rs.PointsNSBelowLine;
            Game.PointsNS[1] = rs.PointsNSAboveLine;
            Game.PointsWE[0] = rs.PointsWEBelowLine;
            Game.PointsWE[1] = rs.PointsWEAboveLine;

            for (int i = 0; i < 4; i++)
            {
                if (rs.Players[i] != null)
                {
                    Game.AddPlayer(new Player((PlayerTag)rs.Players[i].PlayerTag, rs.Players[i].Username));
                }
            }

            if (rs.CurrentBidding != null && rs.CurrentBidding.ContractList != null)
            {
                foreach (var contract in rs.CurrentBidding.ContractList)
                {
                    if (contract != null)
                    {
                        Game.AddBid(new Contract(
                                        (ContractHeight)contract.ContractHeight,
                                        (ContractColor)contract.ContractColor,
                                        (PlayerTag)contract.PlayerTag,
                                        contract.XEnabled,
                                        contract.XXEnabled
                                        ));
                    }
                }
            }
        }
コード例 #8
0
        protected void GetGrandpaHandCallback(Request request, ActionsSerializer response, object additionalData)
        {
            var data = new GetHandActionResponseSerializer(response.Actions[0].ActionData);

            data.Validate();
            GrandpaCards = new List <Card>();

            int  index = 0;
            Card tmp;
            var  player = Game.GetPlayerAt((PlayerTag)(((int)Position + 2) % 4));

            foreach (var card in data.Cards)
            {
                tmp = new Card(
                    (CardFigure)card.Figure,
                    (CardColor)card.Color,
                    (PlayerTag)(((int)Position + 2) % 4),
                    (CardState)card.State
                    );
                GrandpaCards.Add(tmp);
                player.Hand[index] = tmp;
                index++;
            }
        }
コード例 #9
0
        protected void GetHandCallback(Request request, ActionsSerializer response, object additionalData)
        {
            SendGetHandRequest = false;
            var data = new GetHandActionResponseSerializer(response.Actions[0].ActionData);

            data.Validate();

            int  index = 0;
            Card tmp;
            var  player = Game.GetPlayerAt(Position);

            foreach (var card in data.Cards)
            {
                tmp = new Card(
                    (CardFigure)card.Figure,
                    (CardColor)card.Color,
                    Position,
                    (CardState)card.State
                    );
                MyCards.Add(tmp);
                player.Hand[index] = tmp;
                index++;
            }
        }
コード例 #10
0
        protected void PutCardCallback(Request request, ActionsSerializer response, object additionalData)
        {
            var card = (Card)additionalData;

            Game.CurrentGame.NextCard(card);
        }