extends Window @onready var inventoryItemDisplayer = %Inventory var itemTransitionScene = preload("res://UI/Sugaring/ItemFadeTransition.tscn") var playerInventory:Inventory var sugarItem = preload("res://Items/Foods/Snack/Sugar.gd") var sugarCount = 0 var rng = RandomNumberGenerator.new() func _ready(): inventoryItemDisplayer.buttonPressed.connect(sugar_item) inventoryItemDisplayer.set_title("Normal Items") func opened(): get_tree().paused = true playerInventory = InventoryManager.get_inventory() inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() update_sugar_count() func update_sugar_count(): var sugarHeld = InventoryManager.get_item_count_by_name("Sugar", "normal", true) if sugarHeld > 0: %SugarCount.text = "Sugar Left: " + str(sugarHeld) %SugarParticles.emitting = true else: %SugarCount.text = "OUT OF SUGAR" %SugarParticles.emitting = false sugarCount = sugarHeld func spend_sugar(): InventoryManager.spend_item(sugarItem.new()) func sugar_item(item): if sugarCount <= 0: return spend_sugar() update_sugar_count() InventoryManager.remove_item_from_inventory(item) var sugarItem = item.duplicate() var addSugar = true if item.get_name(false) == "Tomato Juice": sugarItem = load("res://Items/Foods/Condiments/Ketchup.gd").new() addSugar = false if Item.types.Juice in sugarItem.itemTypes and Item.modifications.Concentrated in sugarItem.itemModifications: sugarItem = CandyGenerator.generate_candy(sugarItem) addSugar = false if addSugar: sugarItem.set_modification(Item.modifications.Sugared) InventoryManager.add_item_to_inventory(sugarItem) spawn_item_transition(item, sugarItem) inventoryItemDisplayer.inventory = filter_inventory(playerInventory) inventoryItemDisplayer.update_display() func spawn_item_transition(startItem, sugaredItem): var itemTransition = itemTransitionScene.instantiate() itemTransition.start_transition(startItem.get_sprite(), sugaredItem.get_sprite()) add_child(itemTransition) itemTransition.scale = Vector2(2, 2) itemTransition.position = Vector2(450 + rng.randf_range(-70, 70), 365 + rng.randf_range(-20, 20)) func filter_inventory(inventory): var filteredInv:Inventory = inventory.duplicate() var i = filteredInv.items.size() - 1 while i >= 0: var currentItem = filteredInv.items[i] if currentItem.itemModifications.size() > 0 and not Item.modifications.Concentrated in currentItem.itemModifications: filteredInv.remove_item(currentItem, filteredInv.quantities[i]) i -= 1 return filteredInv func _on_leave_button_pressed(): get_tree().paused = false hide()