80 lines
2.2 KiB
GDScript
80 lines
2.2 KiB
GDScript
extends Control
|
|
|
|
@export var days_left : int = 6
|
|
@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
|
|
@export var next_button : Button
|
|
|
|
signal new_day
|
|
|
|
@export var current_target_label : Label
|
|
@export var power_bar : TextureProgressBar
|
|
@export var next_target_label : Label
|
|
@export var levels : Array[HackLevel]
|
|
var ending_text : String
|
|
|
|
var power_vis : float = 0
|
|
|
|
# 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)
|
|
next_button.disabled = time_left > 10
|
|
if days_left == 0:
|
|
next_button.text = "End Game"
|
|
else:
|
|
next_button.text = "Proceed to next day ->"
|
|
update_power()
|
|
|
|
if PlayerInventory.botnet_servers < power_vis:
|
|
power_vis = PlayerInventory.botnet_servers
|
|
else:
|
|
power_vis = clampf(power_vis + (delta * 5),0,PlayerInventory.botnet_servers)
|
|
|
|
func has_time(time : float) -> bool:
|
|
return time_left >= time
|
|
|
|
func use_time(time : float):
|
|
time_left -= time
|
|
|
|
|
|
func _on_next_day_pressed() -> void:
|
|
if days_left >= 1:
|
|
days_left -= 1
|
|
time_left = 200
|
|
new_day.emit()
|
|
else:
|
|
get_tree().change_scene_to_file("res://scenes/ending.tscn")
|
|
PlayerInventory.hide()
|
|
Clock.hide()
|
|
Locations.hide()
|
|
pass
|
|
|
|
func update_power():
|
|
var current_level : HackLevel
|
|
var next_level : HackLevel
|
|
for x in range(levels.size()):
|
|
if levels[x].power <= power_vis:
|
|
current_level = levels[x]
|
|
if x < levels.size()-1:
|
|
next_level = levels[x+1]
|
|
else:
|
|
next_level = current_level
|
|
power_bar.min_value = current_level.power
|
|
power_bar.max_value = next_level.power
|
|
power_bar.value = power_vis
|
|
power_bar.self_modulate = next_level.color
|
|
next_target_label.text = str(round((next_level.power-power_vis)*10)/10) + " to next target"
|
|
current_target_label.text = current_level.name
|
|
if power_vis >= next_level.power:
|
|
next_target_label.text = "Max Hacking Level"
|
|
ending_text = current_level.ending_text
|