base enemy, it follows you if your noise is greater than 5 (0 to 9) rn
authorEduardo <[email protected]>
Tue, 6 Feb 2024 00:54:09 +0000 (01:54 +0100)
committerEduardo <[email protected]>
Tue, 6 Feb 2024 00:54:09 +0000 (01:54 +0100)
enemies/base_enemy.gd [new file with mode: 0644]
enemies/base_enemy.tscn [new file with mode: 0644]

diff --git a/enemies/base_enemy.gd b/enemies/base_enemy.gd
new file mode 100644 (file)
index 0000000..eae2a62
--- /dev/null
@@ -0,0 +1,27 @@
+extends CharacterBody3D
+
+@export var SPEED := 2.5
+@export var turn_speed := 2.0
+@export_range(0, 9) var noise_threshold := 5
+@export var player: Node3D
+
+@onready var navigation_agent := $NavigationAgent3D
+@onready var pivot := $Pivot
+
+
+func _physics_process(delta):
+       var distance_to_player := global_position.distance_to(player.global_position)
+
+       if player.get_meta("noise") > noise_threshold:
+               # move to player
+               navigation_agent.set_target_position(player.global_transform.origin)
+               var velocity: Vector3 = (
+                       (navigation_agent.get_next_path_position() - transform.origin).normalized()
+                       * SPEED
+                       * delta
+               )
+               move_and_collide(velocity)
+
+               # look at player
+               pivot.look_at(player.global_transform.origin, Vector3.UP)
+               rotate_y(deg_to_rad(pivot.rotation.y * turn_speed))
diff --git a/enemies/base_enemy.tscn b/enemies/base_enemy.tscn
new file mode 100644 (file)
index 0000000..1ddd6ac
--- /dev/null
@@ -0,0 +1,22 @@
+[gd_scene load_steps=4 format=3 uid="uid://6v0x74t1fjxk"]
+
+[ext_resource type="Script" path="res://enemies/base_enemy.gd" id="1_kxqsq"]
+
+[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_aahun"]
+
+[sub_resource type="CapsuleMesh" id="CapsuleMesh_uypfm"]
+
+[node name="BaseEnemy" type="CharacterBody3D"]
+script = ExtResource("1_kxqsq")
+
+[node name="Pivot" type="Node3D" parent="."]
+
+[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
+transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 1, 0)
+shape = SubResource("CapsuleShape3D_aahun")
+
+[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
+transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 1, 0)
+mesh = SubResource("CapsuleMesh_uypfm")
+
+[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."]