76 lines
2 KiB
GDScript
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)
|
|
|