public static ItemInformation Parse(string objectInformation, int itemID = 0) { var info = new ItemInformation { ID = itemID }; var parts = objectInformation.Split('/'); info.Name = parts[0]; info.Price = int.Parse(parts[1]); info.Edibility = int.Parse(parts[2]); var typeAndCategory = parts[3].Split(' '); info.Type = typeAndCategory[0].ToEnum <ObjectType>(); if (typeAndCategory.Length > 1) { info.Category = typeAndCategory[1].ToEnum <CategoryID>(); } info.Description = parts[4]; if (parts.Length > 5) { if (info.Category == CategoryID.Fish) { var dayTimeAndSeasons = parts[5].Split('^'); info.FishDayTime = dayTimeAndSeasons[0].Split(' ').Select(d => d.ToEnum <DayTime>()).ToList(); info.FishSeason = dayTimeAndSeasons[1].Split(' ').Select(d => d.ToEnum <Season>()).ToList(); } else if (info.Type == ObjectType.Arch) { var archChances = parts[5].Split(' '); info.ArchChances = new List <ArchChance>(); for (var i = 0; i < archChances.Length; i += 2) { info.ArchChances.Add(new ArchChance { Location = archChances[i], Chance = decimal.Parse(archChances[i + 1]), }); } info.ArchAdditionalInfo = parts[6]; } else { info.MealCategory = parts[5].ToEnum <MealCategory>(); info.SkillUps = SkillUpInformation.Parse(parts[6]); info.Duration = int.Parse(parts[7]); } } return(info); }
public CookingRecipeInformation(ItemInformation item, params IngredientInfo[] ingredients) : this(item.ID, item.Name, ingredients) { }