fuzzyworld

godot-shooter / commit

Identify the currently-targeted enemy.

1d4ba5a6429e3a2bf32e9a65b81b89f80d7b95be · Pavel Safronov · 2023-11-02 13:46:04 -0700 · parents cf2013fa8637

Identify the currently-targeted enemy.
 Enemy.gd   | 2 ++
 Enemy.tscn | 8 +++++++-
 World.gd   | 7 +++++++
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/Enemy.gd b/Enemy.gd
index 4465dc2..8dd0993 100644
--- a/Enemy.gd
+++ b/Enemy.gd
@@ -10,6 +10,7 @@ const Smoke = preload("res://Smoke.tscn")
 export var move_speed = 25
 export var health = -1
 export var max_health = 10
+export var is_targeted = false
 signal enemy_killed
 
 var velocity = Vector2.ZERO
@@ -27,6 +28,7 @@ func _ready() -> void:
 func _process(_delta: float) -> void:
 	$Graphics/Alive/Container/HealthLabel.text = "%s / %s" % [health, max_health]
 	$Graphics/Alive/Container.global_rotation = 0
+	$Graphics/Alive/Target.visible = is_targeted	
 
 func _physics_process(_delta: float) -> void:
 	if dead:
diff --git a/Enemy.tscn b/Enemy.tscn
index 0681cae..bd729e6 100644
--- a/Enemy.tscn
+++ b/Enemy.tscn
@@ -1,7 +1,8 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=6 format=2]
 
 [ext_resource path="res://assets/kenney_simple-space/PNG/Default/enemy_A.png" type="Texture" id=1]
 [ext_resource path="res://Enemy.gd" type="Script" id=2]
+[ext_resource path="res://assets/kenney_simple-space/PNG/Default/icon_plusLarge.png" type="Texture" id=3]
 
 [sub_resource type="Animation" id=1]
 length = 0.001
@@ -91,6 +92,11 @@ margin_right = 25.0
 margin_bottom = 51.0
 text = "HEALTH"
 
+[node name="Target" type="Sprite" parent="Graphics/Alive"]
+visible = false
+modulate = Color( 1, 0, 0, 1 )
+texture = ExtResource( 3 )
+
 [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
 polygon = PoolVector2Array( 0, -23, -7, 5, -12, 9, -19, 9, -23, 14, -23, 19, -19, 23, -14, 23, -9, 19, -9, 14, -10, 12, -6, 9, 0, 15, 6, 9, 10, 12, 9, 14, 9, 19, 13, 23, 18, 23, 23, 18, 23, 14, 19, 10, 13, 10, 7, 5 )
 
diff --git a/World.gd b/World.gd
index e0ee32e..d775f99 100644
--- a/World.gd
+++ b/World.gd
@@ -70,7 +70,14 @@ func _on_ShootTimer_timeout() -> void:
 		return
 	var enemies = get_tree().get_nodes_in_group("enemies")
 	if enemies.size() > 0:
+		Utils.log("enemies length", enemies.size())
 		enemies.sort_custom(self, "sort_enemies_ascending_distance")
+		for enemy in enemies:
+			var diff_to_player: Vector2 = enemy.position - $Player.position
+			var dist_to_player = diff_to_player.length()
+			Utils.log("enemy pos", enemy.position, "dist_to_player", dist_to_player)
+			enemy.is_targeted = false
 		var closest_enemy: Enemy = enemies[0]
 		$Player.shoot_at(closest_enemy.global_position)
+		closest_enemy.is_targeted = true