extends RefCounted class_name JuiceGenerator static func generate_juice(item:Item): var tentativeItemOverride = check_for_overrides(item) if tentativeItemOverride != null: return tentativeItemOverride var checkedItem = ItemGenerationUtils.base_item_check(item) checkedItem.itemModifications = item.itemModifications.duplicate(true) if Item.modifications.Knotted in checkedItem.itemModifications: checkedItem.itemModifications.erase(Item.modifications.Knotted) return generate_standard_juice_item(checkedItem) static func check_for_overrides(item): var newItem = null if item.get_name(false) == "Bouncy Ball": newItem = load("res://Items/Artificial/Goo/BouncyGoo.gd").new() elif item.get_name(false) == "Mustard Seed": newItem = load("res://Items/Foods/Condiments/Mustard.gd").new() elif item.get_name(false) == "Maple Tea Bag": newItem = load("res://Items/Foods/Liquids/MapleTea.gd").new() elif item.get_name(false) == "Sticky Hand": newItem = load("res://Items/Artificial/Goo/StickyGoo.gd").new() elif item.itemName == "Sugar Packet": newItem = load("res://Items/Foods/Snack/Sugar.gd").new() elif item.get_name(false) == "Ketchup Packet": newItem = load("res://Items/Foods/Condiments/OldKetchup.gd").new() elif item.get_name(false) == "Relish Packet": newItem = load("res://Items/Foods/Condiments/FakeRelish.gd").new() elif item.get_name(false) == "Wustard Packet": newItem = load("res://Items/Foods/Condiments/Wustard.gd").new() elif item.get_name(false) == "Key Packet": newItem = load("res://Items/Artificial/Products/BrassKey.gd").new() elif item.get_name(false) == "Silica Gel Packet": newItem = load("res://Items/Artificial/Products/SilicaGel.gd").new() elif item.get_name(false) == "Tomato" and Item.modifications.Sugared in item.itemModifications: newItem = load("res://Items/Foods/Condiments/Ketchup.gd").new() return newItem elif item.get_name(false) == "Worm on a String": newItem = item elif item.get_name(false) == "Basket on a String": newItem = item 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_juice_item(item:Item): var juiceItem = Item.new() juiceItem.itemName = item.get_name(false) + " Juice" juiceItem.itemDescription = "The juice of a " + item.get_name(false) + "." juiceItem.value = item.value juiceItem.weight = item.weight juiceItem.hardness = (item.hardness - 20)/6 if juiceItem.hardness < 0: juiceItem.hardness = 0 juiceItem.edibility = item.edibility juiceItem.basketPower = 90 juiceItem.basketabilityDifficulty = 99 juiceItem.flammability = (item.flammability)/6 juiceItem.itemTypes.append(Item.types.Juice) juiceItem.itemModifications = item.itemModifications.duplicate(true) var itemSprite = item.get_sprite(false) var averageColor = SpriteGeneration.get_average_color(itemSprite.get_image()) var defaultJuiceSprite = load("res://Items/Juice/Juice.png") var juiceImage = SpriteGeneration.color_multipy_image(defaultJuiceSprite.get_image(), averageColor) var juiceSprite = ImageTexture.new() juiceSprite = ImageTexture.create_from_image(juiceImage) juiceItem.itemSprite = juiceSprite return juiceItem