extends NPC var rng = RandomNumberGenerator.new() var hopSpeed = -200 var minX = 0 var maxX = 0 var waitTimer = 0 var hopping = false func _ready(): characterName = "Julie" pronouns = "she/her" minX = position.x - 100 maxX = position.x + 50 func _process(delta): waitTimer -= delta if waitTimer <= 0: if $Sprite.animation != "default": wait_between_actions() else: pick_next_action() if hopping: if $Sprite.frame >= 2 and $Sprite.frame <= 3: position.x += hopSpeed*delta elif position.x <= minX and hopSpeed < 0: hopSpeed = hopSpeed*-1 $Sprite.flip_h = true elif position.x >= maxX and hopSpeed > 0: hopSpeed = hopSpeed*-1 $Sprite.flip_h = false func wait_between_actions(): hopping = false waitTimer = rng.randf_range(0.5, 3) $Sprite.play("default") func pick_next_action(): hopping = false var nextActionResult = rng.randi_range(0, 4) if nextActionResult <= 1: hop() elif nextActionResult <= 2: flap() elif nextActionResult <= 3: bounce() elif nextActionResult <= 4: wait_between_actions() func hop(): $Sprite.play("Hop") waitTimer = 1.5 hopping = true func flap(): $Sprite.play("Flap") waitTimer = 1.7 func bounce(): $Sprite.play("Bounce") waitTimer = rng.randf_range(2, 5)