예제 #1
0
        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();
        }
예제 #2
0
        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);
        }