sunoku/upgrade.gd

58 lines
1.5 KiB
GDScript

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