tdd-katas/lib/gilded_rose.dart

71 lines
1.9 KiB
Dart

// WARNING: DO NOT modify the Item class - the goblin in the corner will insta-rage!
class Item {
String name;
int sellIn;
int quality;
Item(this.name, this.sellIn, this.quality);
@override
String toString() => '$name, $sellIn, $quality';
}
class GildedRose {
List<Item> items;
GildedRose(this.items);
void updateQuality() {
for (var i = 0; i < items.length; i++) {
if (items[i].name != 'Aged Brie' &&
items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
if (items[i].quality > 0) {
if (items[i].name != 'Sulfuras, Hand of Ragnaros') {
items[i].quality = items[i].quality - 1;
}
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].name == 'Backstage passes to a TAFKAL80ETC concert') {
if (items[i].sellIn < 11) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
if (items[i].sellIn < 6) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
}
}
}
if (items[i].name != 'Sulfuras, Hand of Ragnaros') {
items[i].sellIn = items[i].sellIn - 1;
}
if (items[i].sellIn < 0) {
if (items[i].name != 'Aged Brie') {
if (items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
if (items[i].quality > 0) {
if (items[i].name != 'Sulfuras, Hand of Ragnaros') {
items[i].quality = items[i].quality - 1;
}
}
} else {
items[i].quality = items[i].quality - items[i].quality;
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
}
}
}
}