Skip to content

Instantly share code, notes, and snippets.

@bearlikelion
Created January 20, 2025 20:00
Show Gist options
  • Save bearlikelion/e20cb2ab46df2e5bf2904ce8ffd897f5 to your computer and use it in GitHub Desktop.
Save bearlikelion/e20cb2ab46df2e5bf2904ce8ffd897f5 to your computer and use it in GitHub Desktop.
SurvivalScape's Enemy Targeting Code
func target_enemy() -> void:
Player.target_enemy = null
var enemies_in_range : Array[Area2D] = get_overlapping_areas()
if enemies_in_range.size() > 0:
enemies_in_range = enemies_in_range.slice(0, 100)
can_fire = true
for enemy : Node2D in enemies_in_range:
# Always target boss if in range
if enemy.is_in_group("boss"):
Player.target_enemy = enemy
break
# Ignore lava_font
if enemy.is_in_group("lava_font"):
enemies_in_range.erase(enemy)
if Player.target_enemy == null:
enemies_in_range.sort_custom(sort_closest)
Player.target_enemy = enemies_in_range.front()
func sort_closest(a: Node2D, b: Node2D) -> bool:
return a.global_position.distance_to(player.global_position) < b.global_position.distance_to(player.global_position)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment