extends Interactable var disks_wanted = [1, 2, 3, 4] var disks_loaded = [] var starting_integrity = 2 var total_integrity = starting_integrity + len(disks_wanted) 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)) return true func get_memory_integrity(): return 100.0 / total_integrity * (starting_integrity + len(disks_loaded)) func _on_interacted() -> void: #%OldComputer.open() %Player2D.spawn_point = global_position var wanted_disk = disks_wanted.front() if %Player2D.complete_objective("sarc"): %OldComputer.open() %Player2D.give_objective( "disk%d" % wanted_disk, wanted_disk, "Locate data disk %d" % wanted_disk ) return if not %Player2D.take_disk(wanted_disk): return if not load_disk(wanted_disk): return %Player2D.complete_objective("disk%d" % wanted_disk) print("Loaded up disk ", wanted_disk) %OldComputer.printline( ">> Loaded data disk %d (of %d). Memory integrity now at %d%%" % [wanted_disk, len(disks_wanted) + len(disks_loaded), get_memory_integrity()] ) wanted_disk = disks_wanted.front() if (not wanted_disk) or %Player2D.has_disk(wanted_disk): return %Player2D.give_objective("disk%d" % wanted_disk, wanted_disk, "Locate data disk %d" % wanted_disk)