mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 22:41:30 +00:00
119 lines
2.1 KiB
C#
119 lines
2.1 KiB
C#
using System;
|
|
|
|
namespace csharpcore
|
|
{
|
|
public class Item
|
|
{
|
|
public string Name { get; set; }
|
|
public int SellIn { get; set; }
|
|
public int Quality { get; set; }
|
|
|
|
public virtual void UpdateQuality()
|
|
{
|
|
Quality -= 1;
|
|
|
|
SellIn -= 1;
|
|
|
|
if (SellIn < 0)
|
|
{
|
|
Quality -= 1;
|
|
}
|
|
|
|
if (Quality < 0)
|
|
{
|
|
Quality = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class AgedBrieItem : Item
|
|
{
|
|
public AgedBrieItem()
|
|
{
|
|
Name = "Aged Brie";
|
|
}
|
|
|
|
public override void UpdateQuality()
|
|
{
|
|
Quality += 1;
|
|
|
|
SellIn -= 1;
|
|
|
|
if (SellIn < 0)
|
|
{
|
|
Quality += 1;
|
|
}
|
|
|
|
if (Quality > 50)
|
|
{
|
|
Quality = 50;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class BackstagePassesItem : Item
|
|
{
|
|
public BackstagePassesItem()
|
|
{
|
|
Name = "Backstage passes to a TAFKAL80ETC concert";
|
|
}
|
|
|
|
public override void UpdateQuality()
|
|
{
|
|
Quality += 1;
|
|
|
|
if (SellIn < 11)
|
|
{
|
|
Quality += 1;
|
|
}
|
|
|
|
if (SellIn < 6)
|
|
{
|
|
Quality += 1;
|
|
}
|
|
|
|
if (Quality > 50)
|
|
{
|
|
Quality = 50;
|
|
}
|
|
|
|
SellIn -= 1;
|
|
|
|
if (SellIn < 0)
|
|
{
|
|
Quality = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class SulfurasItem : Item
|
|
{
|
|
public SulfurasItem()
|
|
{
|
|
Name = "Sulfuras, Hand of Ragnaros";
|
|
}
|
|
|
|
public override void UpdateQuality() { }
|
|
}
|
|
|
|
public class ConjuredItem : Item
|
|
{
|
|
public override void UpdateQuality()
|
|
{
|
|
Quality -= 2;
|
|
|
|
SellIn -= 1;
|
|
|
|
if (SellIn < 0)
|
|
{
|
|
Quality -= 2;
|
|
}
|
|
|
|
if (Quality < 0)
|
|
{
|
|
Quality = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|