Merge branch 'main' into cpage4

This commit is contained in:
Matt Decker 2022-07-04 14:51:17 -05:00 committed by GitHub
commit e3935d3fc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1 @@

View File

@ -6,8 +6,10 @@ class GildedRose {
public static final String SULFURAS = "Sulfuras, Hand of Ragnaros"; public static final String SULFURAS = "Sulfuras, Hand of Ragnaros";
public static final String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert"; public static final String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
public static final String CONJURED = "Conjured Mana Cake"; public static final String CONJURED = "Conjured Mana Cake";
private Item[] items; private Item[] items;
private Item[] items; private Item[] items;
public GildedRose(Item... items) { public GildedRose(Item... items) {
@ -21,6 +23,7 @@ class GildedRose {
} }
private void updateItemQuality(Item item) { private void updateItemQuality(Item item) {
boolean isExpired = item.sellIn < 1; boolean isExpired = item.sellIn < 1;
int degradeRate = determineDegradeRate(item, isExpired); int degradeRate = determineDegradeRate(item, isExpired);
boolean doesDegrade = !item.name.equals(AGED_BRIE) && !item.name.equals(BACKSTAGE) && !item.name.equals(SULFURAS); boolean doesDegrade = !item.name.equals(AGED_BRIE) && !item.name.equals(BACKSTAGE) && !item.name.equals(SULFURAS);
@ -30,6 +33,18 @@ class GildedRose {
adjustQuality(item, degradeRate); adjustQuality(item, degradeRate);
} }
int degradeRate = item.name.equals(CONJURED) ? -2 : -1;
if (!item.name.equals(AGED_BRIE)
&& !item.name.equals(BACKSTAGE)) {
if (item.quality > 0) {
if (!item.name.equals(SULFURAS)) {
adjustQuality(item, degradeRate);
}
}
} else {
adjustQuality(item, 1);
if (item.name.equals(AGED_BRIE)) { if (item.name.equals(AGED_BRIE)) {
int adjustment = isExpired ? 2 : 1; int adjustment = isExpired ? 2 : 1;
adjustQuality(item, adjustment); adjustQuality(item, adjustment);
@ -44,10 +59,27 @@ class GildedRose {
} }
} }
private void updateBackStagePass(Item item, boolean isExpired) { private void updateBackStagePass(Item item, boolean isExpired) {
adjustQuality(item, 1); adjustQuality(item, 1);
if (item.sellIn < 11) { if (item.sellIn < 11) {
adjustQuality(item, 1); adjustQuality(item, 1);
if (item.sellIn < 0) {
if (!item.name.equals(AGED_BRIE)) {
if (!item.name.equals(BACKSTAGE)) {
if (!item.name.equals(SULFURAS)) {
adjustQuality(item, degradeRate);
}
} else {
item.quality = item.quality - item.quality;
}
} else {
int adjustment = 1;
adjustQuality(item, adjustment);
}
}
} }
if (item.sellIn < 6) { if (item.sellIn < 6) {