public void LoadDetails(JsonTextReader reader)
    {
        if (reader == null)
        {
            return;
        }

        string currValue = "";

        while (reader.Read())
        {
            if (reader.Value != null)
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    currValue = (string)reader.Value;
                }
                else
                {
                    switch (currValue)
                    {
                    case "Username":
                        username = (string)reader.Value;
                        break;

                    case "Human":
                        human = (bool)reader.Value;
                        break;

                    default:
                        break;
                    }
                }
            }
            else if (reader.TokenType == JsonToken.StartObject || reader.TokenType == JsonToken.StartArray)
            {
                switch (currValue)
                {
                case "TeamColor":
                    teamColor = LoadManager.LoadColor(reader);
                    break;

                case "Resources":
                    CachedResourceManager.LoadResources(reader);
                    break;

                case "Units":
                    LoadRTSAgents(reader);
                    break;

                default:
                    break;
                }
            }
            else if (reader.TokenType == JsonToken.EndObject)
            {
                return;
            }
        }
    }