Added Conjured item

This commit is contained in:
Paul Robinson 2019-03-25 11:42:27 +00:00
parent 78080adc89
commit 329effa522
2 changed files with 47 additions and 40 deletions

View File

@ -6,48 +6,43 @@ class GildedRose
def update_quality()
@items.each do |item|
if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert"
if item.quality > 0
if item.name != "Sulfuras, Hand of Ragnaros"
item.quality = item.quality - 1
end
end
else
if item.quality < 50
item.quality = item.quality + 1
if item.name == "Backstage passes to a TAFKAL80ETC concert"
if item.sell_in < 11
if item.quality < 50
item.quality = item.quality + 1
end
end
if item.sell_in < 6
if item.quality < 50
item.quality = item.quality + 1
end
end
end
end
end
if item.name != "Sulfuras, Hand of Ragnaros"
case item.name
when "Aged Brie"
item.sell_in = item.sell_in - 1
end
if item.sell_in < 0
if item.name != "Aged Brie"
if item.name != "Backstage passes to a TAFKAL80ETC concert"
if item.quality > 0
if item.name != "Sulfuras, Hand of Ragnaros"
item.quality = item.quality - 1
end
end
else
item.quality = item.quality - item.quality
end
item.quality = item.quality + 1 unless item.quality >= 50
return
when "Backstage passes to a TAFKAL80ETC concert"
item.sell_in = item.sell_in - 1
if item.sell_in < 0
item.quality = 0
elsif item.sell_in < 5
item.quality = item.quality + 3
elsif item.sell_in < 10
item.quality = item.quality + 2
else
if item.quality < 50
item.quality = item.quality + 1
end
item.quality = item.quality + 1
end
return
when "Conjured item"
item.sell_in = item.sell_in - 1
if item.sell_in < 0
item.quality = item.quality - 4
else
item.quality = item.quality - 2
end
item.quality = 0 if item.quality < 0
return
when "Sulfuras, Hand of Ragnaros"
return
else
item.sell_in = item.sell_in - 1
if item.sell_in < 0
item.quality = item.quality - 2
else
item.quality = item.quality - 1
end
item.quality = 0 if item.quality < 0
return
end
end
end

View File

@ -45,10 +45,12 @@ describe GildedRose do
it "'Sulfuras', being a legendary item, never has to be sold or decreases in Quality" do
items = [Item.new("Sulfuras, Hand of Ragnaros", 1, 49)]
item = items.first
GildedRose.new(items).update_quality()
expect(items[0].sell_in).to eq 1
expect(items[0].quality).to eq 49
10.times { GildedRose.new(items).update_quality() }
expect(items[0].sell_in).to eq 1
expect(items[0].quality).to eq 49
end
it "'Backstage passes', like aged brie, increases in Quality as its SellIn value approaches" do
@ -84,6 +86,16 @@ describe GildedRose do
expect(items[0].sell_in).to eq -1
end
it "'Conjured' items degrade in Quality twice as fast as normal items" do
items = [Item.new("Conjured item", 10, 10)]
GildedRose.new(items).update_quality()
expect(items[0].quality).to eq 8
expect(items[0].sell_in).to eq 9
4.times { GildedRose.new(items).update_quality() }
expect(items[0].quality).to eq 0
expect(items[0].sell_in).to eq 5
end
end
end