mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
Rest of the world
This commit is contained in:
parent
c2f64846b2
commit
fd938e05ba
@ -13,48 +13,51 @@ class GildedRose {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
private int getDecreasedQuality(int oldQuality, int factor){
|
||||
return Math.max(oldQuality - factor, 0);
|
||||
}
|
||||
|
||||
private int getIncreasedQuality(Item item, int factor) {
|
||||
return Math.min(item.quality + factor, 50);
|
||||
}
|
||||
|
||||
private void decreaseQualityOfNormalItems(Item item) {
|
||||
int decreaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
item.quality = getDecreasedQuality(item.quality, decreaseFactor);
|
||||
}
|
||||
|
||||
private void increaseQualityOfBries(Item item) {
|
||||
int increaseFactor = (item.sellIn > 0) ? 1 : 2;
|
||||
item.quality = getIncreasedQuality(item, increaseFactor);
|
||||
}
|
||||
|
||||
private void changeQualityOfPasses(Item item) {
|
||||
if (item.sellIn < 0) {
|
||||
item.quality = 0;
|
||||
} else if (item.sellIn < 5) {
|
||||
item.quality = getIncreasedQuality(item, 3);
|
||||
} else if (item.sellIn < 10) {
|
||||
item.quality = getIncreasedQuality(item, 2);
|
||||
} else
|
||||
item.quality = getIncreasedQuality(item, 1);
|
||||
}
|
||||
|
||||
public void updateQuality() {
|
||||
Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.equals(sulfuras)).toArray(Item[]::new);
|
||||
for (Item item : agingItems) {
|
||||
if (!item.name.equals(agedBrie) && !item.name.equals(backStagePasses)) {
|
||||
if (item.quality > 0) {
|
||||
item.quality = item.quality - 1;
|
||||
}
|
||||
} else {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
if (item.name.equals(backStagePasses)) {
|
||||
if (item.sellIn < 11) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
}
|
||||
if (item.sellIn < 6) {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item[] bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie)).toArray(Item[]::new);
|
||||
Item[] backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses)).toArray(Item[]::new);
|
||||
Item[] otherItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie)).toArray(Item[]::new);
|
||||
for (Item item : otherItems) {
|
||||
item.sellIn = item.sellIn - 1;
|
||||
|
||||
if (item.sellIn < 0) {
|
||||
if (!item.name.equals(agedBrie)) {
|
||||
if (!item.name.equals(backStagePasses)) {
|
||||
if (item.quality > 0) {
|
||||
item.quality = item.quality - 1;
|
||||
}
|
||||
} else {
|
||||
item.quality = 0;
|
||||
}
|
||||
} else {
|
||||
if (item.quality < 50) {
|
||||
item.quality = item.quality + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
decreaseQualityOfNormalItems(item);
|
||||
}
|
||||
for (Item brie : bries) {
|
||||
brie.sellIn = brie.sellIn - 1;
|
||||
increaseQualityOfBries(brie);
|
||||
}
|
||||
for (Item item : backstagePasses) {
|
||||
item.sellIn = item.sellIn - 1;
|
||||
changeQualityOfPasses(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user