courier/scripts/gui.gd

76 lines
2 KiB
GDScript

extends CanvasLayer
@export var Player : Node2D
@onready var MoneyCounter = $Panel/List/MoneyCounter
@onready var CurrentAddress = $Panel/List/CurrentAddress
@onready var TimeLeft = $Panel/List/TimeLeft
@onready var MatchTimer = $Timer
@onready var ItemTextures = {"Shoes" : preload("res://sprites/runningshoes.png"), "Drill" : preload("res://sprites/drill.png")}
@onready var ItemGrid = $Panel/Items
@export var ItemCounter : PackedScene
@onready var EndGame = $EndGame
@onready var EndGameLabel = $EndGame/Label
@onready var StartGame = $StartGame
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if Input.is_action_just_pressed("interact"):
if(StartGame.visible == true):
Player.Frozen = false
StartGame.hide()
MoneyCounter.text = "$" + str(Player.Money)
if roundi(MatchTimer.time_left)%60 < 10:
TimeLeft.text = str(roundi(MatchTimer.time_left)/60) + ":0" + str(roundi(MatchTimer.time_left)%60)
else:
TimeLeft.text = str(roundi(MatchTimer.time_left)/60) + ":" + str(roundi(MatchTimer.time_left)%60)
if Player.ActiveContract:
CurrentAddress.text = Player.ActiveContract.get_address()
else:
CurrentAddress.text = "No Active Contract"
func add_item(name: String, number : int = 1):
if not ItemGrid.has_node(name):
var newItem = ItemCounter.instantiate()
newItem.name = name
newItem.Count = number
ItemGrid.add_child(newItem)
ItemGrid.get_node(name).ItemTexture.texture = ItemTextures[name]
else:
ItemGrid.get_node(name).Count += number
func remove_item(name: String, number : int = 1):
if ItemGrid.has_node(name):
var item = ItemGrid.get_node(name)
item.Count -= number
if item.Count <= 0:
item.queue_free()
func _on_timer_timeout() -> void:
Player.Frozen = true
EndGame.show()
EndGameLabel.text += " $" + str(Player.Money)