Files
JumpRopeOldTech/old_computer.gd
2026-10-18 11:49:30 -05:00

62 lines
1.5 KiB
GDScript

extends CanvasLayer
var disks_wanted = [1, 2, 3, 4]
var disks_loaded = []
var starting_integrity = 2
var total_integrity = starting_integrity + len(disks_wanted)
func _ready() -> void:
$ConsoleText.text = $ConsoleText.text % get_memory_integrity()
func load_disk(disk_num: int) -> bool:
if !disk_num or (disk_num in disks_loaded):
return false
disks_loaded.push_back(disk_num)
disks_wanted.remove_at(disks_wanted.find(disk_num))
print("Loaded up disk ", disk_num)
printline(
">> Loaded data disk %d (of %d). Memory integrity now at %d%%" %
[disk_num, len(disks_wanted) + len(disks_loaded), get_memory_integrity()]
)
if has_finished_initialization():
printline(
">> System initialization complete. Beginning reactivation sequence."
)
printline(
">> Player: Press [E] or [Space] to return to the outside world."
)
return true
func get_next_disk_num() -> int:
if disks_wanted.is_empty():
return 0
return disks_wanted.front()
func get_memory_integrity():
return 100.0 / total_integrity * (starting_integrity + len(disks_loaded))
func has_finished_initialization() -> bool:
return disks_wanted.is_empty()
func open() -> void:
visible = true
$BackgroundPanel/ForegroundPanel/ScreenPanel/OldComputerShader.show()
%Player2D/Parallax2D.hide()
func printline(line: String) -> void:
open()
$ConsoleText.text += "\n" + line
func close() -> void:
if has_finished_initialization():
get_tree().quit()
visible = false
$BackgroundPanel/ForegroundPanel/ScreenPanel/OldComputerShader.hide()
%Player2D/Parallax2D.show()