Files
JumpRopeOldTech/pharaoh.gd
T
2026-10-18 00:28:27 -05:00

52 lines
1.4 KiB
GDScript

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()
var wanted_disk = disks_wanted.front()
#Accomodate some collision antics.
%Player2D.spawn_point = global_position + Vector2(0,-10)
if not %Player2D.take_disk(wanted_disk):
if wanted_disk == 1 and not %Player2D.has_objective("disk%d" % wanted_disk):
%OldComputer.open()
%Player2D.give_objective(
"disk%d" % wanted_disk,
wanted_disk, "Locate data disk %d" % 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)