[gd_scene load_steps=21 format=3 uid="uid://dslxb3psx30vp"] [ext_resource type="PackedScene" uid="uid://svrb3n31mkag" path="res://assets/Models/gun.blend" id="1_frekg"] [ext_resource type="Script" uid="uid://dhr2xfj3qow4c" path="res://scripts/weapon_uberscript.gd" id="2_wrnws"] [ext_resource type="Resource" uid="uid://dpcoofjsxi10q" path="res://assets/weaponresources/pistol1.tres" id="3_er7xg"] [ext_resource type="AudioStream" uid="uid://bxjv50ivk3fvn" path="res://assets/Audio/Weapons/9mm Full Size Pistol/Gunshots/9mm Full Size Pistol - Gunshot B 001.wav" id="7_25stk"] [ext_resource type="AudioStream" uid="uid://t50i483xmj3a" path="res://assets/Audio/Weapons/toy-click-spin-SBA-300071143.wav" id="9_btm61"] [ext_resource type="AudioStream" uid="uid://db3iy0f1pa5lg" path="res://assets/Audio/Weapons/gun-m-16-reload-full-clip-magazine-SBA-300121257.wav" id="10_xn8pu"] [ext_resource type="Texture2D" uid="uid://dtg3nb2ew72c3" path="res://assets/star_05.png" id="11_x0sef"] [sub_resource type="SphereMesh" id="SphereMesh_u47cm"] radius = 0.05 height = 0.1 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4iouf"] albedo_color = Color(0, 0, 0, 1) emission_enabled = true emission = Color(0.743194, 0.35874, 1.92523e-07, 1) emission_energy_multiplier = 5.0 [sub_resource type="Animation" id="Animation_urfns"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun: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.000397999, -0.11995)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/slide: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, 0)] } [sub_resource type="Animation" id="Animation_u008m"] resource_name = "empty" length = 0.25 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.06, 0.25), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(0, -0.000397999, -0.143476), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.06, 0.25), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(5.21802e-09, -1.5708, 0.11966), Vector3(0, -1.5708, 0)] } [sub_resource type="Animation" id="Animation_h3q6j"] resource_name = "fire_tracker" length = 0.35 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.15, 0.25, 0.35), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(0, 0.116845, 0), Vector3(0, -0.0215431, 0), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.15, 0.25, 0.35), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(-2.69979e-06, -1.5708, -0.841737), Vector3(1.04543e-06, -1.5708, 0.288695), Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/slide:position") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(), "transitions": PackedFloat32Array(), "update": 0, "values": [] } [sub_resource type="Animation" id="Animation_cifop"] resource_name = "inspect" length = 2.51 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.65, 1.76, 2.51), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(-0.389954, 0.182335, -0.112915), Vector3(-0.389954, 0.405848, -0.112915), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.65, 1.76, 2.51), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(-0.613611, -0.912742, -0.126937), Vector3(-0.265704, -2.19072, -1.47908), Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/slide:position") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0.68, 1.09, 1.67, 1.8), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(0.4, 0, 0), Vector3(0.36, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_svhrs"] resource_name = "reload" length = 1.6 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.3, 0.72, 1.6), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(-0.655909, 0.59805, 0), Vector3(-0.450443, 0.73385, 0), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.3, 0.72, 1.6), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(-0.65485, 0.0430034, -1.67829), Vector3(-0.742135, -0.58273, -1.29047), Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/mag:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0.27, 0.78, 0.97), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0.00225297, 0.0306008, -2.98023e-08), Vector3(0.002, -2, 0), Vector3(0.00225297, 0.0306008, -2.98023e-08)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath("gun/mag:visible") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0.23, 0.26, 0.82, 0.83), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 1, "values": [true, false, false, true] } tracks/4/type = "method" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath(".") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0.26, 1.6), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], "method": &"spawn_mag" }, { "args": [], "method": &"reload_finished" }] } [sub_resource type="Animation" id="Animation_lhlkm"] resource_name = "remove_tracker" length = 0.35 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.16, 0.24, 0.35), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(0, -0.0215431, 0), Vector3(0, 0.116845, 0), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.16, 0.24, 0.35), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(1.04543e-06, -1.5708, 0.288695), Vector3(-2.69979e-06, -1.5708, -0.841737), Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/slide:position") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(), "transitions": PackedFloat32Array(), "update": 0, "values": [] } tracks/3/type = "method" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0.16, 0.35), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], "method": &"remove_tracker" }, { "args": [], "method": &"check_ammo" }] } [sub_resource type="Animation" id="Animation_bsc1a"] resource_name = "shoot" length = 0.1 step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.03, 0.1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(0, 0.0908759, 0.176503), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.03, 0.1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(-1.34655e-08, -1.5708, -0.313147), Vector3(0, -1.5708, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("gun/slide:position") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 0.04, 0.1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(0.4, 0, 0), Vector3(0, 0, 0)] } tracks/3/type = "method" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"bullet_fire" }] } [sub_resource type="Animation" id="Animation_tikvk"] resource_name = "sprint" [sub_resource type="Animation" id="Animation_7422e"] resource_name = "swap_in" tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.7, 1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(-2.63402, -3.06256, 0.366018), Vector3(-0.274662, -0.000397999, 0.0729132), Vector3(0, -0.000397999, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.7, 1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(-0.95634, 0.530067, 1.30899), Vector3(-0.289219, -1.03888, -0.16629), Vector3(0, -1.5708, 0)] } [sub_resource type="Animation" id="Animation_lleyf"] resource_name = "swap_out" tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("gun:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.4, 1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -0.000397999, 0), Vector3(-0.274662, -0.000397999, 0.0729132), Vector3(1.44543, 1.00681, 2.10684)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("gun:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.4, 1), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector3(0, -1.5708, 0), Vector3(-0.289219, -1.03888, -0.16629), Vector3(-0.221353, -1.10575, -2.02639)] } tracks/2/type = "method" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath(".") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], "method": &"remove_tracker" }, { "args": [], "method": &"swapped_out" }] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_vkrtt"] _data = { &"RESET": SubResource("Animation_urfns"), &"empty": SubResource("Animation_u008m"), &"fire_tracker": SubResource("Animation_h3q6j"), &"inspect": SubResource("Animation_cifop"), &"reload": SubResource("Animation_svhrs"), &"remove_tracker": SubResource("Animation_lhlkm"), &"shoot": SubResource("Animation_bsc1a"), &"sprint": SubResource("Animation_tikvk"), &"swap_in": SubResource("Animation_7422e"), &"swap_out": SubResource("Animation_lleyf") } [node name="Pistol" node_paths=PackedStringArray("anim_player", "barrel_ray", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_frekg")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0145504, -0.0460228) script = ExtResource("2_wrnws") weapon_info = ExtResource("3_er7xg") anim_player = NodePath("AnimationPlayer") barrel_ray = NodePath("gun/RayCastBarrel") casing_ejector = NodePath("gun/RayCastCasing") mag_ejector = NodePath("gun/RayCastMag") audio_fire = NodePath("Audio/Fire") audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") [node name="gun" parent="." index="0"] transform = Transform3D(-1.81e-06, 0, -0.5, 0, 0.5, 0, 0.5, 0, -1.81e-06, 0, -0.000397999, -0.11995) cast_shadow = 0 [node name="mag" parent="gun" index="0"] transform = Transform3D(0.0897307, -0.048904, -9.31323e-10, 0.012226, 0.358923, 1.74623e-10, 3.72529e-09, -1.86265e-09, 0.0323253, 0.00225297, 0.0306008, -2.98023e-08) [node name="slide" parent="gun" index="1"] transform = Transform3D(0.579973, 0, 0, 0, 0.579973, -1.0175e-10, 1.16415e-10, 7.27596e-11, 0.579973, 0, 0, 0) [node name="TrackerIndicator" type="MeshInstance3D" parent="gun/slide" index="0"] transform = Transform3D(1.72422, -9.12793e-23, 0, -6.08805e-20, 1.72422, 3.02495e-10, -3.46063e-10, -2.16309e-10, 1.72422, 0.139739, 0.424926, -5.05937e-07) mesh = SubResource("SphereMesh_u47cm") skeleton = NodePath("../..") surface_material_override/0 = SubResource("StandardMaterial3D_4iouf") [node name="RayCastMag" type="RayCast3D" parent="gun" index="2"] transform = Transform3D(1.11722, -0.0135336, 0.080048, 0.00234133, 1.1094, 0.154888, -0.0811502, -0.154313, 1.10651, 0, 0.000445819, 0) [node name="RayCastBarrel" type="RayCast3D" parent="gun" index="3"] transform = Transform3D(-0.00532892, -0.00753071, 1.99998, 0.00210016, 1.99998, 0.00753634, -1.99999, 0.00212025, -0.00532096, -1.14757, 0.176184, 0.0116054) target_position = Vector3(0, 0, -1) [node name="RayCastCasing" type="RayCast3D" parent="gun" index="4"] transform = Transform3D(-0.00182475, 5.76144e-05, 2, 0.00103918, 2, -5.66866e-05, -2, 0.00103913, -0.00182478, -2.5332e-07, 0.215889, -0.069994) target_position = Vector3(1, 0, 0) [node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"] libraries = { &"": SubResource("AnimationLibrary_vkrtt") } [node name="Audio" type="Node3D" parent="." index="2"] [node name="Fire" type="AudioStreamPlayer3D" parent="Audio" index="0"] stream = ExtResource("7_25stk") volume_db = 5.0 bus = &"SFX" [node name="Empty" type="AudioStreamPlayer3D" parent="Audio" index="1"] stream = ExtResource("9_btm61") bus = &"SFX" [node name="Reload" type="AudioStreamPlayer3D" parent="Audio" index="2"] stream = ExtResource("10_xn8pu") volume_db = 3.0 bus = &"SFX" [node name="SpotLight3D" type="SpotLight3D" parent="." index="3"] transform = Transform3D(-6.79394e-06, 0, 1.87678, 0, 1.87678, 0, -1.87677, 0, -6.79392e-06, -1.63231, 0, 5.90892e-06) light_color = Color(0.965385, 0.844179, 0.572893, 1) light_energy = 0.0 light_projector = ExtResource("11_x0sef") light_size = 0.229 shadow_enabled = true spot_range = 7.0 spot_angle = 70.0 spot_angle_attenuation = 0.353554 [connection signal="animation_finished" from="AnimationPlayer" to="AnimationPlayer" method="_on_animation_finished"]