private static HumanoidCharacterProfile ConvertProfiles(Profile profile) { var jobs = profile.Jobs.ToDictionary(j => j.JobName, j => (JobPriority)j.Priority); var antags = profile.Antags.Select(a => a.AntagName); var sex = Sex.Male; if (Enum.TryParse <Sex>(profile.Sex, true, out var sexVal)) { sex = sexVal; } var clothing = ClothingPreference.Jumpsuit; if (Enum.TryParse <ClothingPreference>(profile.Clothing, true, out var clothingVal)) { clothing = clothingVal; } var backpack = BackpackPreference.Backpack; if (Enum.TryParse <BackpackPreference>(profile.Backpack, true, out var backpackVal)) { backpack = backpackVal; } var gender = sex == Sex.Male ? Gender.Male : Gender.Female; if (Enum.TryParse <Gender>(profile.Gender, true, out var genderVal)) { gender = genderVal; } // ReSharper disable once ConditionalAccessQualifierIsNonNullableAccordingToAPIContract var markingsRaw = profile.Markings?.Deserialize <List <string> >(); List <Marking> markings = new(); if (markingsRaw != null) { foreach (var marking in markingsRaw) { var parsed = Marking.ParseFromDbString(marking); if (parsed is null) { continue; } markings.Add(parsed); } } var markingsSet = new MarkingsSet(markings); return(new HumanoidCharacterProfile( profile.CharacterName, profile.FlavorText, profile.Species, profile.Age, sex, gender, new HumanoidCharacterAppearance ( profile.HairName, Color.FromHex(profile.HairColor), profile.FacialHairName, Color.FromHex(profile.FacialHairColor), Color.FromHex(profile.EyeColor), Color.FromHex(profile.SkinColor), markingsSet ), clothing, backpack, jobs, (PreferenceUnavailableMode)profile.PreferenceUnavailable, antags.ToList() )); }