myLoveOnlyForYou

Untitled

Jun 7th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. extends KinematicBody2D
  2.  
  3. var SPEED = 100
  4. var velocity = Vector2()
  5. const GRAVITY = 50
  6. var eps = 300
  7. var START_ENEMY_POS = null
  8. var lose_sight_of = null
  9. var patrol_direction = false
  10. var kind_of_patrol = 0
  11. var counter_timer_looking_player = 0
  12. var counter_timer_stay = 0
  13. var stay = true
  14. var if_enemy_in_start_pos = true
  15.  
  16. func _ready():
  17. var node_pos = position
  18. if (node_pos != null):
  19. START_ENEMY_POS = node_pos
  20. pass
  21.  
  22. func _move(direction, new_speed):
  23. if (direction == "right"):
  24. velocity.x = new_speed
  25. elif (direction == "left"):
  26. velocity.x = -new_speed
  27. else:
  28. velocity.x = 0
  29.  
  30. func _patrol(pos, new_speed):
  31. var enemy_pos = position
  32. if (enemy_pos.x > pos.x - eps && patrol_direction == false):
  33. _move("left", new_speed)
  34. elif (enemy_pos.x < pos.x - eps):
  35. patrol_direction = true
  36. if(enemy_pos.x < pos.x + eps && patrol_direction == true):
  37. _move("right", new_speed)
  38. elif (enemy_pos.x > pos.x + eps):
  39. patrol_direction = false
  40.  
  41.  
  42. func _physics_process(delta):
  43. velocity = move_and_slide(velocity, Vector2(0, -1))
  44. var radius = get_node("body/CollisionShape2D").shape.radius
  45. var player_pos = get_node("../Player").get_position()
  46. var enemy_pos = position
  47. # FOLLOW THE DAMN PLAYER, ENEMY
  48. if (abs(player_pos.x - enemy_pos.x) < radius):
  49. if_enemy_in_start_pos = false
  50. stay = true
  51. counter_timer_stay = 0
  52. counter_timer_looking_player = 0
  53. kind_of_patrol = 1
  54. lose_sight_of = enemy_pos
  55. if (player_pos.x < enemy_pos.x):
  56. _move("left", SPEED)
  57. elif (player_pos.x > enemy_pos.x):
  58. _move("right", SPEED)
  59.  
  60. else:
  61. # start position patrol
  62. if (if_enemy_in_start_pos == true):
  63. _patrol(START_ENEMY_POS, SPEED)
  64. print("we are here")
  65. else:
  66. # enemy stopped when he lost player
  67. if (stay == true && counter_timer_stay < 200):
  68. _move("left", 0)
  69. counter_timer_stay += 1
  70. elif (stay == true):
  71. stay = false
  72. else:
  73. # enemy patrols (looking for a player)
  74. if (kind_of_patrol == 1 && lose_sight_of != null && counter_timer_looking_player < 1000):
  75. _patrol(lose_sight_of, SPEED)
  76. counter_timer_looking_player += 1
  77.  
  78. # enemy goes to the start position
  79. # OK FUCK GO BACK sad :(
  80. elif (enemy_pos == START_ENEMY_POS):
  81. # STAY HERE MOTHERFUCKER
  82. _move("stay", SPEED)
  83. if_enemy_in_start_pos = true
  84. elif (enemy_pos.x < START_ENEMY_POS.x):
  85. _move("right", SPEED)
  86. else:
  87. _move("left", SPEED)
  88. if is_on_floor():
  89. velocity.y = 0
  90. else:
  91. velocity.y += GRAVITY
Advertisement
Add Comment
Please, Sign In to add comment