refactoring duplicated Logic

This commit is contained in:
Christos Giannouris 2022-11-14 13:51:58 +01:00
parent 8c0a90a544
commit dc21f1c2bd

View File

@ -21,47 +21,40 @@ export class GildedRose {
updateQuality() { updateQuality() {
for (let i = 0; i < this.items.length; i++) { for (let i = 0; i < this.items.length; i++) {
if ([CNST.AGED_BRIE, CNST.BCST_TAF].includes(this.items[i].name)) { const iterationItem = this.items[i];
if (this.items[i].quality > 0) { if (
if (this.items[i].name != CNST.SULFURAS) { [CNST.AGED_BRIE, CNST.BCST_TAF].includes(iterationItem.name) &&
this.items[i].quality = this.items[i].quality - 1; iterationItem.quality > 0
} ) {
} iterationItem.quality = iterationItem.quality - 1;
} else { } else {
if (this.items[i].quality < 50) { if (iterationItem.quality < 50) {
this.items[i].quality = this.items[i].quality + 1; iterationItem.quality = iterationItem.quality + 1;
if (this.items[i].name == CNST.BCST_TAF) { if (iterationItem.name == CNST.BCST_TAF) {
if (this.items[i].sellIn < 11) { if (iterationItem.sellIn < 11) {
if (this.items[i].quality < 50) { iterationItem.quality = iterationItem.quality + 1;
this.items[i].quality = this.items[i].quality + 1;
}
}
if (this.items[i].sellIn < 6) {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1;
}
} }
} }
} }
} }
if (this.items[i].name != CNST.SULFURAS) { if (iterationItem.name != CNST.SULFURAS) {
this.items[i].sellIn = this.items[i].sellIn - 1; iterationItem.sellIn = iterationItem.sellIn - 1;
} }
if (this.items[i].sellIn < 0) { if (iterationItem.sellIn < 0) {
if (this.items[i].name != CNST.AGED_BRIE) { if (iterationItem.name != CNST.AGED_BRIE) {
if (this.items[i].name != CNST.BCST_TAF) { if (iterationItem.name != CNST.BCST_TAF) {
if (this.items[i].quality > 0) { if (iterationItem.quality > 0) {
if (this.items[i].name != CNST.SULFURAS) { if (iterationItem.name != CNST.SULFURAS) {
this.items[i].quality = this.items[i].quality - 1; iterationItem.quality = iterationItem.quality - 1;
} }
} }
} else { } else {
this.items[i].quality = iterationItem.quality =
this.items[i].quality - this.items[i].quality; iterationItem.quality - iterationItem.quality;
} }
} else { } else {
if (this.items[i].quality < 50) { if (iterationItem.quality < 50) {
this.items[i].quality = this.items[i].quality + 1; iterationItem.quality = iterationItem.quality + 1;
} }
} }
} }