/// <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); }
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); } }
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); }
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); }
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); }
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); } }
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 )); } } } }
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++; } }
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++; } }
protected void PutCardCallback(Request request, ActionsSerializer response, object additionalData) { var card = (Card)additionalData; Game.CurrentGame.NextCard(card); }