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() {
for (int i = 0; i < items.length; i++) {
if (!items[i].name.equals("Aged Brie")
&& !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;
for (Item item : items) {
if (item.name.contains("Sulfuras")) {
// legendaries don't change stats so just skip
continue;
} else if (item.name.contains("Aged Brie")) {
// 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 {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
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;
}
}
}
// just a regular item
if (item.sellIn <= 0) {
item.quality -= 2;
} else {
item.quality --;
}
}
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
items[i].sellIn = items[i].sellIn - 1;
if (item.quality < 0) {
item.quality = 0;
}
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 {
items[i].quality = items[i].quality - items[i].quality;
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
}
item.sellIn--;
}
}
}
}