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 func printline(line: String) -> void: open() $ConsoleText.text += "\n" + line func close() -> void: if has_finished_initialization(): get_tree().quit() visible = false