Cow_Life_Sim_RPG/ItemGeneration/JuiceGenerator.gd

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