extends Node3D var rng = RandomNumberGenerator.new() var spin_amount = 0 var spinning = false var wait_time = 0 var walking = false var walk_dist = 0 # Called when the node enters the scene tree for the first time. func _ready(): pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): var task = "idle" match task: "idle": task = rng.randi_range(0, 100) if task <= 33: task = "walk" elif task > 33 and task <= 50: task = "spin" elif task > 50: task = "wait" "walk": if !walking: walk_dist = rng.randi_range(0, 20) walking = true if walk_dist > 0: # Small change to turn a little while walking. var spin_chance = rng.randi_range(0, 10) if spin_chance <= 1: rotate_y(5) "spin": if !spinning: var spin_amount = rng.randi_range(-360, 360) spinning = true if spin_amount > 0: rotate_y(5) spin_amount -= 5 elif spin_amount < 0: rotate_y(-5) spin_amount += 5 else: task = "idle" spinning = false "wait": # Idle Animation goes here! wait_time += 1 if wait_time == 100: task = "idle" wait_time = 0