public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartObject) { var dict = serializer.Deserialize <Dictionary <string, string> >(reader); var cl = new ClientData( dict["username"], dict["address"], Convert.ToInt16(dict["port"]) ); if (dict.ContainsKey("is_werewolf")) { cl.setRole(dict["is_werewolf"].Equals("werewolf")); } return(cl); } throw new JsonSerializationException(); }
private bool addClient(ClientData client) { bool werewolf = new Random().NextDouble() < 0.3; foreach (ClientData ecl in clients) { if (ecl.getUsername().Equals(client.getUsername())) { return(false); } } isClientReady.Add(false); clients.Add(client); if (werewolf) { client.setRole(true); wolves.Add(client); } return(true); }