Enemy.gd 738 B

123456789101112131415161718192021222324252627282930313233343536
  1. extends KinematicBody2D
  2. var vida = 2
  3. var speed = 35
  4. var type = 1
  5. func damage(arg, id):
  6. vida += arg
  7. if vida <= 0:
  8. get_parent().death_count(id)
  9. queue_free()
  10. var motion = Vector2()
  11. var target
  12. onready var reaction_time = int(rand_range(20,60))
  13. func _ready():
  14. var array = get_node('../../players').get_children()
  15. array.shuffle()
  16. if array.size() > 0:
  17. target = array[0]
  18. var dir_buffer = 0
  19. var tick = 0
  20. export var tickrate = 4
  21. func _physics_process(delta):
  22. tick += 1
  23. if fmod(tick,tickrate) == 0:
  24. if target == null: _ready()
  25. if target == null: return
  26. dir_buffer += 1
  27. if fmod(dir_buffer,reaction_time) == 0:
  28. motion = (target.global_position - global_position).normalized() * speed
  29. position += motion*delta*tickrate