Пример #1
0
        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);
        }
Пример #2
0
 public CookingRecipeInformation(ItemInformation item, params IngredientInfo[] ingredients) : this(item.ID, item.Name, ingredients)
 {
 }