Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends KinematicBody2D
- var motion: Vector2 = Vector2.ZERO
- var speed = 110
- var player = null
- var in_attack_range = false
- var path = []
- var level_navigation: Navigation2D = null
- onready var line2d = $Line2D
- func _ready():
- yield(get_tree(), "idle_frame")
- var tree = get_tree()
- if tree.has_group("level_navigation"):
- level_navigation = tree.get_nodes_in_group("level_navigation")[0]
- if tree.has_group("player"):
- player = tree.get_nodes_in_group("player")[0]
- func _physics_process(delta):
- line2d.global_position = Vector2.ZERO
- move_and_slide(motion)
- func _navigate():
- if path.size() > 0:
- print(path[1], " Target point")
- motion = self.position.direction_to(path[1]) * speed
- for point in path:
- if position == point:
- print(point, " On point")
- if global_position == path[0]:
- path.remove(0)
- print(path)
- #_update_path()
- func _update_path():
- if level_navigation != null and player != null and !path.empty():
- path = level_navigation.get_simple_path(position, player.global_position, false)
- line2d.points = path
- print("New path generated (updated)")
- print(path)
- func _generate_path():
- path = []
- if level_navigation != null and player != null:
- path = level_navigation.get_simple_path(position, player.global_position, false)
- line2d.points = path
- print("New path generated")
- print(path)
- func _clear_path():
- path = []
- func _sentry():
- motion = Vector2.ZERO
- func _on_Area2D_body_entered(body):
- if "Bullet" in body.name:
- queue_free()
- func _on_Aggro_Range_body_entered(body):
- if "Player" in body.name:
- in_attack_range = true
- func _on_Aggro_Range_body_exited(body):
- if "Player" in body.name:
- in_attack_range = false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement