64 lines
1.9 KiB
GDScript
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
|