Beispiel #1
0
        public Engine(IList <Item> items)
        {
            _items = items;
            Immutable.Add("Sulfuras, Hand of Ragnaros");
            IncreasesInQuality.Add("Aged Brie");
            AccelleratesInQuality.Add("Backstage passes");
            DegradesFast.Add("Conjured");

            _rules = new Dictionary <Func <Item, bool>, Action <Item> >
            {
                {
                    i => i.Name.StartsWithAny(IncreasesInQuality) || i.Name.StartsWithAny(AccelleratesInQuality),
                    i => i.Quality = i.Quality + 2
                },
                { i => i.Name.StartsWithAny(IncreasesInQuality) && i.SellIn < 0, i => i.Quality++ },
                { i => i.Name.StartsWithAny(AccelleratesInQuality) && i.SellIn < 11, i => i.Quality++ },
                { i => i.Name.StartsWithAny(AccelleratesInQuality) && i.SellIn < 6, i => i.Quality++ },
                { i => i.Name.StartsWithAny(AccelleratesInQuality) && i.SellIn < 0, i => i.Quality = 0 },
                {
                    i => !IncreasesInQuality.Contains(i.Name) && !AccelleratesInQuality.Contains(i.Name) && i.SellIn < 0,
                    i => i.Quality--
                },
                { i => i.Name.StartsWithAny(DegradesFast), i => i.Quality-- }
            };
        }