Hey guys,
I made a simple enemy node.
It works ok for changing direction every frame, but for some reason whenever I don't change Vector2 Variable inside the _process function Godot seems to treat it as an Object class instance and spits error:
"Invalid operands 'Object' and 'float' in operator '*'.".
I don't really understand why this is since it's already defined onready variable.
I would like to change directions only when timer times out, could you please tell me where is my mistake here?

here is my code:
extends KinematicBody2D
export var speed= 300
onready var dir= Vector2(1, 1)
func _ready():
get_input()
pass
func _process(delta):
get_input()
dir= move_and_collide(dir*delta)
pass
func get_input():
var player_dir= Vector2.ZERO
if(randf()> 0.5):
player_dir.x= randf()
else:
player_dir.x= -randf()
if(randf()> 0.5):
player_dir.y= randf()
else:
player_dir.y= -randf()
dir= player_dir.normalized()* speed
pass
func _on_Area2D_area_entered(_area):
queue_free()
pass
func _on_Timer_timeout():
get_input()
pass