示例#1
0
        public static RecordReport MergeReport
        (
            [NotNull] RecordReport first,
            [NotNull] RecordReport second
        )
        {
            RecordReport result = new RecordReport
            {
                Defects = first.Defects.Concat(second.Defects)
                          .ToList(),
                Description = first.Description,
                Gold        = first.Gold + second.Gold - 1000,
                Mfn         = first.Mfn,
                Index       = first.Index
            };

            return(result);
        }
示例#2
0
        public RecordReport CheckRecord
        (
            [NotNull] RuleContext context
        )
        {
            RecordReport result = new RecordReport
            {
                Description = context.Client.FormatRecord
                              (
                    context.BriefFormat,
                    context.Record.Mfn
                              ),
                Index = context.Record.FM("903"),
                Mfn   = context.Record.Mfn
            };

            RuleUtility.RenumberFields
            (
                context.Record
            );

            result.Gold = 1000;
            int bonus = 0;

            foreach (IrbisRule rule in Rules)
            {
                RuleReport oneReport = rule.CheckRecord(context);
                result.Defects.AddRange(oneReport.Defects);
                result.Gold -= oneReport.Damage;
                bonus       += oneReport.Bonus;
            }

            if (result.Gold >= 900)
            {
                result.Gold += bonus;
            }

            return(result);
        }