35 lines
725 B
GDScript
35 lines
725 B
GDScript
extends StateNode
|
|
|
|
|
|
@export var wait_duration : float = 1
|
|
var wait_remaining : float = 0
|
|
var next_state : String
|
|
var next_state_args : Array = []
|
|
var actor
|
|
func exit() -> void:
|
|
actor.show_speech_bubble("")
|
|
|
|
func _process(delta: float) -> void:
|
|
if wait_remaining > 0:
|
|
wait_remaining -= delta
|
|
if wait_remaining <= 0:
|
|
wait_remaining = 0
|
|
complete_state()
|
|
|
|
func execute(subject, ...args : Array) -> void:
|
|
wait_remaining = wait_duration
|
|
actor = subject
|
|
|
|
if len(args) > 0 and args[0] != "":
|
|
subject.show_speech_bubble(args[0])
|
|
|
|
if len(args) > 1 and args[1] != "":
|
|
next_state = args[1]
|
|
else:
|
|
next_state = ""
|
|
|
|
if len(args) > 2 and args[2] != "":
|
|
next_state_args = args[2]
|
|
else:
|
|
next_state_args = []
|