33 lines
784 B
GDScript
33 lines
784 B
GDScript
extends Interactable
|
|
|
|
var disks_wanted = [1, 2, 3, 4]
|
|
var disks_loaded = []
|
|
|
|
func _ready() -> void:
|
|
pass # Replace with function body.
|
|
|
|
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 _on_interacted() -> void:
|
|
var wanted_disk = disks_wanted.front()
|
|
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)
|
|
|
|
wanted_disk = disks_wanted.front()
|
|
if wanted_disk and %Player2D.has_disk(wanted_disk):
|
|
return
|
|
|
|
%Player2D.give_objective("disk%d" % wanted_disk, "Locate data disk %d" % wanted_disk)
|