mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
Update gilded-rose.ts
This commit is contained in:
parent
ad19854a2f
commit
3cca51abcf
@ -10,6 +10,13 @@ export class Item {
|
||||
}
|
||||
}
|
||||
|
||||
enum ItemNames {
|
||||
sulfuras = "Sulfuras, Hand of Ragnaros",
|
||||
agedBrie = "Aged Brie",
|
||||
backstagePasses = "Backstage passes to a TAFKAL80ETC concert",
|
||||
conjuredManCake = "Conjured Mana Cake",
|
||||
}
|
||||
|
||||
export class GildedRose {
|
||||
items: Array<Item>;
|
||||
|
||||
@ -19,49 +26,50 @@ export class GildedRose {
|
||||
|
||||
updateQuality() {
|
||||
for (let i = 0; i < this.items.length; i++) {
|
||||
if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
|
||||
if (this.items[i].quality > 0) {
|
||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
||||
this.items[i].quality = this.items[i].quality - 1
|
||||
}
|
||||
let item = this.items[i];
|
||||
|
||||
if (item.name == ItemNames.sulfuras) {
|
||||
item.quality = 80;
|
||||
continue;
|
||||
}
|
||||
|
||||
// update sellIn logic
|
||||
item.sellIn -= 1;
|
||||
|
||||
// update quality
|
||||
|
||||
if (item.name == ItemNames.conjuredManCake) {
|
||||
item.quality -= 2;
|
||||
if (item.sellIn < 0) {
|
||||
item.quality -= 4;
|
||||
}
|
||||
} else if (item.name == ItemNames.agedBrie) {
|
||||
item.quality += 1;
|
||||
} else if (item.name == ItemNames.backstagePasses) {
|
||||
if (item.sellIn > 10) {
|
||||
item.quality += 1;
|
||||
} else if (item.sellIn > 5 && item.sellIn <= 10) {
|
||||
item.quality += 2;
|
||||
} else if (item.sellIn >= 0 && item.sellIn <= 5) {
|
||||
item.quality += 3;
|
||||
} else if (item.sellIn < 0) {
|
||||
item.quality = 0;
|
||||
}
|
||||
} else {
|
||||
if (this.items[i].quality < 50) {
|
||||
this.items[i].quality = this.items[i].quality + 1
|
||||
if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') {
|
||||
if (this.items[i].sellIn < 11) {
|
||||
if (this.items[i].quality < 50) {
|
||||
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 != 'Sulfuras, Hand of Ragnaros') {
|
||||
this.items[i].sellIn = this.items[i].sellIn - 1;
|
||||
}
|
||||
if (this.items[i].sellIn < 0) {
|
||||
if (this.items[i].name != 'Aged Brie') {
|
||||
if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
|
||||
if (this.items[i].quality > 0) {
|
||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
||||
this.items[i].quality = this.items[i].quality - 1
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.items[i].quality = this.items[i].quality - this.items[i].quality
|
||||
}
|
||||
// if the sellIn date has passed
|
||||
if (item.sellIn < 0) {
|
||||
item.quality -= 2;
|
||||
} else {
|
||||
if (this.items[i].quality < 50) {
|
||||
this.items[i].quality = this.items[i].quality + 1
|
||||
}
|
||||
// if it is within the sellin date
|
||||
item.quality -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
// quality can never be negative
|
||||
if (item.quality < 0) item.quality = 0;
|
||||
|
||||
// has a ceiling of 50
|
||||
if (item.quality > 50) item.quality = 50;
|
||||
}
|
||||
|
||||
return this.items;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user