static void PlayGame(TcpClient client) { try { var gameSettings = client.ReadJson <GameSettings>(); var worldState = client.ReadJson <JObject>(); client.WriteJson(new PlayerMessage { MessageType = MessageType.Info, Message = JObjectHelper.CreateSimple("Hello, hero! welcome to the grand tournament") }); var mainConnection = ConnectToServer(); mainConnection.WriteJson(gameSettings); mainConnection.WriteJson(worldState); var server = ConnectToServer(); Proxy.CreateChainAndStart(server, client); var resultTask = mainConnection.ReadJsonAsync <GameResult>(); resultTask.ContinueWith(x => { Console.WriteLine(x.IsFaulted ? $"Cant get game results. Reason: {x.Exception}" : "The game was finished with the following results:" + Environment.NewLine + x.Result.ToString()); }); } catch (Exception e) { Console.WriteLine("something went wrong..."); Console.WriteLine(e.ToString()); } }
public void SendError(Exception e) { var msh = new PlayerMessage { MessageType = MessageType.Error, Message = JObjectHelper.CreateSimple <string>(e.GetType().Name + ": " + e.Message) }; try { client.WriteJson(msh); } catch { } }