extends Interactable func set_open (is_open: bool) -> void: $Sprite2D.play("open" if is_open else "closed") func _on_interacted() -> void: for sarcophagus in get_tree().get_nodes_in_group("sarcophagi"): sarcophagus.set_open(sarcophagus == self) await get_tree().create_timer(0.15).timeout %OldComputer.open() #Accomodate some collision antics. var new_spawn_point = global_position + Vector2(0,-10) if %Player2D.spawn_point != new_spawn_point: %Player2D.spawn_point = new_spawn_point %OldComputer.printline(">> Respawn point set to %s" % new_spawn_point) var wanted_disk = %OldComputer.get_next_disk_num() 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) and %OldComputer.load_disk(wanted_disk)): return %Player2D.complete_objective("disk%d" % wanted_disk) wanted_disk = %OldComputer.get_next_disk_num() 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)