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() def update_quality()
@items.each do |item| @items.each do |item|
if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert" case item.name
if item.quality > 0 when "Aged Brie"
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"
item.sell_in = item.sell_in - 1 item.sell_in = item.sell_in - 1
end item.quality = item.quality + 1 unless item.quality >= 50
if item.sell_in < 0 return
if item.name != "Aged Brie" when "Backstage passes to a TAFKAL80ETC concert"
if item.name != "Backstage passes to a TAFKAL80ETC concert" item.sell_in = item.sell_in - 1
if item.quality > 0 if item.sell_in < 0
if item.name != "Sulfuras, Hand of Ragnaros" item.quality = 0
item.quality = item.quality - 1 elsif item.sell_in < 5
end item.quality = item.quality + 3
end elsif item.sell_in < 10
else item.quality = item.quality + 2
item.quality = item.quality - item.quality
end
else else
if item.quality < 50 item.quality = item.quality + 1
item.quality = item.quality + 1
end
end 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 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 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)] items = [Item.new("Sulfuras, Hand of Ragnaros", 1, 49)]
item = items.first
GildedRose.new(items).update_quality() GildedRose.new(items).update_quality()
expect(items[0].sell_in).to eq 1 expect(items[0].sell_in).to eq 1
expect(items[0].quality).to eq 49 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 end
it "'Backstage passes', like aged brie, increases in Quality as its SellIn value approaches" do 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 expect(items[0].sell_in).to eq -1
end 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
end end