Пример #1
0
        private static bool ParseEffectDescription(PgItemEffectCollection effectDescriptionList, string effectDescription, string parsedFile, string parsedKey)
        {
            PgItemEffect ItemEffect;

            if (effectDescription.StartsWith("{") && effectDescription.EndsWith("}"))
            {
                string EffectString = effectDescription.Substring(1, effectDescription.Length - 2);
                if (!ParseItemEffectAttribute(EffectString, parsedFile, parsedKey, out ItemEffect))
                {
                    return(Program.ReportFailure(parsedFile, parsedKey, $"Invalid attribute format '{EffectString}'"));
                }
            }
            else if (effectDescription.Contains("{") || effectDescription.Contains("}"))
            {
                return(Program.ReportFailure(parsedFile, parsedKey, $"Invalid attribute format '{effectDescription}'"));
            }
            else
            {
                ItemEffect = new PgItemEffectSimple()
                {
                    Description = effectDescription
                }
            };

            ParsingContext.AddSuplementaryObject(ItemEffect);
            effectDescriptionList.Add(ItemEffect);
            return(true);
        }
Пример #2
0
        public static bool ParseEffectDescriptionList(PgItemEffectCollection effectDescriptionList, object value, string parsedFile, string parsedKey)
        {
            if (!(value is List <object> ObjectList))
            {
                return(Program.ReportFailure($"Value '{value}' was expected to be a list"));
            }

            foreach (object Item in ObjectList)
            {
                if (!(Item is string EffectDescription))
                {
                    return(Program.ReportFailure($"Value '{Item}' was expected to be a string"));
                }

                if (!ParseEffectDescription(effectDescriptionList, EffectDescription, parsedFile, parsedKey))
                {
                    return(false);
                }
            }

            return(true);
        }