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) var memory_integrity = get_memory_integrity() var percent_color = "red" if memory_integrity > 90: percent_color = "green" elif memory_integrity > 35: percent_color = "orange" printline( ">> Loaded data disk %d (of [color=green]%d[/color]). Memory integrity now at [color=%s]%d%%[/color]" % [disk_num, len(disks_wanted) + len(disks_loaded), percent_color, memory_integrity] ) if has_finished_initialization(): printline( ">> [color=green]System initialization complete[/color]. Beginning reactivation sequence." ) printline( ">> [color=#4278ff]Player[/color]: Press [color=#4278ff][E][/color] or [color=#4278ff][Space][/color] 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()