Added fire mode select on gun script

This commit is contained in:
Derek
2024-07-14 20:06:00 -05:00
parent 582e03202a
commit 6fedc3e3c5
18 changed files with 382 additions and 31 deletions

View File

@@ -1,6 +0,0 @@
extends AnimationPlayer
@onready var player = $"../../../../../"
func _on_animation_finished(anim_name):

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=9 format=3 uid="uid://d5c0g1e5dorn"] [gd_scene load_steps=9 format=3 uid="uid://d5c0g1e5dorn"]
[ext_resource type="Script" path="res://bullet3.gd" id="1_neb7m"] [ext_resource type="Script" path="res://scripts/bullet3.gd" id="1_neb7m"]
[ext_resource type="PackedScene" uid="uid://g1cn33dwxbdb" path="res://assets/Models/TOOB.blend" id="2_vcn8q"] [ext_resource type="PackedScene" uid="uid://g1cn33dwxbdb" path="res://assets/Models/TOOB.blend" id="2_vcn8q"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h0ukm"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h0ukm"]

View File

@@ -319,8 +319,8 @@ _data = {
[node name="mac10" node_paths=PackedStringArray("flare_light", "anim_player", "barrel_raycast", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_nb4p5")] [node name="mac10" node_paths=PackedStringArray("flare_light", "anim_player", "barrel_raycast", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_nb4p5")]
script = ExtResource("2_6i1l4") script = ExtResource("2_6i1l4")
max_ammo = 30 max_ammo = 30
start_mags = 100
random_spread_amt = 1.5 random_spread_amt = 1.5
fire_pitch_scale_amt = 0.1
flare_light = NodePath("mac10/SpotLight3D") flare_light = NodePath("mac10/SpotLight3D")
bullet = ExtResource("3_pyl20") bullet = ExtResource("3_pyl20")
bullethole = ExtResource("4_eleuq") bullethole = ExtResource("4_eleuq")

View File

@@ -1,7 +1,15 @@
[gd_scene load_steps=10 format=3 uid="uid://dslxb3psx30vp"] [gd_scene load_steps=18 format=3 uid="uid://dslxb3psx30vp"]
[ext_resource type="PackedScene" uid="uid://svrb3n31mkag" path="res://assets/Models/gun.blend" id="1_frekg"] [ext_resource type="PackedScene" uid="uid://svrb3n31mkag" path="res://assets/Models/gun.blend" id="1_frekg"]
[ext_resource type="Script" path="res://assets/ReloadAnimationTrigger.gd" id="2_y11xs"] [ext_resource type="Script" path="res://scripts/gun.gd" id="2_63tea"]
[ext_resource type="PackedScene" uid="uid://dqhltdnqyg8ni" path="res://assets/bullet.tscn" id="3_4pvsf"]
[ext_resource type="PackedScene" uid="uid://crvohhc6kgshn" path="res://assets/bullet_hole.tscn" id="4_bu1g0"]
[ext_resource type="PackedScene" uid="uid://c1gdehrsytlkk" path="res://assets/casing_2.tscn" id="5_gls8p"]
[ext_resource type="PackedScene" uid="uid://cp8563f0oxvff" path="res://assets/mag1.tscn" id="6_ysonb"]
[ext_resource type="AudioStream" uid="uid://ba0w04uqqexpn" path="res://assets/Audio/Weapons/machine-gun-m16-double-shot-close-perspective-SBA-300130711.wav" id="8_jtjwm"]
[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="Animation" id="Animation_u008m"] [sub_resource type="Animation" id="Animation_u008m"]
resource_name = "empty" resource_name = "empty"
@@ -230,8 +238,21 @@ _data = {
[sub_resource type="BoxShape3D" id="BoxShape3D_spb41"] [sub_resource type="BoxShape3D" id="BoxShape3D_spb41"]
size = Vector3(0.136963, 0.230713, 1.03125) size = Vector3(0.136963, 0.230713, 1.03125)
[node name="gun" instance=ExtResource("1_frekg")] [node name="gun" node_paths=PackedStringArray("flare_light", "anim_player", "barrel_raycast", "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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0145504, -0.0460228)
script = ExtResource("2_63tea")
flare_light = NodePath("SpotLight3D")
bullet = ExtResource("3_4pvsf")
bullethole = ExtResource("4_bu1g0")
casing = ExtResource("5_gls8p")
mag = ExtResource("6_ysonb")
anim_player = NodePath("AnimationPlayer")
barrel_raycast = NodePath("RayCastBarrel")
casing_ejector = NodePath("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"] [node name="gun" parent="." index="0"]
transform = Transform3D(-3.23167e-06, 0, -0.892728, 0, 0.892728, 0, 0.892728, 0, -3.23167e-06, 0, -0.000397999, 0) transform = Transform3D(-3.23167e-06, 0, -0.892728, 0, 0.892728, 0, 0.892728, 0, -3.23167e-06, 0, -0.000397999, 0)
@@ -250,7 +271,6 @@ transform = Transform3D(1.11722, -0.0135336, 0.080048, 0.00234133, 1.1094, 0.154
libraries = { libraries = {
"": SubResource("AnimationLibrary_vkrtt") "": SubResource("AnimationLibrary_vkrtt")
} }
script = ExtResource("2_y11xs")
[node name="RayCastBarrel" type="RayCast3D" parent="." index="2"] [node name="RayCastBarrel" type="RayCast3D" parent="." index="2"]
transform = Transform3D(0.999996, -0.00106011, 0.00265686, 0.00105008, 0.999992, 0.00376817, -0.00266084, -0.00376536, 0.999989, -0.0058006, 0.161677, -0.93982) transform = Transform3D(0.999996, -0.00106011, 0.00265686, 0.00105008, 0.999992, 0.00376817, -0.00266084, -0.00376536, 0.999989, -0.0058006, 0.161677, -0.93982)
@@ -268,4 +288,31 @@ collision_mask = 2
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138702, -0.356865) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138702, -0.356865)
shape = SubResource("BoxShape3D_spb41") shape = SubResource("BoxShape3D_spb41")
[node name="Audio" type="Node3D" parent="." index="5"]
[node name="Fire" type="AudioStreamPlayer3D" parent="Audio" index="0"]
stream = ExtResource("8_jtjwm")
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="6"]
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"] [connection signal="animation_finished" from="AnimationPlayer" to="AnimationPlayer" method="_on_animation_finished"]

283
assets/pistol1.tscn Normal file
View File

@@ -0,0 +1,283 @@
[gd_scene load_steps=18 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" path="res://scripts/gun.gd" id="2_63tea"]
[ext_resource type="PackedScene" uid="uid://dqhltdnqyg8ni" path="res://assets/bullet.tscn" id="3_4pvsf"]
[ext_resource type="PackedScene" uid="uid://crvohhc6kgshn" path="res://assets/bullet_hole.tscn" id="4_bu1g0"]
[ext_resource type="PackedScene" uid="uid://c1gdehrsytlkk" path="res://assets/casing_2.tscn" id="5_gls8p"]
[ext_resource type="PackedScene" uid="uid://cp8563f0oxvff" path="res://assets/mag1.tscn" id="6_ysonb"]
[ext_resource type="AudioStream" uid="uid://ba0w04uqqexpn" path="res://assets/Audio/Weapons/machine-gun-m16-double-shot-close-perspective-SBA-300130711.wav" id="8_jtjwm"]
[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="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_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("mac10:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3, 0.87, 0.93, 1.22, 1.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(-0.300933, 0.313207, 1.19209e-07), Vector3(-0.434608, 0.186498, -0.0340296), Vector3(-0.101334, 0.396998, -0.241881), Vector3(0.0150149, 0.258868, -0.212029), Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("mac10:rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.3, 0.87, 0.93, 1.22, 1.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector3(0, -1.5708, 0), Vector3(-0.232886, -1.07885, -0.764517), Vector3(-0.629713, -1.24344, 0.0923291), Vector3(-0.492603, -1.40009, 0.121521), Vector3(-0.372059, -1.53262, 0.126735), Vector3(0, -1.5708, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("mac10/chargerpull:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"update": 0,
"values": []
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("mac10/mag:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.29, 0.75, 0.97),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.331642, -0.46631, 0.00448097), Vector3(0.332, -4, 0.004), Vector3(0.331642, -0.46631, 0.00448097)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("mac10/mag:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.27, 0.28, 0.75, 0.77),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1,
"values": [true, false, false, true]
}
[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)]
}
[sub_resource type="Animation" id="Animation_tikvk"]
resource_name = "sprint"
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vkrtt"]
_data = {
"empty": SubResource("Animation_u008m"),
"inspect": SubResource("Animation_cifop"),
"reload": SubResource("Animation_svhrs"),
"shoot": SubResource("Animation_bsc1a"),
"sprint": SubResource("Animation_tikvk")
}
[sub_resource type="BoxShape3D" id="BoxShape3D_spb41"]
size = Vector3(0.136963, 0.230713, 1.03125)
[node name="Pistol" node_paths=PackedStringArray("flare_light", "anim_player", "barrel_raycast", "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_63tea")
fire_mode = 2
flare_light = NodePath("SpotLight3D")
bullet = ExtResource("3_4pvsf")
bullethole = ExtResource("4_bu1g0")
casing = ExtResource("5_gls8p")
mag = ExtResource("6_ysonb")
anim_player = NodePath("AnimationPlayer")
barrel_raycast = NodePath("RayCastBarrel")
casing_ejector = NodePath("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(-3.23167e-06, 0, -0.892728, 0, 0.892728, 0, 0.892728, 0, -3.23167e-06, 0, -0.000397999, 0)
[node name="mag" parent="gun" index="0"]
transform = Transform3D(0.0897307, -0.048904, 1.59741e-16, 0.012226, 0.358923, 1.76728e-18, -4.44089e-16, 2.22045e-16, 0.0323253, 0.00225294, 0.0306008, -3.12148e-10)
visible = false
[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="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="AnimationPlayer" type="AnimationPlayer" parent="." index="1"]
libraries = {
"": SubResource("AnimationLibrary_vkrtt")
}
[node name="RayCastBarrel" type="RayCast3D" parent="." index="2"]
transform = Transform3D(0.999996, -0.00106011, 0.00265686, 0.00105008, 0.999992, 0.00376817, -0.00266084, -0.00376536, 0.999989, -0.0058006, 0.161677, -0.93982)
target_position = Vector3(0, 0, -1)
[node name="RayCastCasing" type="RayCast3D" parent="." index="3"]
transform = Transform3D(0.999999, -0.000519563, 0.000908768, 0.000519589, 1, -2.83433e-05, -0.000908754, 2.88053e-05, 1, 0.085, 0.187, 0)
target_position = Vector3(1, 0, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="." index="4"]
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138702, -0.356865)
shape = SubResource("BoxShape3D_spb41")
[node name="Audio" type="Node3D" parent="." index="5"]
[node name="Fire" type="AudioStreamPlayer3D" parent="Audio" index="0"]
stream = ExtResource("8_jtjwm")
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="6"]
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"]

View File

@@ -59,6 +59,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0341401, -0.111267)
[node name="mac10" parent="Head/Camera3D/WeaponHolder" instance=ExtResource("6_o1rq6")] [node name="mac10" parent="Head/Camera3D/WeaponHolder" instance=ExtResource("6_o1rq6")]
transform = Transform3D(0.699692, 0.000362423, 0.0207632, 0, 0.699893, -0.0122167, -0.0207664, 0.0122113, 0.699585, 0.445836, -0.15786, -0.767655) transform = Transform3D(0.699692, 0.000362423, 0.0207632, 0, 0.699893, -0.0122167, -0.0207664, 0.0122113, 0.699585, 0.445836, -0.15786, -0.767655)
[node name="WeaponSpawner" type="Node3D" parent="Head/Camera3D/WeaponHolder"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.44954, -0.336461, -0.703911)
[node name="AmmoCounter" type="Label" parent="Head/Camera3D"] [node name="AmmoCounter" type="Label" parent="Head/Camera3D"]
offset_right = 3840.0 offset_right = 3840.0
offset_bottom = 2160.0 offset_bottom = 2160.0

View File

@@ -435,7 +435,7 @@ mesh = SubResource("ArrayMesh_exipw")
skeleton = NodePath("") skeleton = NodePath("")
[node name="leg1" type="MeshInstance3D" parent="body"] [node name="leg1" type="MeshInstance3D" parent="body"]
transform = Transform3D(0.624665, 0.635664, 0.453569, -0.71325, 0.700909, 0, -0.317911, -0.323509, 0.89122, -0.305074, -0.206463, 0.323723) transform = Transform3D(0.612077, 0.622855, 0.487249, -0.71325, 0.700909, 0, -0.341518, -0.347531, 0.873262, -0.305074, -0.206463, 0.323723)
mesh = SubResource("ArrayMesh_cwwo8") mesh = SubResource("ArrayMesh_cwwo8")
skeleton = NodePath("") skeleton = NodePath("")
@@ -445,7 +445,7 @@ mesh = SubResource("ArrayMesh_epfun")
skeleton = NodePath("") skeleton = NodePath("")
[node name="leg2" type="MeshInstance3D" parent="body"] [node name="leg2" type="MeshInstance3D" parent="body"]
transform = Transform3D(-0.681029, -0.692878, 0.236893, -0.713178, 0.700983, 4.80165e-09, -0.166058, -0.168947, -0.971536, 0.318604, -0.206463, 0.321527) transform = Transform3D(-0.686766, -0.698732, 0.200316, -0.713186, 0.700974, 4.21911e-09, -0.140416, -0.142863, -0.979732, 0.318604, -0.206463, 0.321527)
mesh = SubResource("ArrayMesh_j8pcb") mesh = SubResource("ArrayMesh_j8pcb")
skeleton = NodePath("") skeleton = NodePath("")
@@ -455,7 +455,7 @@ mesh = SubResource("ArrayMesh_vgp1v")
skeleton = NodePath("") skeleton = NodePath("")
[node name="leg3" type="MeshInstance3D" parent="body"] [node name="leg3" type="MeshInstance3D" parent="body"]
transform = Transform3D(0.624665, 0.635664, -0.453569, -0.71325, 0.700909, 0, 0.317911, 0.323509, 0.89122, -0.327034, -0.206463, -0.315327) transform = Transform3D(0.612077, 0.622855, -0.487249, -0.71325, 0.700909, 0, 0.341518, 0.347531, 0.873262, -0.327034, -0.206463, -0.315327)
mesh = SubResource("ArrayMesh_wv2l2") mesh = SubResource("ArrayMesh_wv2l2")
skeleton = NodePath("") skeleton = NodePath("")
@@ -465,7 +465,7 @@ mesh = SubResource("ArrayMesh_375ql")
skeleton = NodePath("") skeleton = NodePath("")
[node name="leg4" type="MeshInstance3D" parent="body"] [node name="leg4" type="MeshInstance3D" parent="body"]
transform = Transform3D(-0.67026, -0.681922, -0.292805, -0.713178, 0.700983, -7.04655e-08, 0.205251, 0.208822, -0.956172, 0.351545, -0.206463, -0.339484) transform = Transform3D(-0.677596, -0.689402, -0.256104, -0.713187, 0.700974, -6.19164e-08, 0.179522, 0.18265, -0.966649, 0.351545, -0.206463, -0.339484)
mesh = SubResource("ArrayMesh_v81tc") mesh = SubResource("ArrayMesh_v81tc")
skeleton = NodePath("") skeleton = NodePath("")

View File

@@ -11,7 +11,7 @@ damping = 0.1
wet = 0.1 wet = 0.1
[resource] [resource]
bus/0/volume_db = -80.0 bus/0/volume_db = 0.0672607
bus/0/effect/0/effect = SubResource("AudioEffectPitchShift_qiw0e") bus/0/effect/0/effect = SubResource("AudioEffectPitchShift_qiw0e")
bus/0/effect/0/enabled = false bus/0/effect/0/enabled = false
bus/1/name = &"SFX" bus/1/name = &"SFX"

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=87 format=3 uid="uid://bbxmgr0rva0nt"] [gd_scene load_steps=87 format=3 uid="uid://bbxmgr0rva0nt"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="2_fddwm"] [ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="2_fddwm"]
[ext_resource type="PackedScene" uid="uid://cnfc8rtk6l1d8" path="res://crate1.tscn" id="3_0b5yv"] [ext_resource type="PackedScene" uid="uid://cnfc8rtk6l1d8" path="res://assets/crate1.tscn" id="3_0b5yv"]
[ext_resource type="Texture2D" uid="uid://2bw3nc3d1lst" path="res://assets/Models/tile1.png" id="4_c1syf"] [ext_resource type="Texture2D" uid="uid://2bw3nc3d1lst" path="res://assets/Models/tile1.png" id="4_c1syf"]
[ext_resource type="PackedScene" uid="uid://d1j6ktsmxfq6e" path="res://assets/spider.tscn" id="4_d8qp1"] [ext_resource type="PackedScene" uid="uid://d1j6ktsmxfq6e" path="res://assets/spider.tscn" id="4_d8qp1"]
[ext_resource type="Texture2D" uid="uid://dx6n72hx4k0u0" path="res://assets/Models/grass1.albedo.png" id="5_awx3e"] [ext_resource type="Texture2D" uid="uid://dx6n72hx4k0u0" path="res://assets/Models/grass1.albedo.png" id="5_awx3e"]
@@ -10,7 +10,7 @@
[ext_resource type="Texture2D" uid="uid://2e4u0u863u76" path="res://assets/Models/wall1.normal.png" id="8_t2cyl"] [ext_resource type="Texture2D" uid="uid://2e4u0u863u76" path="res://assets/Models/wall1.normal.png" id="8_t2cyl"]
[ext_resource type="LightmapGIData" uid="uid://b0e5ldaodkehl" path="res://scenes/test_level_1.lmbake" id="9_gegfi"] [ext_resource type="LightmapGIData" uid="uid://b0e5ldaodkehl" path="res://scenes/test_level_1.lmbake" id="9_gegfi"]
[ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="10_vlhfm"] [ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="10_vlhfm"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://spiderTEst.tscn" id="11_32b02"] [ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spiderTEst.tscn" id="11_32b02"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_okijo"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_okijo"]
sky_top_color = Color(0.330898, 0.116786, 0.397326, 1) sky_top_color = Color(0.330898, 0.116786, 0.397326, 1)

View File

@@ -7,7 +7,7 @@
[ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="5_28rul"] [ext_resource type="PackedScene" uid="uid://dws2vwfxubqvb" path="res://assets/cannon.tscn" id="5_28rul"]
[ext_resource type="PackedScene" uid="uid://bpkmyd3wvqi5p" path="res://assets/boombox.tscn" id="6_xrg7k"] [ext_resource type="PackedScene" uid="uid://bpkmyd3wvqi5p" path="res://assets/boombox.tscn" id="6_xrg7k"]
[ext_resource type="AudioStream" uid="uid://jo4n05go5hdt" path="res://assets/Audio/train-pass-by-steady-loop-SBA-300156766.wav" id="7_00j8j"] [ext_resource type="AudioStream" uid="uid://jo4n05go5hdt" path="res://assets/Audio/train-pass-by-steady-loop-SBA-300156766.wav" id="7_00j8j"]
[ext_resource type="PackedScene" uid="uid://cnfc8rtk6l1d8" path="res://crate1.tscn" id="8_b57j8"] [ext_resource type="PackedScene" uid="uid://cnfc8rtk6l1d8" path="res://assets/crate1.tscn" id="8_b57j8"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_nb6x7"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_nb6x7"]
sky_top_color = Color(0.145935, 0.111347, 0.255579, 1) sky_top_color = Color(0.145935, 0.111347, 0.255579, 1)

File diff suppressed because one or more lines are too long

View File

@@ -3,8 +3,11 @@ extends Node3D
var start_position var start_position
var start_rotation var start_rotation
var random_spread_start var random_spread_start
var cycle_count_start
var cycle_count
@export_group("Gun Feel") @export_group("Gun Feel")
@export_enum("Auto", "Single", "Burst") var fire_mode: int
@export var recoil_amount = .2 @export var recoil_amount = .2
@export var max_ammo = 15 @export var max_ammo = 15
@export var start_mags = 3 @export var start_mags = 3
@@ -13,6 +16,7 @@ var random_spread_start
@export var bullet_speed = 150 @export var bullet_speed = 150
@export var bullet_drop = .3 @export var bullet_drop = .3
@export var random_spread_amt = 1.0 @export var random_spread_amt = 1.0
@export var fire_pitch_scale_amt = .2
@export_group("Gun Assets") @export_group("Gun Assets")
@export_subgroup("Main Assets") @export_subgroup("Main Assets")
@export var flare_light : Node @export var flare_light : Node
@@ -38,6 +42,16 @@ func _ready():
start_position = self.position start_position = self.position
start_rotation = self.rotation start_rotation = self.rotation
random_spread_start = random_spread_amt random_spread_start = random_spread_amt
if fire_mode == 0:
cycle_count = 1
cycle_count_start = 1
elif fire_mode == 1:
cycle_count = 1
cycle_count_start = 1
elif fire_mode == 2:
cycle_count = 3
cycle_count_start = 3
@@ -58,18 +72,18 @@ func _on_gun_anims_animation_finished(anim_name):
player.reloading = false player.reloading = false
func shoot(player,delta): func shoot(player,delta):
if player.ammo > 0:
if player.ammo > 0 and cycle_count > 0:
if !anim_player.is_playing(): if !anim_player.is_playing():
player.ammo -= 1 player.ammo -= 1
#RECOIL --- fix later to happen over a period of time #RECOIL --- fix later to happen over a period of time
player.camera.rotation.x = clamp(lerp(player.camera.rotation.x, player.camera.rotation.x + recoil_amount, delta * 10), deg_to_rad(-90), deg_to_rad(60)) player.camera.rotation.x = clamp(lerp(player.camera.rotation.x, player.camera.rotation.x + recoil_amount, delta * 10), deg_to_rad(-90), deg_to_rad(60))
#(ADD PLAYER KICK HERE. RELATIVE TO GUN POSITION) #(ADD PLAYER KICK HERE. RELATIVE TO GUN POSITION)
audio_fire.pitch_scale = 1 + rng.randf_range(-.2,.2) audio_fire.pitch_scale = 1 + rng.randf_range(-fire_pitch_scale_amt,fire_pitch_scale_amt)
audio_fire.play() audio_fire.play()
anim_player.play("shoot") anim_player.play("shoot")
# shoot real bullet from camera # instance bullet
var instance_bullet = bullet.instantiate() var instance_bullet = bullet.instantiate()
instance_bullet.position = player.bullet_ray.global_position instance_bullet.position = player.bullet_ray.global_position
#shoot bullet from real gun if gun is folded up #shoot bullet from real gun if gun is folded up
@@ -88,8 +102,11 @@ func shoot(player,delta):
instance_casing.position = casing_ejector.global_position instance_casing.position = casing_ejector.global_position
instance_casing.transform.basis = casing_ejector.global_transform.basis instance_casing.transform.basis = casing_ejector.global_transform.basis
get_tree().get_root().add_child(instance_casing) get_tree().get_root().add_child(instance_casing)
if fire_mode == 1 or fire_mode == 2:
cycle_count -= 1
elif !anim_player.is_playing(): elif !anim_player.is_playing() and cycle_count != 0:
anim_player.play("empty") anim_player.play("empty")
audio_empty.play() audio_empty.play()

View File

@@ -8,6 +8,8 @@ var mouse_input : Vector2
var rng = RandomNumberGenerator.new() var rng = RandomNumberGenerator.new()
@export_group("Game Settings")
@export var AUDIO = true
@export_group("Player Movement") @export_group("Player Movement")
@export var WALK_SPEED = 7.0 @export var WALK_SPEED = 7.0
@export var SPRINT_SPEED = 15.0 @export var SPRINT_SPEED = 15.0
@@ -73,6 +75,10 @@ func _ready():
bullet_damage = gun.bullet_damage bullet_damage = gun.bullet_damage
start_sensitivity = SENSITIVITY start_sensitivity = SENSITIVITY
gun_fire_pitch_starting = gun.audio_fire.pitch_scale gun_fire_pitch_starting = gun.audio_fire.pitch_scale
#turn off audio if unchecked in player
if AUDIO == false:
AudioServer.set_bus_volume_db(0,-80)
func _unhandled_input(event): func _unhandled_input(event):
if event is InputEventMouseMotion: if event is InputEventMouseMotion:
@@ -157,11 +163,12 @@ func _physics_process(delta):
if Input.is_action_pressed("inspect") and !gun.anim_player.is_playing(): if Input.is_action_pressed("inspect") and !gun.anim_player.is_playing():
gun.anim_player.play("inspect") gun.anim_player.play("inspect")
# Shooting # Shooting & fire modes
if Input.is_action_pressed("shoot"): if Input.is_action_pressed("shoot"):
gun.shoot(self,delta) gun.shoot(self,delta)
if Input.is_action_just_released("shoot"):
gun.cycle_count = gun.cycle_count_start
# Gun folding out of the way # Gun folding out of the way
if gun_ray.is_colliding() and !gun_ray.get_collider().is_in_group("player"): if gun_ray.is_colliding() and !gun_ray.get_collider().is_in_group("player"):