Cow_Life_Sim_RPG/ItemGeneration/CandyGenerator.gd

64 lines
1.9 KiB
GDScript

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