mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
conjured item extends standard item
This commit is contained in:
parent
c4e303ef70
commit
5df478fa29
@ -1,31 +1,13 @@
|
|||||||
package com.gildedrose.item;
|
package com.gildedrose.item;
|
||||||
|
|
||||||
public class ConjuredItem implements CustomisedItem {
|
public class ConjuredItem extends StandardItem {
|
||||||
|
|
||||||
private final Item item;
|
|
||||||
|
|
||||||
public ConjuredItem(Item item) {
|
public ConjuredItem(Item item) {
|
||||||
this.item = item;
|
super(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateState() {
|
@Override
|
||||||
decreaseSellByDayValueByOne();
|
public int decreasingValueOverZeroDaysToSell() {
|
||||||
if (sellByDayValueIsOverZero()) {
|
return 2;
|
||||||
decreaseQualityBy(2);
|
|
||||||
} else {
|
|
||||||
decreaseQualityBy(4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void decreaseSellByDayValueByOne() {
|
|
||||||
item.sellIn -= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean sellByDayValueIsOverZero() {
|
|
||||||
return item.sellIn > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void decreaseQualityBy(int qualityValue) {
|
|
||||||
item.quality -= qualityValue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,12 +11,16 @@ public class StandardItem implements CustomisedItem {
|
|||||||
public void updateState() {
|
public void updateState() {
|
||||||
decreaseSellByDayValueByOne();
|
decreaseSellByDayValueByOne();
|
||||||
if (sellByDayValueIsOverZero()) {
|
if (sellByDayValueIsOverZero()) {
|
||||||
decreaseQualityBy(1);
|
decreaseQualityBy(decreasingValueOverZeroDaysToSell());
|
||||||
} else {
|
} else {
|
||||||
decreaseQualityBy(2);
|
decreaseQualityBy(decreasingValueForZeroOrLessDaysToSell());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int decreasingValueOverZeroDaysToSell() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
private void decreaseSellByDayValueByOne() {
|
private void decreaseSellByDayValueByOne() {
|
||||||
item.sellIn -= 1;
|
item.sellIn -= 1;
|
||||||
}
|
}
|
||||||
@ -28,4 +32,8 @@ public class StandardItem implements CustomisedItem {
|
|||||||
private void decreaseQualityBy(int qualityValue) {
|
private void decreaseQualityBy(int qualityValue) {
|
||||||
item.quality -= qualityValue;
|
item.quality -= qualityValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int decreasingValueForZeroOrLessDaysToSell() {
|
||||||
|
return decreasingValueOverZeroDaysToSell() * 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user