39 lines
1.3 KiB
GDScript
39 lines
1.3 KiB
GDScript
extends Node3D
|
|
|
|
@onready var player: Node3D = get_tree().get_first_node_in_group("player")
|
|
@onready var player_ray: Node3D = get_tree().get_first_node_in_group("player_ray")
|
|
|
|
#var ingredients = {"Pot": "pristine_key"}
|
|
var ingredients = []
|
|
|
|
var dialogue
|
|
|
|
func _ready() -> void:
|
|
## Load in the correct dialogue tree for the character
|
|
dialogue = load("res://dialogue/" + self.name.to_lower() + ".dialogue")
|
|
|
|
func _physics_process(_delta: float) -> void:
|
|
if has_node("InteractLabel"):
|
|
if player_ray.is_colliding() and player_ray.get_collider() == self:
|
|
$InteractLabel.show()
|
|
else:
|
|
$InteractLabel.hide()
|
|
|
|
func interact():
|
|
|
|
#if Global.dialogue_wait == false:
|
|
#DialogueManager.show_dialogue_balloon(dialogue, "start")
|
|
#print("res://dialogue/" + self.name + ".dialogue")
|
|
|
|
if player.keys.has("pristine_key") and not ingredients.has("pristine_key"):
|
|
ingredients.append("pristine_key")
|
|
print(ingredients)
|
|
|
|
##TODO Ideally find way to not have to for loop
|
|
##TODO Make screen asking player what they want to put in the pot
|
|
##Creates a rusty key if the player puts the right ingredients into the pot
|
|
if player.keys.has("pristine_key") and player.inventory.has("hydrogen_peroxide") and player.inventory.has("vinegar"):
|
|
for i in player.keys.size():
|
|
if player.keys[i] == "pristine_key":
|
|
player.keys[i] = "rusty_key"
|