Files

48 lines
1.0 KiB
GDScript

extends StaticBody2D
@export var biscuit_increment: float
@onready var sequence: Array[int] = []
@onready var is_active: bool = false
@onready var biscuit_fraction: float = 0.0
var hud: Panel
var player: CharacterBody2D
func _process(delta: float):
$ProgressBar.value = biscuit_fraction * 100
if biscuit_fraction < 1.0:
biscuit_fraction += biscuit_increment * delta
biscuit_fraction = min(biscuit_fraction, 1.0)
if not hud: return
if hud.is_fully_completed() && is_active:
sequence = hud.generate_sequence(5)
hud.set_sequence(sequence)
biscuit_fraction = 0.0
hud.hide()
player.try_add_biscuit()
if is_active && biscuit_fraction >= 1.0: hud.show()
if sequence.is_empty():
sequence = hud.generate_sequence(5)
hud.set_sequence(sequence)
func _on_trigger_body_entered(body: Node2D):
if body is not CharacterBody2D: return
is_active = true
if not hud: hud = body.get_node("KeySequence")
if not player: player = body
func _on_trigger_body_exited(body: Node2D):
if body is not CharacterBody2D: return
is_active = false
hud.hide()