extends Area2D class_name Upgrade @export var inventory : Control @onready var sprite = $CanvasLayer/Sprite2D var dragging = false var last_position var layer = 0 var cost = 100 enum UpgradeTypes{PLUS,MINUS} var upgrade : UpgradeTypes = UpgradeTypes.PLUS func _ready(): sprite.global_position = global_position last_position = sprite.position func _process(delta): if not dragging: return sprite.global_position = get_global_mouse_position() func _input(event): if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed: inventory.call_deferred("update_calculations") dragging = false Globals.mouse_dragging = false var inventory_position = inventory.global_to_inventory_coords(sprite.global_position) if inventory_position != null: inventory.player.money -= cost match upgrade: UpgradeTypes.PLUS: add_value(inventory_position) inventory.update_stats() queue_free() else: sprite.position = last_position func add_value(inventory_position : Vector2i): inventory.items[0][inventory_position.y][inventory_position.x].set_value(inventory.items[0][inventory_position.y][inventory_position.x]._value+1) func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void: if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT and event.pressed and inventory.player.money >= cost: dragging = true Globals.mouse_dragging = true