refactor of business logic!

This commit is contained in:
Alvin Abia 2022-07-01 15:51:56 -07:00
parent a63115e57f
commit 9ddf30fefa

View File

@ -8,55 +8,42 @@ class GildedRose {
} }
public void updateQuality() { public void updateQuality() {
for (int i = 0; i < items.length; i++) { for (Item item : items) {
if (!items[i].name.equals("Aged Brie") if (item.name.contains("Sulfuras")) {
&& !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { // legendaries don't change stats so just skip
if (items[i].quality > 0) { continue;
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) { } else if (item.name.contains("Aged Brie")) {
items[i].quality = items[i].quality - 1; // handling special aged brie rules
if (item.quality < 50) {
if (item.sellIn <= 0) {
item.quality += 2;
} else {
item.quality++;
} }
} }
} else if (item.name.contains("Backstage passes")) {
// handling backstage passes
if (item.sellIn <= 0) {
item.quality = 0;
} else if (item.sellIn <= 5) {
item.quality += 3;
} else if (item.sellIn <= 10) {
item.quality += 2;
}
} else { } else {
if (items[i].quality < 50) { // just a regular item
items[i].quality = items[i].quality + 1; if (item.sellIn <= 0) {
item.quality -= 2;
if (items[i].name.equals("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.equals("Sulfuras, Hand of Ragnaros")) {
items[i].sellIn = items[i].sellIn - 1;
}
if (items[i].sellIn < 0) {
if (!items[i].name.equals("Aged Brie")) {
if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].quality > 0) {
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
items[i].quality = items[i].quality - 1;
}
}
} else { } else {
items[i].quality = items[i].quality - items[i].quality; item.quality --;
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
} }
} }
if (item.quality < 0) {
item.quality = 0;
} }
item.sellIn--;
} }
} }
} }