mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-09 11:41:37 +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 {
|
export class GildedRose {
|
||||||
items: Array<Item>;
|
items: Array<Item>;
|
||||||
|
|
||||||
@ -19,49 +26,50 @@ export class GildedRose {
|
|||||||
|
|
||||||
updateQuality() {
|
updateQuality() {
|
||||||
for (let i = 0; i < this.items.length; i++) {
|
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') {
|
let item = this.items[i];
|
||||||
if (this.items[i].quality > 0) {
|
|
||||||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
|
if (item.name == ItemNames.sulfuras) {
|
||||||
this.items[i].quality = this.items[i].quality - 1
|
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 {
|
} else {
|
||||||
if (this.items[i].quality < 50) {
|
// if the sellIn date has passed
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
if (item.sellIn < 0) {
|
||||||
if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') {
|
item.quality -= 2;
|
||||||
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
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (this.items[i].quality < 50) {
|
// if it is within the sellin date
|
||||||
this.items[i].quality = this.items[i].quality + 1
|
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;
|
return this.items;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user