mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-17 23:41:27 +00:00
Rest of the world
This commit is contained in:
parent
c2f64846b2
commit
fd938e05ba
@ -13,48 +13,51 @@ class GildedRose {
|
|||||||
this.items = items;
|
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() {
|
public void updateQuality() {
|
||||||
Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.equals(sulfuras)).toArray(Item[]::new);
|
Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.equals(sulfuras)).toArray(Item[]::new);
|
||||||
for (Item item : agingItems) {
|
Item[] bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie)).toArray(Item[]::new);
|
||||||
if (!item.name.equals(agedBrie) && !item.name.equals(backStagePasses)) {
|
Item[] backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses)).toArray(Item[]::new);
|
||||||
if (item.quality > 0) {
|
Item[] otherItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie)).toArray(Item[]::new);
|
||||||
item.quality = item.quality - 1;
|
for (Item item : otherItems) {
|
||||||
}
|
|
||||||
} 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.sellIn = item.sellIn - 1;
|
item.sellIn = item.sellIn - 1;
|
||||||
|
decreaseQualityOfNormalItems(item);
|
||||||
if (item.sellIn < 0) {
|
}
|
||||||
if (!item.name.equals(agedBrie)) {
|
for (Item brie : bries) {
|
||||||
if (!item.name.equals(backStagePasses)) {
|
brie.sellIn = brie.sellIn - 1;
|
||||||
if (item.quality > 0) {
|
increaseQualityOfBries(brie);
|
||||||
item.quality = item.quality - 1;
|
}
|
||||||
}
|
for (Item item : backstagePasses) {
|
||||||
} else {
|
item.sellIn = item.sellIn - 1;
|
||||||
item.quality = 0;
|
changeQualityOfPasses(item);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (item.quality < 50) {
|
|
||||||
item.quality = item.quality + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user