Files
Archipelago-Game/Entities/Characters/Animals/Chicken/Scripts/npc_chicken.gd
2026-03-19 13:27:37 -06:00

39 lines
991 B
GDScript

extends CharacterBody2D
enum States {
IDLE,
PECKING
}
@export var minimum_pecking_schedule_gap := 8.0
@export var maximum_pecking_schedule_gap := 25.0
@export var should_log_pecking_schedule := false
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
var current_state := States.IDLE
var pecking_sched := randf_range(8.0, 25.0)
var pecking_timer := 0.0
func _ready() -> void:
_print_sched()
func _process(delta: float) -> void:
if current_state == States.IDLE:
pecking_timer += delta
if pecking_timer >= pecking_sched:
current_state = States.PECKING
animated_sprite_2d.play("pecking")
await animated_sprite_2d.animation_finished
animated_sprite_2d.play("idle")
pecking_sched = randf_range(minimum_pecking_schedule_gap, maximum_pecking_schedule_gap)
pecking_timer = 0
current_state = States.IDLE
_print_sched()
func _print_sched() -> void:
if should_log_pecking_schedule:
print("%s Pecking Schedule: %f" % [name, pecking_sched])