improve and update ai

This commit was merged in pull request #32.
This commit is contained in:
2026-06-21 09:24:05 +00:00
parent 5dd8f8092c
commit efb7a78cf1
82 changed files with 7342 additions and 2889 deletions

View File

@@ -4,7 +4,9 @@ class_name State
@export var state_id: StringName = &""
@export var next_state_id: StringName
@export var random_next_state_ids: Array[StringName] = []
@export var animation_name: String
@export var blend_time: float = 0.2
@export var exit_on_action_finished: bool
@export var exit_on_animation_finished: bool
@export var min_wait_time: float = 3.0
@@ -47,7 +49,7 @@ func physics_update(_delta: float) -> void:
func run_animation() -> void:
if agent.anim_player and agent.anim_player.has_animation(animation_name):
agent.anim_player.play(animation_name)
agent.anim_player.play(animation_name, blend_time)
func _on_animation_finished(anim_name: StringName) -> void:
if animation_name == anim_name:
@@ -57,7 +59,12 @@ func _on_animation_finished(anim_name: StringName) -> void:
var wait_time := randf_range(min_wait_time, max_wait_time)
runtime_timer.start(wait_time)
else:
transitioned.emit(self, next_state_id)
transitioned.emit(self, get_next_state())
func _on_timer_timeout() -> void:
transitioned.emit(self, next_state_id)
transitioned.emit(self, get_next_state())
func get_next_state() -> StringName:
if random_next_state_ids.size() > 0:
return random_next_state_ids.pick_random()
return next_state_id