extends RefCounted class_name CandyGenerator static func generate_candy(item:Item): var tentativeItemOverride = check_for_overrides(item) if tentativeItemOverride != null: return tentativeItemOverride return generate_standard_candy_item(item) static func check_for_overrides(item): var newItem = null if newItem != null: newItem.itemModifications = item.itemModifications.duplicate(true) if Item.modifications.Knotted in newItem.itemModifications: newItem.itemModifications.erase(Item.modifications.Knotted) return newItem static func generate_standard_candy_item(item:Item): var candyItem = Item.new() var itemNameWords = item.get_name(false).split(" ") var itemName = "" var itemWordIndex = 0 while itemWordIndex < itemNameWords.size(): var currentWord = itemNameWords[itemWordIndex] if !(itemWordIndex == (itemNameWords.size() - 1) and currentWord == "Juice"): if itemName != "": itemName += " " itemName += currentWord itemWordIndex += 1 candyItem.itemName = itemName + " Candy" candyItem.itemDescription = "Some " + item.get_name(false) + " solidified into a sugary candy." candyItem.value = item.value + 5 candyItem.weight = item.weight candyItem.hardness = item.hardness + 50 candyItem.edibility = item.edibility + 20 candyItem.basketPower = 45 candyItem.basketabilityDifficulty = 50 candyItem.flammability = item.flammability * 3 candyItem.itemTypes.append(Item.types.Candy) candyItem.itemModifications = [] var itemSprite = item.get_sprite(false) var averageColor = SpriteGeneration.get_average_color(itemSprite.get_image(), [Color.BLACK]) var defaultCandySprite = load("res://Items/Candy/Candy.png") var candyImage = SpriteGeneration.color_multipy_image(defaultCandySprite.get_image(), averageColor) var candySprite = ImageTexture.new() candySprite = ImageTexture.create_from_image(candyImage) candyItem.itemSprite = candySprite return candyItem