diff --git a/go/gilded-rose.go b/go/gilded-rose.go index bac4c479..e95e62bd 100644 --- a/go/gilded-rose.go +++ b/go/gilded-rose.go @@ -4,35 +4,42 @@ type Item struct { name string sellIn, quality int } +func ReduceSulfuraConjureAndOthersQuality(item *Item) { + if item.quality > 0 { + if item.name != "Sulfuras, Hand of Ragnaros" { + if item.name == "Conjured Mana Cake" { + item.quality = item.quality - 2 + } else { + item.quality = item.quality - 1 + } + } + } +} + +func ExtraBackstageOperations(item *Item){ + if item.name == "Backstage passes to a TAFKAL80ETC concert" { + if item.sellIn < 11 { + if item.quality < 50 { + item.quality = item.quality + 1 + } + } + if item.sellIn < 6 { + if item.quality < 50 { + item.quality = item.quality + 1 + } + } + } +} func UpdateQuality(items []*Item) { for i := 0; i < len(items); i++ { if items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - if items[i].name != "Sulfuras, Hand of Ragnaros" { - if items[i].name == "Conjured Mana Cake" { - items[i].quality = items[i].quality - 2 - } else { - items[i].quality = items[i].quality - 1 - } - } - } + ReduceSulfuraConjureAndOthersQuality(items[i]) } else { if items[i].quality < 50 { items[i].quality = items[i].quality + 1 - if items[i].name == "Backstage passes to a TAFKAL80ETC concert" { - if items[i].sellIn < 11 { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - if items[i].sellIn < 6 { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - } + ExtraBackstageOperations(items[i]) } } @@ -43,15 +50,7 @@ func UpdateQuality(items []*Item) { if items[i].sellIn < 0 { if items[i].name != "Aged Brie" { if items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - if items[i].name != "Sulfuras, Hand of Ragnaros" { - if items[i].name == "Conjured Mana Cake" { - items[i].quality = items[i].quality - 2 - } else { - items[i].quality = items[i].quality - 1 - } - } - } + ReduceSulfuraConjureAndOthersQuality(items[i]) } else { items[i].quality = items[i].quality - items[i].quality }