extends NPC var rng = RandomNumberGenerator.new() var hopSpeed = -400 var minX = 0 var maxX = 0 var waitTimer = 0 var hopping = false var flipChance = false func _ready(): characterName = "Kid" pronouns = "she/her" minX = position.x maxX = position.x + 500 func _process(delta): waitTimer -= delta if waitTimer <= 0: if $Sprite.animation != "default": wait_between_actions() else: pick_next_action() if hopping: if $Sprite.frame >= 1: position.x += hopSpeed*delta flipChance = true else: if flipChance: flipChance = false if rng.randi_range(0, 1) == 1: hopSpeed = hopSpeed*-1 $Sprite.flip_h = !$Sprite.flip_h if 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, 1) $Sprite.play("default") func pick_next_action(): hopping = false var nextActionResult = rng.randi_range(0, 4) if nextActionResult <= 3: hop() elif nextActionResult <= 4: wait_between_actions() func hop(): $Sprite.play("Prance") waitTimer = rng.randi_range(2, 4) hopping = true