diff --git a/lib/gilded_rose.dart b/lib/gilded_rose.dart index 604c119..01c7722 100644 --- a/lib/gilded_rose.dart +++ b/lib/gilded_rose.dart @@ -93,6 +93,21 @@ class SulfurasUpdater implements ItemUpdater { } } +class ConjuredItemUpdater implements ItemUpdater { + @override + void update(Item item) { + // Conjured items degrade twice as fast as normal items + _degradeQuality(item, 2); + + item.sellIn -= 1; + + // After sell-by date, quality degrades twice as fast (4x total) + if (item.sellIn < 0) { + _degradeQuality(item, 2); + } + } +} + class GildedRose { List items; @@ -112,6 +127,8 @@ class GildedRose { return AgedBrieUpdater(); } else if (item.name == 'Backstage passes to a TAFKAL80ETC concert') { return BackstagePassUpdater(); + } else if (item.name.startsWith('Conjured')) { + return ConjuredItemUpdater(); } else { return NormalItemUpdater(); }