the-third-place/scenes/goose.gd
Henry 2a7e1a2b6c Updated goose_talk to allow for interruptions (unfinished); improved
chicken animation, reduced scale in-engine.
2026-02-14 17:46:02 +00:00

45 lines
1.3 KiB
GDScript

extends Area2D
var goose_talking: bool = false
func _ready() -> void:
EventBus.goose_talk.connect(_on_goose_talk)
func _on_goose_talk(frame_index: int):
#var quacking = get_tree().create_timer(3).timeout
if goose_talking == false:
print("QUACK")
#goose_talking = true
self.show()
$DapperGoose/Bubble.set_frame(frame_index)
var tween = create_tween()
tween.tween_property(self, "position:x", position.x - 50, .5).set_ease(tween.EASE_OUT)
await tween.finished
$DapperGoose/Bubble.show()
$DapperGoose/Quacking.start()
await $DapperGoose/Quacking.timeout
$DapperGoose/Bubble.hide()
goose_talking = false
tween = create_tween()
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
await tween.finished
self.hide()
if goose_talking == true:
print("I'm interrupting")
$DapperGoose/Quacking.stop()
$DapperGosse/Bubble.set_frame(frame_index)
$DapperGoose/Quacking.start()
await $DapperGoose/Quacking.timeout
$DapperGoose/Bubble.hide()
goose_talking = false
tween = create_tween()
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
await tween.finished
self.hide()