88 lines
3.3 KiB
GDScript
88 lines
3.3 KiB
GDScript
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
|