extends CharacterBody2D @onready var game = get_parent() func _interact(player: Node2D) -> void: player.get_node("Camera").enabled = false $Camera.enabled = true $InteractArea.monitoring = false player.busy = true await game.dialogue("How may I help you?") var option = await game.make_choice({ "refuel": "Refuel ship", "buy": "Buy items", "exit": "Exit" }) if option == "refuel": await game.dialogue("How much?") var price_per_percentage = 0.433 var price_full = floori((100 - global.stats.fuel) * price_per_percentage) var price_half = floori((50 - global.stats.fuel) * price_per_percentage) var price_quarter = floori((25 - global.stats.fuel) * price_per_percentage) var options = { "full": "Refuel Tank (" + str(price_full)+ "¤)" } if price_half > 0: options.half = "Refuel to 50% (" + str(price_half) + "¤)" if price_quarter > 0: options.quarter = "Refuel to 25% (" + str(price_quarter) + "¤)" options.exit = "Nevermind" var fuel_option = await game.make_choice(options) if fuel_option == "full": if price_full <= global.stats.marks: global.stats.fuel = 100 global.stats.marks -= price_full await game.dialogue("Okay, your tank should be filled to 100%.") else: await game.dialogue("Sorry, but you don't have enough marks for that.") elif fuel_option == "half": if price_half <= global.stats.marks: global.stats.fuel = 50 global.stats.marks -= price_half await game.dialogue("Okay, your tank should be filled to 50%.") else: await game.dialogue("Sorry, but you don't have enough marks for that.") elif fuel_option == "quarter": if price_quarter <= global.stats.marks: global.stats.fuel = 25 global.stats.marks -= price_quarter await game.dialogue("Okay, your tank should be filled to 25%.") else: await game.dialogue("Sorry, but you don't have enough marks for that.") player.get_node("Camera").enabled = true $Camera.enabled = false $InteractArea.monitoring = true player.busy = false return