keys and doors working
This commit is contained in:
47
scripts/key_door.gd
Normal file
47
scripts/key_door.gd
Normal file
@@ -0,0 +1,47 @@
|
||||
extends Node3D
|
||||
|
||||
@onready var level_control = get_tree().current_scene
|
||||
|
||||
@export var anim_player : Node
|
||||
@export var door_open_start : bool = false
|
||||
@export_enum("Silver", "Gold", "Special") var key_type_required: int
|
||||
@export var special_key_name : String
|
||||
|
||||
var door_open : bool
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
door_open = door_open_start
|
||||
|
||||
if door_open:
|
||||
open()
|
||||
else:
|
||||
close()
|
||||
|
||||
func open():
|
||||
door_open = true
|
||||
anim_player.play("open")
|
||||
|
||||
func close():
|
||||
door_open = false
|
||||
anim_player.play("close")
|
||||
|
||||
func interact():
|
||||
if !door_open:
|
||||
print("checking keys..." + str(level_control.keys))
|
||||
|
||||
var exit = false
|
||||
|
||||
for i in level_control.keys:
|
||||
if !exit:
|
||||
if i[0] == key_type_required:
|
||||
if key_type_required == 2:
|
||||
if i[1] == special_key_name:
|
||||
open()
|
||||
level_control.keys.erase(i)
|
||||
exit = true
|
||||
else:
|
||||
open()
|
||||
level_control.keys.erase(i)
|
||||
exit = true
|
||||
Reference in New Issue
Block a user