[gd_scene load_steps=16 format=3 uid="uid://myjcm7eg043b"] [ext_resource type="Script" path="res://enemies/turret/plasma_turret.gd" id="1_5cmh7"] [ext_resource type="PackedScene" uid="uid://ccsrmndqy43ph" path="res://enemies/turret/turret.tscn" id="1_5hqga"] [ext_resource type="PackedScene" uid="uid://b7mq56myq16y6" path="res://enemies/EnemyWeaponSlot.tscn" id="2_eiq1i"] [ext_resource type="PackedScene" uid="uid://mlq22lwd7tip" path="res://enemies/player_detector.tscn" id="2_we0x8"] [ext_resource type="Resource" uid="uid://bmdx14r8log88" path="res://enemies/turret/plasma_launcher.tres" id="3_6qvlc"] [ext_resource type="PackedScene" uid="uid://cilj11mx2ahb1" path="res://enemies/enemy_hit_box.tscn" id="3_gaf3p"] [ext_resource type="PackedScene" uid="uid://d2p86lb72dp61" path="res://components/healthcomponent.tscn" id="4_l8nu8"] [ext_resource type="PackedScene" uid="uid://5q0aw58r81vp" path="res://effects/explosion.tscn" id="7_uavmy"] [ext_resource type="AudioStream" uid="uid://daij4ugs4fca4" path="res://enemies/turret/building_explosion.ogg" id="8_iow2f"] [sub_resource type="SphereShape3D" id="SphereShape3D_2ydgc"] radius = 20.0 [sub_resource type="BoxShape3D" id="BoxShape3D_a2pej"] size = Vector3(1, 1.3, 1) [sub_resource type="SphereShape3D" id="SphereShape3D_ae38j"] [sub_resource type="Animation" id="Animation_xts0o"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Turret/blockbench_export/Node/base/bearing:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0.8125, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Turret/blockbench_export/Node/base/bearing:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Turret/blockbench_export/Node/base/bearing/tilt:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0.359375, 0)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Turret/blockbench_export/Node/base/bearing/tilt:rotation") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 0)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Turret:position") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_j1uus"] resource_name = "dying" length = 3.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Turret/blockbench_export/Node/base/bearing:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.8125, 0), Vector3(1, 0.1125, 1)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Turret/blockbench_export/Node/base/bearing:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(8.74228e-08, 2.35619, 3.14159)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Turret/blockbench_export/Node/base/bearing/tilt:position") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.359375, 0), Vector3(-1.7, 0.059375, -1.3)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("Turret/blockbench_export/Node/base/bearing/tilt:rotation") tracks/3/interp = 2 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(3.14159, 0, 0)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Turret:position") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 1, 3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, -3, 0)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_j87wu"] _data = { "RESET": SubResource("Animation_xts0o"), "dying": SubResource("Animation_j1uus") } [node name="PlasmaTurret" type="StaticBody3D"] collision_layer = 4 collision_mask = 7 script = ExtResource("1_5cmh7") [node name="Turret" parent="." instance=ExtResource("1_5hqga")] [node name="EnemyWeaponSlot" parent="Turret/blockbench_export/Node/base/bearing/tilt/beveled_cuboid" index="0" instance=ExtResource("2_eiq1i")] transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -7.34788e-17, 0.3, 0.6) lead_speed = 15 weapon = ExtResource("3_6qvlc") [node name="PlayerDetector" parent="." instance=ExtResource("2_we0x8")] [node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetector"] shape = SubResource("SphereShape3D_2ydgc") [node name="EnemyHitBox" parent="." node_paths=PackedStringArray("health_component") instance=ExtResource("3_gaf3p")] health_component = NodePath("../Healthcomponent") [node name="CollisionShape3D" type="CollisionShape3D" parent="EnemyHitBox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0) shape = SubResource("BoxShape3D_a2pej") [node name="Healthcomponent" parent="." instance=ExtResource("4_l8nu8")] max_health = 500.0 [node name="CollisionShape3D" type="CollisionShape3D" parent="Healthcomponent"] shape = SubResource("SphereShape3D_ae38j") disabled = true [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0) shape = SubResource("BoxShape3D_a2pej") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { "": SubResource("AnimationLibrary_j87wu") } [node name="Explosion" parent="." instance=ExtResource("7_uavmy")] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] stream = ExtResource("8_iow2f") bus = &"SFX" [connection signal="new_target" from="PlayerDetector" to="Turret" method="set_target"] [connection signal="new_target" from="PlayerDetector" to="Turret/blockbench_export/Node/base/bearing/tilt/beveled_cuboid/EnemyWeaponSlot" method="set_target"] [connection signal="start_dying" from="Healthcomponent" to="." method="_on_healthcomponent_start_dying"] [connection signal="start_dying" from="Healthcomponent" to="Turret/blockbench_export/Node/base/bearing/tilt/beveled_cuboid/EnemyWeaponSlot" method="queue_free"] [connection signal="start_dying" from="Healthcomponent" to="Explosion" method="play"] [connection signal="start_dying" from="Healthcomponent" to="AudioStreamPlayer3D" method="play"] [connection signal="start_dying" from="Healthcomponent" to="AnimationPlayer" method="play" binds= ["dying"]] [editable path="Turret"] [editable path="Turret/blockbench_export"]