RustHacker/time_system/clock.gd

47 lines
1.1 KiB
GDScript3
Raw Normal View History

2026-01-11 16:37:57 +11:00
extends Control
2026-01-17 12:56:17 +11:00
@export var days_left : int = 6
2026-01-11 16:37:57 +11:00
@export var time_left : int = 200
var starting_time : int = 200
@export var bar : TextureProgressBar
@export var timer_text : Label
@export var days_text : Label
2026-01-14 22:15:18 +11:00
@export var next_button : Button
2026-01-11 16:37:57 +11:00
2026-01-17 17:07:53 +11:00
signal new_day
2026-01-11 16:37:57 +11:00
# 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:
bar.value = (starting_time-time_left)/float(starting_time)
timer_text.text = str(time_left)
days_text.text = str(days_left)
2026-01-14 22:15:18 +11:00
next_button.disabled = time_left > 10
if days_left == 0:
next_button.text = "End Game"
else:
next_button.text = "Proceed to next day ->"
2026-01-11 16:37:57 +11:00
func has_time(time : float) -> bool:
return time_left >= time
func use_time(time : float):
time_left -= time
func _on_next_day_pressed() -> void:
2026-01-14 22:15:18 +11:00
if days_left >= 1:
days_left -= 1
time_left = 200
2026-01-17 17:07:53 +11:00
new_day.emit()
2026-01-14 22:15:18 +11:00
else:
get_tree().change_scene_to_file("res://scenes/ending.tscn")
PlayerInventory.hide()
Clock.hide()
2026-01-17 13:42:34 +11:00
Locations.hide()
2026-01-14 22:15:18 +11:00
pass