[gd_scene load_steps=6 format=3] [ext_resource type="Script" path="res://scripts/enemy/enemy.gd" id="1"] [ext_resource type="Script" path="res://scripts/components/health.gd" id="2"] [ext_resource type="Script" path="res://scripts/components/shield.gd" id="3"] [ext_resource type="Script" path="res://scripts/enemy/enemy_healthbar.gd" id="4"] [ext_resource type="Script" path="res://scripts/enemy/enemy_movement.gd" id="5"] [ext_resource type="Script" path="res://scripts/enemy/enemy_combat.gd" id="6"] [ext_resource type="Script" path="res://scripts/enemy/enemy_aggro.gd" id="7"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"] radius = 0.4 height = 1.5 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_2"] radius = 0.4 height = 1.5 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_health_bg"] bg_color = Color(0.3, 0.1, 0.1, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_health_fill"] bg_color = Color(0.2, 0.8, 0.2, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_health_fill_aggro"] bg_color = Color(0.2, 0.4, 0.9, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_shield_bg"] bg_color = Color(0.1, 0.1, 0.3, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_shield_fill"] bg_color = Color(0.2, 0.5, 0.9, 1) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"] albedo_color = Color(0.8, 0.1, 0.1, 1) [sub_resource type="SphereMesh" id="SphereMesh_1"] radius = 0.5 height = 1.0 material = SubResource("StandardMaterial3D_1") [sub_resource type="SphereShape3D" id="SphereShape3D_1"] radius = 8.0 [node name="Enemy" type="CharacterBody3D"] script = ExtResource("1") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] shape = SubResource("CapsuleShape3D_1") [node name="Mesh" type="MeshInstance3D" parent="."] mesh = SubResource("SphereMesh_1") [node name="Health" type="Node" parent="."] script = ExtResource("2") [node name="Shield" type="Node" parent="."] script = ExtResource("3") [node name="HitArea" type="Area3D" parent="."] collision_layer = 4 collision_mask = 0 [node name="CollisionShape3D" type="CollisionShape3D" parent="HitArea"] shape = SubResource("CapsuleShape3D_2") [node name="NavigationAgent3D" type="NavigationAgent3D" parent="."] [node name="EnemyMovement" type="Node" parent="."] script = ExtResource("5") [node name="EnemyCombat" type="Node" parent="."] script = ExtResource("6") [node name="EnemyAggro" type="Node" parent="."] script = ExtResource("7") [node name="DetectionArea" type="Area3D" parent="."] collision_layer = 0 collision_mask = 1 monitoring = true [node name="CollisionShape3D" type="CollisionShape3D" parent="DetectionArea"] shape = SubResource("SphereShape3D_1") [node name="Healthbar" type="Sprite3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) billboard = 1 pixel_size = 0.01 script = ExtResource("4") [node name="SubViewport" type="SubViewport" parent="Healthbar"] transparent_bg = true size = Vector2i(104, 29) [node name="Border" type="ColorRect" parent="Healthbar/SubViewport"] offset_right = 104.0 offset_bottom = 29.0 color = Color(1, 0.9, 0.2, 1) [node name="HealthBar" type="ProgressBar" parent="Healthbar/SubViewport"] offset_left = 2.0 offset_top = 2.0 offset_right = 102.0 offset_bottom = 12.0 theme_override_styles/background = SubResource("StyleBoxFlat_health_bg") theme_override_styles/fill = SubResource("StyleBoxFlat_health_fill") max_value = 100.0 value = 100.0 show_percentage = false [node name="ShieldBar" type="ProgressBar" parent="Healthbar/SubViewport"] offset_left = 2.0 offset_top = 15.0 offset_right = 102.0 offset_bottom = 27.0 theme_override_styles/background = SubResource("StyleBoxFlat_shield_bg") theme_override_styles/fill = SubResource("StyleBoxFlat_shield_fill") max_value = 50.0 value = 50.0 show_percentage = false [connection signal="body_entered" from="DetectionArea" to="." method="_on_detection_area_body_entered"] [connection signal="body_exited" from="DetectionArea" to="." method="_on_detection_area_body_exited"]