scout_strategy.gd 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. extends Node2D
  2. class_name ScoutStrategy
  3. signal attack
  4. signal explore
  5. signal new_destination(pos: Vector2)
  6. var safe_point: Vector2 = Vector2(0, 0)
  7. @onready var behavior: StateChart = $Behavior
  8. func set_safe_point(pos: Vector2) -> void:
  9. self.safe_point = pos
  10. #-----------------------------------------------------------------------------#
  11. # Explore State
  12. func _on_exploring_state_entered() -> void:
  13. self.explore.emit()
  14. # Callable to connect to EnemyTracker's enemy_position_known signal
  15. func _on_enemy_tracker_enemy_position_known() -> void:
  16. self.behavior.send_event("attack")
  17. #-----------------------------------------------------------------------------#
  18. # Attack State
  19. func _on_attacking_state_entered() -> void:
  20. self.attack.emit()
  21. #Callable to connect to EnemyTracker's enemy_position_unsure signal
  22. func _on_enemy_tracker_enemy_position_unsure() -> void:
  23. self.behavior.send_event("enemy_lost")
  24. #-----------------------------------------------------------------------------#
  25. # NormalOperation State
  26. # Callable to connect to danger signal
  27. func _on_enemy_danger() -> void:
  28. self.behavior.send_event("flee")
  29. #-----------------------------------------------------------------------------#
  30. # Fleeing State
  31. func _on_fleeing_state_entered() -> void:
  32. self.new_destination.emit(self.safe_point)