52 lines
1.3 KiB
GDScript
52 lines
1.3 KiB
GDScript
extends Area2D
|
|
|
|
|
|
@onready var Dialogue : Control = $Dialogue
|
|
|
|
@onready var InteractibleManager = $InteractibleManager
|
|
|
|
@onready var Sprite = $Sprite2D
|
|
|
|
var Player : Node2D
|
|
|
|
@export var Cost : int = 100
|
|
|
|
var playerItem : Dictionary = {"Drill" : preload("res://scenes/drill.tscn")}
|
|
|
|
var Textures : Dictionary = {"Shoes" : preload("res://sprites/runningshoes.png"), "Drill" : preload("res://sprites/drill.png")}
|
|
|
|
var items = ["Shoes", "Drill"]
|
|
|
|
@onready var item = items.pick_random()
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
Player = get_tree().get_first_node_in_group("player")
|
|
|
|
match item:
|
|
"Shoes":
|
|
Cost = 600
|
|
Dialogue.DialogueLabel.text = "Running Shoes"
|
|
"Drill":
|
|
Cost = 1800
|
|
Dialogue.DialogueLabel.text = "Dirt Drill"
|
|
|
|
Sprite.texture = Textures[item]
|
|
|
|
Dialogue.DialogueLabel.text += " - $" + str(Cost)
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
if Input.is_action_just_pressed("interact") and InteractibleManager.selected and Player.Money >= Cost:
|
|
Player.Money -= Cost
|
|
|
|
if item == "Shoes":
|
|
Player.Speed += 300
|
|
Player.GUI.add_item("Shoes")
|
|
if item == "Drill":
|
|
var newDrill = playerItem["Drill"].instantiate()
|
|
Player.add_child(newDrill)
|
|
Player.GUI.add_item("Drill", 5)
|
|
queue_free()
|