extends KinematicBody2D onready var SNOWBALL_BLUE_SCENE = preload("res://Enemies/snowball_blue.tscn") var player = null var move = Vector2.ZERO var speed = 1 func _physics_process(delta: float) -> void: move = Vector2.ZERO if player != null: move = position.direction_to(player.position) * speed else: move = Vector2.ZERO move = move.normalized() move = move_and_collide(move) func _on_Area2D_body_entered(body: Node) -> void: if body != self && !(body.name.begins_with("tree")) && !(body.name.begins_with("snowmen_enemy")) && !(body.name.begins_with("wall")): player = body func _on_Area2D_body_exited(body: Node) -> void: if !(body.name.begins_with("tree")) && !(body.name.begins_with("snowmen_enemy")) && !(body.name.begins_with("wall")): player = null func fire(): var snowball = SNOWBALL_BLUE_SCENE.instance() snowball.position = get_global_position() snowball.player = player get_parent().add_child(snowball) $Timer.set_wait_time(1) func _on_Timer_timeout() -> void: if player != null: fire()