38 lines
1.1 KiB
GDScript
38 lines
1.1 KiB
GDScript
extends Interactable
|
|
|
|
func set_open (is_open: bool) -> void:
|
|
$Sprite2D.play("open" if is_open else "closed")
|
|
|
|
func _on_interacted() -> void:
|
|
%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)
|
|
|
|
for sarcophagus in get_tree().get_nodes_in_group("sarcophagi"):
|
|
sarcophagus.set_open(sarcophagus == self)
|
|
|
|
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)
|