diff --git a/blunderbus.tscn b/assets/blunderbus.tscn similarity index 99% rename from blunderbus.tscn rename to assets/blunderbus.tscn index 1c24c67..a299975 100644 --- a/blunderbus.tscn +++ b/assets/blunderbus.tscn @@ -1,25 +1,52 @@ -[gd_scene load_steps=51 format=4 uid="uid://dqwkal3t4gf2p"] +[gd_scene load_steps=55 format=4 uid="uid://dqwkal3t4gf2p"] -[ext_resource type="Script" path="res://scripts/blunderbus.gd" id="1_w46uw"] -[ext_resource type="PackedScene" uid="uid://717hhehp83k8" path="res://assets/shotgun_pellet.tscn" id="2_544x3"] -[ext_resource type="Texture2D" uid="uid://74id2drhfp2s" path="res://assets/Textures/ObjectTextures/Blunderbus.png" id="2_ejm2n"] -[ext_resource type="Texture2D" uid="uid://cvbmjv42lox3f" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_BaseColor.png" id="4_ammty"] -[ext_resource type="Shader" path="res://assets/viewmodel_shader.gdshader" id="4_rud24"] -[ext_resource type="Texture2D" uid="uid://dmha1jlmeshfv" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_Normal.png" id="5_xh07u"] -[ext_resource type="Texture2D" uid="uid://cq4ffvy1lr0fo" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_Roughness.png" id="6_j605e"] -[ext_resource type="Texture2D" uid="uid://nrje6j28qwq2" path="res://assets/Models/Quixel/blunderbus/blunderbus_blunderbus.stock_Metalness.png" id="6_oah81"] -[ext_resource type="Texture2D" uid="uid://c5q834my73wf8" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_BaseColor.png" id="7_mot72"] -[ext_resource type="Texture2D" uid="uid://n3ygqfca1d1e" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_Normal.png" id="8_hxj7g"] -[ext_resource type="Texture2D" uid="uid://bmmjhdv8555ui" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_Roughness.png" id="9_3votx"] -[ext_resource type="Texture2D" uid="uid://dn3b6uw8xr63m" path="res://assets/Textures/Smoke/smoketest_v1_0043.png" id="9_fldbw"] -[ext_resource type="AudioStream" uid="uid://t50i483xmj3a" path="res://assets/Audio/Weapons/toy-click-spin-SBA-300071143.wav" id="9_ly2k1"] -[ext_resource type="AudioStream" uid="uid://bqoxdmsnfjiog" path="res://assets/Audio/Weapons/12ga Pump Shotgun/Gunshots/12ga Pump Shotgun - Gunshot A 001.wav" id="9_nu1jc"] -[ext_resource type="AudioStream" uid="uid://db3iy0f1pa5lg" path="res://assets/Audio/Weapons/gun-m-16-reload-full-clip-magazine-SBA-300121257.wav" id="10_8vcd2"] +[ext_resource type="Script" path="res://scripts/weapon_uberscript.gd" id="1_d2orx"] +[ext_resource type="PackedScene" uid="uid://717hhehp83k8" path="res://assets/shotgun_pellet.tscn" id="2_6ms5m"] +[ext_resource type="Script" path="res://scripts/bullet_resource.gd" id="3_64qwm"] +[ext_resource type="Texture2D" uid="uid://74id2drhfp2s" path="res://assets/Textures/ObjectTextures/Blunderbus.png" id="4_sf1mx"] +[ext_resource type="Script" path="res://scripts/weapon_resource.gd" id="5_yt5ea"] +[ext_resource type="Shader" path="res://assets/viewmodel_shader.gdshader" id="6_4f3qc"] +[ext_resource type="Texture2D" uid="uid://cvbmjv42lox3f" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_BaseColor.png" id="7_6no5y"] +[ext_resource type="Texture2D" uid="uid://nrje6j28qwq2" path="res://assets/Models/Quixel/blunderbus/blunderbus_blunderbus.stock_Metalness.png" id="8_kjvhf"] +[ext_resource type="Texture2D" uid="uid://dmha1jlmeshfv" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_Normal.png" id="9_7tojq"] +[ext_resource type="Texture2D" uid="uid://cq4ffvy1lr0fo" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.stock_Roughness.png" id="10_8xopx"] +[ext_resource type="Texture2D" uid="uid://c5q834my73wf8" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_BaseColor.png" id="11_ksmus"] +[ext_resource type="Texture2D" uid="uid://n3ygqfca1d1e" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_Normal.png" id="12_afrx4"] +[ext_resource type="Texture2D" uid="uid://bmmjhdv8555ui" path="res://assets/Models/SubstancePainterTest/blunderbus_model_blunderbus.metal_Roughness.png" id="13_qb0ve"] +[ext_resource type="Texture2D" uid="uid://dn3b6uw8xr63m" path="res://assets/Textures/Smoke/smoketest_v1_0043.png" id="14_1k70p"] +[ext_resource type="AudioStream" uid="uid://bqoxdmsnfjiog" path="res://assets/Audio/Weapons/12ga Pump Shotgun/Gunshots/12ga Pump Shotgun - Gunshot A 001.wav" id="15_7iho2"] +[ext_resource type="AudioStream" uid="uid://t50i483xmj3a" path="res://assets/Audio/Weapons/toy-click-spin-SBA-300071143.wav" id="16_2x8nj"] +[ext_resource type="AudioStream" uid="uid://db3iy0f1pa5lg" path="res://assets/Audio/Weapons/gun-m-16-reload-full-clip-magazine-SBA-300121257.wav" id="17_2j2xh"] + +[sub_resource type="Resource" id="Resource_gh6p6"] +script = ExtResource("3_64qwm") +asset = ExtResource("2_6ms5m") +ammo_type = 3 + +[sub_resource type="Resource" id="Resource_puk5e"] +script = ExtResource("5_yt5ea") +gun_name = "blunderbus" +gun_icon = ExtResource("4_sf1mx") +path = "res://assets/blunderbus.tscn" +weapon_type = 0 +bullet = SubResource("Resource_gh6p6") +fire_mode = 0 +fov_zoom_amt = 0.98 +ads = false +recoil_amount = Vector3(0.1, 0.05, 0.05) +kick_amount = 0.1 +max_ammo = 1 +start_mags = 10 +bullet_damage = 1 +smoke_enabled = false +bullet_force_mod = 5.0 +bullet_speed = 600 +shotgun_spread = Vector3(0.1, 0.1, 0.1) [sub_resource type="ShaderMaterial" id="ShaderMaterial_11x5l"] resource_name = "blunderbus.stock" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(1, 1, 1, 1) shader_parameter/specular = 0.5 @@ -30,15 +57,15 @@ shader_parameter/roughness_texture_channel = Vector4(1, 0, 0, 0) shader_parameter/normal_scale = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 1) shader_parameter/uv1_offset = Vector3(0, 0, 0) -shader_parameter/texture_albedo = ExtResource("4_ammty") -shader_parameter/texture_metallic = ExtResource("6_oah81") -shader_parameter/texture_roughness = ExtResource("6_j605e") -shader_parameter/texture_normal = ExtResource("5_xh07u") +shader_parameter/texture_albedo = ExtResource("7_6no5y") +shader_parameter/texture_metallic = ExtResource("8_kjvhf") +shader_parameter/texture_roughness = ExtResource("10_8xopx") +shader_parameter/texture_normal = ExtResource("9_7tojq") [sub_resource type="ShaderMaterial" id="ShaderMaterial_fms28"] resource_name = "blunderbus.metal" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(1, 1, 1, 1) shader_parameter/specular = 0.5 @@ -49,9 +76,9 @@ shader_parameter/roughness_texture_channel = Vector4(1, 0, 0, 0) shader_parameter/normal_scale = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 1) shader_parameter/uv1_offset = Vector3(0, 0, 0) -shader_parameter/texture_albedo = ExtResource("7_mot72") -shader_parameter/texture_roughness = ExtResource("9_3votx") -shader_parameter/texture_normal = ExtResource("8_hxj7g") +shader_parameter/texture_albedo = ExtResource("11_ksmus") +shader_parameter/texture_roughness = ExtResource("13_qb0ve") +shader_parameter/texture_normal = ExtResource("12_afrx4") [sub_resource type="ArrayMesh" id="ArrayMesh_l8jkd"] _surfaces = [{ @@ -114,7 +141,7 @@ shadow_mesh = SubResource("ArrayMesh_l8jkd") [sub_resource type="ShaderMaterial" id="ShaderMaterial_8d2so"] resource_name = "blunderbus.metal" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(1, 1, 1, 1) shader_parameter/specular = 0.5 @@ -125,14 +152,14 @@ shader_parameter/roughness_texture_channel = Vector4(1, 0, 0, 0) shader_parameter/normal_scale = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 1) shader_parameter/uv1_offset = Vector3(0, 0, 0) -shader_parameter/texture_albedo = ExtResource("7_mot72") -shader_parameter/texture_roughness = ExtResource("9_3votx") -shader_parameter/texture_normal = ExtResource("8_hxj7g") +shader_parameter/texture_albedo = ExtResource("11_ksmus") +shader_parameter/texture_roughness = ExtResource("13_qb0ve") +shader_parameter/texture_normal = ExtResource("12_afrx4") [sub_resource type="ShaderMaterial" id="ShaderMaterial_d7nbh"] resource_name = "blunderbus.flint" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(0.307111, 0.307111, 0.307111, 1) shader_parameter/specular = 0.5 @@ -205,7 +232,7 @@ shadow_mesh = SubResource("ArrayMesh_p7xkq") [sub_resource type="ShaderMaterial" id="ShaderMaterial_vdkuc"] resource_name = "blunderbus.metal" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(1, 1, 1, 1) shader_parameter/specular = 0.5 @@ -216,9 +243,9 @@ shader_parameter/roughness_texture_channel = Vector4(1, 0, 0, 0) shader_parameter/normal_scale = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 1) shader_parameter/uv1_offset = Vector3(0, 0, 0) -shader_parameter/texture_albedo = ExtResource("7_mot72") -shader_parameter/texture_roughness = ExtResource("9_3votx") -shader_parameter/texture_normal = ExtResource("8_hxj7g") +shader_parameter/texture_albedo = ExtResource("11_ksmus") +shader_parameter/texture_roughness = ExtResource("13_qb0ve") +shader_parameter/texture_normal = ExtResource("12_afrx4") [sub_resource type="ArrayMesh" id="ArrayMesh_tnfi6"] _surfaces = [{ @@ -257,7 +284,7 @@ shadow_mesh = SubResource("ArrayMesh_tnfi6") [sub_resource type="ShaderMaterial" id="ShaderMaterial_ga5uk"] resource_name = "blunderbus.metal" render_priority = 0 -shader = ExtResource("4_rud24") +shader = ExtResource("6_4f3qc") shader_parameter/viewmodel_fov = 90.0 shader_parameter/albedo = Color(1, 1, 1, 1) shader_parameter/specular = 0.5 @@ -268,9 +295,9 @@ shader_parameter/roughness_texture_channel = Vector4(1, 0, 0, 0) shader_parameter/normal_scale = 1.0 shader_parameter/uv1_scale = Vector3(1, 1, 1) shader_parameter/uv1_offset = Vector3(0, 0, 0) -shader_parameter/texture_albedo = ExtResource("7_mot72") -shader_parameter/texture_roughness = ExtResource("9_3votx") -shader_parameter/texture_normal = ExtResource("8_hxj7g") +shader_parameter/texture_albedo = ExtResource("11_ksmus") +shader_parameter/texture_roughness = ExtResource("13_qb0ve") +shader_parameter/texture_normal = ExtResource("12_afrx4") [sub_resource type="ArrayMesh" id="ArrayMesh_3f3hx"] _surfaces = [{ @@ -349,7 +376,7 @@ transparency = 1 blend_mode = 1 shading_mode = 0 albedo_color = Color(1, 1, 1, 0.14902) -albedo_texture = ExtResource("9_fldbw") +albedo_texture = ExtResource("14_1k70p") billboard_mode = 1 [sub_resource type="PlaneMesh" id="PlaneMesh_756l0"] @@ -695,24 +722,11 @@ _data = { "swap_out": SubResource("Animation_jrppn") } -[node name="Blunderbus" type="Node3D" node_paths=PackedStringArray("anim_player", "barrel_raycast", "audio_fire", "audio_empty", "audio_reload")] -script = ExtResource("1_w46uw") -gun_name = "Blunderbus" -gun_icon = ExtResource("2_ejm2n") -ammo_type = 3 -fire_mode = 1 -fov_zoom_amt = 0.998 -recoil_amount = Vector3(0.5, 0.2, 0.2) -spread = Vector3(90, 90, 1) -kick_amount = 10.0 -max_ammo = 1 -start_mags = 5 -pellets_per_shot = 25 -bullet_speed = 500.0 -fire_pitch_scale_amt = 0.1 -bullet = ExtResource("2_544x3") +[node name="Blunderbus" type="Node3D" node_paths=PackedStringArray("anim_player", "barrel_ray", "audio_fire", "audio_empty", "audio_reload")] +script = ExtResource("1_d2orx") +weapon_info = SubResource("Resource_puk5e") anim_player = NodePath("AnimationPlayer") -barrel_raycast = NodePath("BlunderbusHandle/BarrelRaycast") +barrel_ray = NodePath("BlunderbusHandle/BarrelRaycast") audio_fire = NodePath("Audio/Fire") audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") @@ -782,16 +796,16 @@ wait_time = 0.5 [node name="Audio" type="Node3D" parent="."] [node name="Fire" type="AudioStreamPlayer3D" parent="Audio"] -stream = ExtResource("9_nu1jc") +stream = ExtResource("15_7iho2") bus = &"SFX" [node name="Empty" type="AudioStreamPlayer3D" parent="Audio"] -stream = ExtResource("9_ly2k1") +stream = ExtResource("16_2x8nj") volume_db = 4.0 bus = &"SFX" [node name="Reload" type="AudioStreamPlayer3D" parent="Audio"] -stream = ExtResource("10_8vcd2") +stream = ExtResource("17_2j2xh") volume_db = 4.0 bus = &"SFX" diff --git a/assets/blunderbuss_pickup.tscn b/assets/blunderbuss_pickup.tscn index 6bffca5..80f1d7f 100644 --- a/assets/blunderbuss_pickup.tscn +++ b/assets/blunderbuss_pickup.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=22 format=4 uid="uid://cucqbjb8bcha5"] [ext_resource type="Script" path="res://scripts/weapon_pickup.gd" id="1_jhhxn"] -[ext_resource type="PackedScene" uid="uid://dqwkal3t4gf2p" path="res://blunderbus.tscn" id="2_lnwhe"] +[ext_resource type="PackedScene" uid="uid://dqwkal3t4gf2p" path="res://assets/blunderbus.tscn" id="2_lnwhe"] [ext_resource type="Texture2D" uid="uid://dqgsiuy8wfxmv" path="res://assets/Models/blunderbus.stock.albedo.png" id="3_klngk"] [ext_resource type="Texture2D" uid="uid://ddrqh51fsq8gm" path="res://assets/Models/blunderbus.stock.rough.png" id="4_sicjv"] [ext_resource type="Texture2D" uid="uid://bp3cr7eorynax" path="res://assets/Models/blunderbus.stock.normal.png" id="5_wksjb"] diff --git a/assets/mac_10.tscn b/assets/mac_10.tscn index fe2eb90..5ff6ddf 100644 --- a/assets/mac_10.tscn +++ b/assets/mac_10.tscn @@ -1,14 +1,8 @@ -[gd_scene load_steps=51 format=4 uid="uid://brl0bsqjl5dg3"] +[gd_scene load_steps=45 format=4 uid="uid://brl0bsqjl5dg3"] [ext_resource type="PackedScene" uid="uid://c33b6ldlxxfro" path="res://assets/Models/mac10.blend" id="1_nb4p5"] -[ext_resource type="Script" path="res://scripts/gun.gd" id="2_tskiy"] -[ext_resource type="PackedScene" uid="uid://nq5nq2hjc4ec" path="res://assets/bullet_fake.tscn" id="3_heo3y"] -[ext_resource type="Texture2D" uid="uid://gx3iw54iemho" path="res://assets/Textures/ObjectTextures/mac10.png" id="3_p1hxc"] -[ext_resource type="PackedScene" uid="uid://dqhltdnqyg8ni" path="res://assets/bullet.tscn" id="3_w1kko"] -[ext_resource type="PackedScene" uid="uid://crvohhc6kgshn" path="res://assets/bullet_hole.tscn" id="4_eleuq"] -[ext_resource type="Resource" uid="uid://i3y4quaxs5mb" path="res://assets/weaponresources/mac10_resource.tres" id="4_ex2eo"] -[ext_resource type="PackedScene" uid="uid://cp8563f0oxvff" path="res://assets/mag1.tscn" id="4_ji2hu"] -[ext_resource type="PackedScene" uid="uid://c1gdehrsytlkk" path="res://assets/casing.tscn" id="4_kpr3h"] +[ext_resource type="Script" path="res://scripts/weapon_uberscript.gd" id="2_rdhyh"] +[ext_resource type="Resource" uid="uid://byimj60rup3an" path="res://assets/weaponresources/mac10_uberresource.tres" id="3_h7i0a"] [ext_resource type="AudioStream" uid="uid://t50i483xmj3a" path="res://assets/Audio/Weapons/toy-click-spin-SBA-300071143.wav" id="5_rn7j1"] [ext_resource type="AudioStream" uid="uid://db3iy0f1pa5lg" path="res://assets/Audio/Weapons/gun-m-16-reload-full-clip-magazine-SBA-300121257.wav" id="6_3atx1"] [ext_resource type="Texture2D" uid="uid://dtg3nb2ew72c3" path="res://assets/star_05.png" id="7_h63ea"] @@ -589,6 +583,20 @@ tracks/5/keys = { "update": 1, "values": [false, true, false] } +tracks/6/type = "method" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath(".") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.002), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"bullet_fire" +}] +} [sub_resource type="Animation" id="Animation_tikvk"] resource_name = "sprint" @@ -675,26 +683,11 @@ _data = { "swap_out": SubResource("Animation_i5303") } -[node name="mac10" node_paths=PackedStringArray("r_hand_location", "l_hand_location", "flare_light", "anim_player", "barrel_raycast", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_nb4p5")] -script = ExtResource("2_tskiy") -gun_name = "Mac 10" -gun_icon = ExtResource("3_p1hxc") -gun_info = ExtResource("4_ex2eo") -fov_zoom_amt = 15.0 -recoil_amount = Vector3(0.02, 0.05, 0.05) -max_ammo = 20 -bullet_damage = 2 -bullet_speed = 600 -r_hand_location = NodePath("mac10/RHandLocation") -l_hand_location = NodePath("mac10/mag/LHandLocation") -flare_light = NodePath("mac10/flare") -bullet = ExtResource("3_w1kko") -bullet_fake = ExtResource("3_heo3y") -bullethole = ExtResource("4_eleuq") -casing = ExtResource("4_kpr3h") -mag = ExtResource("4_ji2hu") +[node name="mac10" node_paths=PackedStringArray("anim_player", "barrel_ray", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_nb4p5")] +script = ExtResource("2_rdhyh") +weapon_info = ExtResource("3_h7i0a") anim_player = NodePath("GunAnims") -barrel_raycast = NodePath("mac10/RayCastBarrel") +barrel_ray = NodePath("mac10/RayCastBarrel") casing_ejector = NodePath("mac10/RayCastCasing") mag_ejector = NodePath("mac10/RayCastMag") audio_fire = NodePath("Audio/Fire") @@ -702,7 +695,7 @@ audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") [node name="mac10" parent="." index="0"] -transform = Transform3D(-0.120695, -0.0946481, -0.257826, 0.172433, -0.245315, 0.00933494, -0.213774, -0.144437, 0.153096, 0.948953, -2.62066, 0.655643) +transform = Transform3D(-1.08599e-06, -2.96491e-09, -0.3, -0.00082893, 0.299999, 3.58064e-11, 0.299999, 0.00082893, -1.086e-06, 0, 0.00194802, 0.00225875) cast_shadow = 0 lod_bias = 10.0 mesh = SubResource("ArrayMesh_pcg38") @@ -725,13 +718,12 @@ spot_angle_attenuation = 0.353554 transform = Transform3D(2.1023, 0, 2.72848e-12, 0, 2.10229, 0, -5.45697e-12, 0, 2.10229, 0.234, -0.99, 0.006) [node name="chargerpull" parent="mac10" index="3"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.277325, 0, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00645833, 0, 0) cast_shadow = 0 mesh = SubResource("ArrayMesh_4g0pt") [node name="flare" parent="mac10" index="4"] transform = Transform3D(0.71471, 9.09495e-13, -6.77626e-20, 0, -1.9745e-08, -0.451714, -1.36424e-12, 0.451713, -1.97451e-08, -2.78547, 0.0225526, 4.16584e-06) -visible = false transparency = 1.0 cast_shadow = 0 @@ -758,7 +750,7 @@ transform = Transform3D(-0.00171201, 5.61171e-05, 1.87678, 0.567942, 1.78878, 0. target_position = Vector3(1, 0, 0) [node name="Trigger" parent="mac10" index="8"] -transform = Transform3D(0.997624, -0.0688948, 3.50648e-07, 0.0688948, 0.997624, -9.30051e-07, -2.85739e-07, 9.51999e-07, 1, -0.13807, -0.230628, 0.00528617) +transform = Transform3D(0.985948, 0.167053, 5.19912e-08, -0.167053, 0.985948, -1.379e-07, -7.42973e-08, 1.27277e-07, 1, -0.13807, -0.230628, 0.00528617) cast_shadow = 0 mesh = SubResource("ArrayMesh_c7rny") diff --git a/assets/mac_10_uber.tscn b/assets/mac_10_uber.tscn index 35276d4..e5c65d4 100644 --- a/assets/mac_10_uber.tscn +++ b/assets/mac_10_uber.tscn @@ -669,13 +669,13 @@ _data = { "swap_out": SubResource("Animation_i5303") } -[node name="mac10" node_paths=PackedStringArray("casing_ejector", "mag_ejector", "barrel_ray", "anim_player", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_iysoo")] +[node name="mac10" node_paths=PackedStringArray("anim_player", "barrel_ray", "casing_ejector", "mag_ejector", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_iysoo")] script = ExtResource("2_dlpd0") weapon_info = ExtResource("3_a3njr") +anim_player = NodePath("GunAnims") +barrel_ray = NodePath("mac10/RayCastBarrel") casing_ejector = NodePath("mac10/RayCastCasing") mag_ejector = NodePath("mac10/RayCastMag") -barrel_ray = NodePath("mac10/RayCastBarrel") -anim_player = NodePath("GunAnims") audio_fire = NodePath("Audio/Fire") audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") diff --git a/assets/machete.tscn b/assets/machete.tscn index fa8ae24..c1eb52a 100644 --- a/assets/machete.tscn +++ b/assets/machete.tscn @@ -1,9 +1,9 @@ [gd_scene load_steps=26 format=4 uid="uid://bshuvj6xeaiiq"] -[ext_resource type="Script" path="res://scripts/melee_weapon.gd" id="1_afuhq"] +[ext_resource type="Script" path="res://scripts/weapon_uberscript.gd" id="1_3j502"] [ext_resource type="Texture2D" uid="uid://dtjnn8f8165dg" path="res://assets/Models/SubstancePainterTest/machete.blade_BaseColor.png" id="1_n1eld"] -[ext_resource type="Texture2D" uid="uid://1upy05l2sd3o" path="res://assets/Textures/ObjectTextures/Machete.png" id="2_0vbjw"] [ext_resource type="Texture2D" uid="uid://rglx87b6ctrf" path="res://assets/Models/SubstancePainterTest/machete.blade_Metallic.png" id="2_ktp8c"] +[ext_resource type="Resource" uid="uid://cn6axgvd75xt7" path="res://assets/weaponresources/machete.tres" id="2_vu874"] [ext_resource type="Shader" path="res://assets/viewmodel_shader.gdshader" id="3_8w0n7"] [ext_resource type="Texture2D" uid="uid://mcronh7q6ba3" path="res://assets/Models/SubstancePainterTest/machete.blade_Normal.png" id="3_lthmb"] [ext_resource type="Texture2D" uid="uid://b42jj71wsavpb" path="res://assets/Models/SubstancePainterTest/machete.blade_Roughness.png" id="4_nqv4m"] @@ -112,7 +112,7 @@ shadow_mesh = SubResource("ArrayMesh_g3fr5") [sub_resource type="BoxShape3D" id="BoxShape3D_idjup"] margin = 0.0 -size = Vector3(0.15332, 0.0371094, 0.991211) +size = Vector3(0.153, 0.142, 1.336) [sub_resource type="Animation" id="Animation_bmneo"] length = 0.001 @@ -178,14 +178,14 @@ tracks/2/path = NodePath(".") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0.1, 0.266667), +"times": PackedFloat32Array(0, 0.8), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], -"method": &"collider_enable" +"method": &"melee_collider_enable" }, { "args": [], -"method": &"collider_disable" +"method": &"melee_collider_disable" }] } tracks/3/type = "audio" @@ -263,15 +263,12 @@ _data = { "swap_out": SubResource("Animation_u7d31") } -[node name="Machete" type="Node3D" node_paths=PackedStringArray("collision_shape", "anim_player", "audio_fire")] -script = ExtResource("1_afuhq") -gun_name = "Machete" -gun_icon = ExtResource("2_0vbjw") -ammo_type = 5 -collision_shape = NodePath("MacheteHandle/Area3D/CollisionShape3D") -bullet_damage = 5 +[node name="Machete" type="Node3D" node_paths=PackedStringArray("anim_player", "audio_fire", "melee_collision_shape")] +script = ExtResource("1_3j502") +weapon_info = ExtResource("2_vu874") anim_player = NodePath("AnimationPlayer") audio_fire = NodePath("Audio/Swing") +melee_collision_shape = NodePath("MacheteHandle/Area3D/CollisionShape3D") [node name="MacheteHandle" type="Node3D" parent="."] @@ -285,6 +282,7 @@ skeleton = NodePath("") transform = Transform3D(-4.37114e-08, -1, 4.37114e-08, 0.314307, -5.5235e-08, -0.949321, 0.949321, -2.77573e-08, 0.314307, 0, 0.415, -0.0427188) collision_layer = 128 collision_mask = 232 +gravity_scale = 0.0 script = ExtResource("12_u0mbp") [node name="CollisionShape3D" type="CollisionShape3D" parent="MacheteHandle/Area3D"] diff --git a/assets/revolver_1.tscn b/assets/revolver_1.tscn index 77f5327..f5b032a 100644 --- a/assets/revolver_1.tscn +++ b/assets/revolver_1.tscn @@ -1,12 +1,9 @@ -[gd_scene load_steps=83 format=4 uid="uid://b5eclfg0cmmal"] +[gd_scene load_steps=80 format=4 uid="uid://b5eclfg0cmmal"] [ext_resource type="PackedScene" uid="uid://dgogd08c0ubt6" path="res://assets/Models/revolver1.blend" id="1_i5f84"] -[ext_resource type="Script" path="res://scripts/revolver_1.gd" id="2_7rsti"] -[ext_resource type="PackedScene" uid="uid://dqhltdnqyg8ni" path="res://assets/bullet.tscn" id="3_32prk"] -[ext_resource type="Texture2D" uid="uid://bho7c8s2yno12" path="res://assets/Textures/ObjectTextures/revolver1.png" id="3_nl201"] +[ext_resource type="Script" path="res://scripts/weapon_uberscript.gd" id="2_boy4r"] +[ext_resource type="Resource" uid="uid://cqphw4ll1bjjx" path="res://assets/weaponresources/revolver1.tres" id="3_oxh61"] [ext_resource type="Texture2D" uid="uid://dtg3nb2ew72c3" path="res://assets/star_05.png" id="3_q41fl"] -[ext_resource type="PackedScene" uid="uid://crvohhc6kgshn" path="res://assets/bullet_hole.tscn" id="4_ubqgq"] -[ext_resource type="PackedScene" uid="uid://c1gdehrsytlkk" path="res://assets/casing.tscn" id="5_m3vsl"] [ext_resource type="Texture2D" uid="uid://ctxjj0wthl8hq" path="res://assets/Models/SubstancePainterTest/revolver1_revolver1_BaseColor.png" id="7_h6kyj"] [ext_resource type="AudioStream" uid="uid://dywuxr61pit5t" path="res://assets/Audio/Weapons/38 SPL Revolver/Gunshots/38 SPL Revolver - Gunshot B 001.wav" id="7_ve411"] [ext_resource type="Shader" path="res://assets/viewmodel_shader.gdshader" id="7_xmiit"] @@ -1143,7 +1140,7 @@ tracks/3/keys = { "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], -"method": &"spawn_casings" +"method": &"spawn_revolver_casings" }, { "args": [], "method": &"reload_finished" @@ -1264,6 +1261,20 @@ tracks/7/keys = { "update": 0, "values": [0.0, 20.0, 0.0] } +tracks/8/type = "method" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Audio/HammerBack") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0.01), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [0.0], +"method": &"play" +}] +} [sub_resource type="Animation" id="Animation_w02ee"] resource_name = "swap_in" @@ -1346,50 +1357,17 @@ _data = { "swap_out": SubResource("Animation_nvmxj") } -[node name="revolver1" node_paths=PackedStringArray("r_hand_location", "chamber", "casing0", "casing1", "casing2", "casing3", "casing4", "casing5", "casing_spawn0", "casing_spawn1", "casing_spawn2", "casing_spawn3", "casing_spawn4", "casing_spawn5", "bullet0", "bullet1", "bullet2", "bullet3", "bullet4", "bullet5", "anim_player", "barrel_raycast", "audio_fire", "audio_empty", "audio_reload") instance=ExtResource("1_i5f84")] +[node name="revolver1" node_paths=PackedStringArray("anim_player", "barrel_ray", "audio_fire", "audio_empty", "audio_reload", "casing_array", "chamber") instance=ExtResource("1_i5f84")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0718293, 0) -script = ExtResource("2_7rsti") -gun_name = ".44 Galore" -gun_icon = ExtResource("3_nl201") -ammo_type = 1 -fire_mode = 1 -fov_zoom_amt = 20 -recoil_amount = Vector3(0.125, 0.1, 0.1) -max_ammo = 6 -bullet_damage = 5 -kick_amount = 2 -bullet_force_mod = 10 -bullet_speed = 1500 -bullet_drop = 0.0 -random_spread_amt = 0.1 -r_hand_location = NodePath("revolver1/RHandLocation") -chamber = NodePath("revolver1/Chamber") -bullet = ExtResource("3_32prk") -bullethole = ExtResource("4_ubqgq") -spawn_casing = ExtResource("5_m3vsl") -casing0 = NodePath("revolver1/Chamber/casing_001") -casing1 = NodePath("revolver1/Chamber/casing") -casing2 = NodePath("revolver1/Chamber/casing_005") -casing3 = NodePath("revolver1/Chamber/casing_004") -casing4 = NodePath("revolver1/Chamber/casing_003") -casing5 = NodePath("revolver1/Chamber/casing_002") -casing_spawn0 = NodePath("revolver1/Chamber/RayCastCasing1") -casing_spawn1 = NodePath("revolver1/Chamber/RayCastCasing2") -casing_spawn2 = NodePath("revolver1/Chamber/RayCastCasing3") -casing_spawn3 = NodePath("revolver1/Chamber/RayCastCasing4") -casing_spawn4 = NodePath("revolver1/Chamber/RayCastCasing5") -casing_spawn5 = NodePath("revolver1/Chamber/RayCastCasing6") -bullet0 = NodePath("revolver1/Chamber/bullet") -bullet1 = NodePath("revolver1/Chamber/bullet_005") -bullet2 = NodePath("revolver1/Chamber/bullet_004") -bullet3 = NodePath("revolver1/Chamber/bullet_003") -bullet4 = NodePath("revolver1/Chamber/bullet_002") -bullet5 = NodePath("revolver1/Chamber/bullet_001") +script = ExtResource("2_boy4r") +weapon_info = ExtResource("3_oxh61") anim_player = NodePath("AnimationPlayer") -barrel_raycast = NodePath("revolver1/RayCastBarrel") +barrel_ray = NodePath("revolver1/RayCastBarrel") audio_fire = NodePath("Audio/Fire") audio_empty = NodePath("Audio/Empty") audio_reload = NodePath("Audio/Reload") +casing_array = [NodePath("revolver1/Chamber/RayCastCasing1"), NodePath("revolver1/Chamber/RayCastCasing2"), NodePath("revolver1/Chamber/RayCastCasing3"), NodePath("revolver1/Chamber/RayCastCasing4"), NodePath("revolver1/Chamber/RayCastCasing5"), NodePath("revolver1/Chamber/RayCastCasing6")] +chamber = NodePath("revolver1/Chamber") [node name="revolver1" parent="." index="0"] transform = Transform3D(-0.0315539, 0.291099, 0.0653139, -0.27013, -9.77868e-07, -0.130499, -0.126626, -0.0725366, 0.262115, 0.0258306, 0, -0.0631607) @@ -1398,7 +1376,7 @@ lod_bias = 10.0 mesh = SubResource("ArrayMesh_a1hah") [node name="Chamber" parent="revolver1" index="0"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -0.0143475, 0, -0.0849619) +transform = Transform3D(1, 0, 0, 0, -3.61999e-06, -1, 0, 1, -3.61999e-06, -0.0143475, 0, -0.0849619) cast_shadow = 0 mesh = SubResource("ArrayMesh_x43wl") @@ -1474,7 +1452,7 @@ cast_shadow = 0 mesh = SubResource("ArrayMesh_0w43n") [node name="Trigger" parent="revolver1" index="2"] -transform = Transform3D(0.207537, -0.978227, 4.27597e-08, 0, -4.37114e-08, -1, 0.978227, 0.207537, -9.07173e-09, 0.226752, 0, -0.00209358) +transform = Transform3D(0.207537, -0.978227, 3.54117e-06, 0, -3.61999e-06, -1, 0.978227, 0.207537, -7.51281e-07, 0.226752, 0, -0.00209358) cast_shadow = 0 mesh = SubResource("ArrayMesh_ahftj") diff --git a/assets/texture_catcher.tscn b/assets/texture_catcher.tscn index 75b66e2..d1e67be 100644 --- a/assets/texture_catcher.tscn +++ b/assets/texture_catcher.tscn @@ -8,7 +8,7 @@ [ext_resource type="PackedScene" uid="uid://cwutm86yp0rk6" path="res://assets/crown.tscn" id="3_gog5n"] [ext_resource type="PackedScene" uid="uid://b5eclfg0cmmal" path="res://assets/revolver_1.tscn" id="3_yqo0y"] [ext_resource type="PackedScene" uid="uid://dslxb3psx30vp" path="res://assets/pistol1.tscn" id="5_v3dls"] -[ext_resource type="PackedScene" uid="uid://dqwkal3t4gf2p" path="res://blunderbus.tscn" id="7_do5lr"] +[ext_resource type="PackedScene" uid="uid://dqwkal3t4gf2p" path="res://assets/blunderbus.tscn" id="7_do5lr"] [ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spider2.tscn" id="8_6tvxc"] [ext_resource type="PackedScene" uid="uid://bcmd7elfjhppe" path="res://assets/tree_1.tscn" id="9_0lt7q"] [ext_resource type="PackedScene" uid="uid://bycbdb5u5ewgl" path="res://assets/tree_2.tscn" id="10_g2f5o"] diff --git a/assets/weaponresources/mac10_uberresource.tres b/assets/weaponresources/mac10_uberresource.tres index 3ddb718..a1e4bd7 100644 --- a/assets/weaponresources/mac10_uberresource.tres +++ b/assets/weaponresources/mac10_uberresource.tres @@ -10,11 +10,12 @@ script = ExtResource("3_10fhq") gun_name = "Mac 10" gun_icon = ExtResource("2_a3oyj") +path = "res://assets/mac_10_uber.tscn" bullet = ExtResource("1_y4ehq") fire_mode = 0 fov_zoom_amt = 0.98 ads = false -recoil_amount = Vector3(0.1, 0.05, 0.05) +recoil_amount = Vector3(0.05, 0.05, 0.05) kick_amount = 0.1 max_ammo = 20 start_mags = 3 @@ -23,5 +24,4 @@ smoke_enabled = false bullet_force_mod = 5.0 bullet_speed = 600 casing = ExtResource("2_7wxcs") -casing_array = Array[NodePath]([]) mag = ExtResource("4_fiujt") diff --git a/assets/weaponresources/machete.tres b/assets/weaponresources/machete.tres new file mode 100644 index 0000000..d5428b4 --- /dev/null +++ b/assets/weaponresources/machete.tres @@ -0,0 +1,22 @@ +[gd_resource type="Resource" script_class="weapon_resource" load_steps=3 format=3 uid="uid://cn6axgvd75xt7"] + +[ext_resource type="Texture2D" uid="uid://1upy05l2sd3o" path="res://assets/Textures/ObjectTextures/Machete.png" id="1_c6dni"] +[ext_resource type="Script" path="res://scripts/weapon_resource.gd" id="2_nfg5p"] + +[resource] +script = ExtResource("2_nfg5p") +gun_name = "machete" +gun_icon = ExtResource("1_c6dni") +path = "res://assets/machete.tscn" +weapon_type = 1 +fire_mode = 1 +fov_zoom_amt = 0.98 +ads = false +recoil_amount = Vector3(0, 0.05, 0.05) +kick_amount = 0.1 +max_ammo = 0 +start_mags = 0 +bullet_damage = 5 +smoke_enabled = false +bullet_force_mod = 5.0 +bullet_speed = 600 diff --git a/assets/weaponresources/medium_ammo.tres b/assets/weaponresources/medium_ammo.tres new file mode 100644 index 0000000..c22791c --- /dev/null +++ b/assets/weaponresources/medium_ammo.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="bullet_resource" load_steps=4 format=3 uid="uid://b4sqlnsf0jla2"] + +[ext_resource type="PackedScene" uid="uid://dqhltdnqyg8ni" path="res://assets/bullet.tscn" id="1_i1dgo"] +[ext_resource type="PackedScene" uid="uid://crvohhc6kgshn" path="res://assets/bullet_hole.tscn" id="2_v06eh"] +[ext_resource type="Script" path="res://scripts/bullet_resource.gd" id="3_cliab"] + +[resource] +script = ExtResource("3_cliab") +asset = ExtResource("1_i1dgo") +ammo_type = 1 +bullet_hole = ExtResource("2_v06eh") diff --git a/assets/weaponresources/revolver1.tres b/assets/weaponresources/revolver1.tres new file mode 100644 index 0000000..8e03ce8 --- /dev/null +++ b/assets/weaponresources/revolver1.tres @@ -0,0 +1,24 @@ +[gd_resource type="Resource" script_class="weapon_resource" load_steps=4 format=3 uid="uid://cqphw4ll1bjjx"] + +[ext_resource type="Resource" uid="uid://b4sqlnsf0jla2" path="res://assets/weaponresources/medium_ammo.tres" id="1_53e42"] +[ext_resource type="Texture2D" uid="uid://bho7c8s2yno12" path="res://assets/Textures/ObjectTextures/revolver1.png" id="2_n6mhi"] +[ext_resource type="Script" path="res://scripts/weapon_resource.gd" id="3_1a2hk"] + +[resource] +script = ExtResource("3_1a2hk") +gun_name = "revolver" +gun_icon = ExtResource("2_n6mhi") +path = "res://assets/revolver_1.tscn" +weapon_type = 0 +bullet = ExtResource("1_53e42") +fire_mode = 1 +fov_zoom_amt = 0.98 +ads = false +recoil_amount = Vector3(0.05, 0.05, 0.05) +kick_amount = 0.1 +max_ammo = 15 +start_mags = 3 +bullet_damage = 1 +smoke_enabled = false +bullet_force_mod = 5.0 +bullet_speed = 1200 diff --git a/scenes/HUBWORLD.tscn b/scenes/HUBWORLD.tscn index 97368f5..3f67544 100644 --- a/scenes/HUBWORLD.tscn +++ b/scenes/HUBWORLD.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=3 uid="uid://jdwpc622vmok"] +[gd_scene load_steps=25 format=3 uid="uid://jdwpc622vmok"] [ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_1bnbi"] [ext_resource type="Resource" uid="uid://bxcxqt7rmfvdw" path="res://GameModes/hubworld.tres" id="2_62iy8"] @@ -18,6 +18,9 @@ [ext_resource type="PackedScene" uid="uid://d4suhr3allsj" path="res://assets/revolver2_pickup.tscn" id="14_ak7yq"] [ext_resource type="PackedScene" uid="uid://dyu46bns8mesv" path="res://assets/mac10_pickup.tscn" id="17_u30rd"] [ext_resource type="PackedScene" uid="uid://3hvtwn2qotle" path="res://assets/mac10_UBER_pickup.tscn" id="18_1idjd"] +[ext_resource type="PackedScene" uid="uid://hp4xn8oqdxnd" path="res://assets/machete_pickup.tscn" id="19_po1ll"] +[ext_resource type="PackedScene" uid="uid://dugcxo2665me0" path="res://assets/revolver1_pickup.tscn" id="20_cte0x"] +[ext_resource type="PackedScene" uid="uid://cucqbjb8bcha5" path="res://assets/blunderbuss_pickup.tscn" id="21_7mdbv"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_s7e4t"] sky_top_color = Color(0.623488, 0.812575, 0.900791, 1) @@ -264,3 +267,12 @@ item_price = 100 [node name="mac10_pickup" parent="." instance=ExtResource("18_1idjd")] transform = Transform3D(0.533245, 0.845961, 0, -0.845961, 0.533245, 0, 0, 0, 1, 4.67892, 2.14044, 7.83235) + +[node name="machete_pickup" parent="." instance=ExtResource("19_po1ll")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.62977, 0.478022, 7.20831) + +[node name="pistol1_pickup" parent="." instance=ExtResource("20_cte0x")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.08118, 0.423819, 5.64694) + +[node name="blunderbuss_pickup" parent="." instance=ExtResource("21_7mdbv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.25088, 0.636966, 3.43924) diff --git a/scripts/hud.gd b/scripts/hud.gd index 80f3635..9b9f0b4 100644 --- a/scripts/hud.gd +++ b/scripts/hud.gd @@ -113,7 +113,7 @@ func _process(delta: float) -> void: stam_bar_visible = true current_stam_bar.value = player.remaining_stamina - if player.gun != null: + if player.gun != null and player.gun.weapon_info.weapon_type == 0: if GameGlobals.gun_ammo.has(player.gun.weapon_info.gun_name) and GameGlobals.gun_ammo[player.gun.weapon_info.gun_name] != null: ammo_counter.visible = true ammo_current.text = str(GameGlobals.gun_ammo[player.gun.weapon_info.gun_name]).pad_zeros(2) diff --git a/scripts/melee_collision.gd b/scripts/melee_collision.gd index cab3959..ccc093f 100644 --- a/scripts/melee_collision.gd +++ b/scripts/melee_collision.gd @@ -7,4 +7,4 @@ var bullet_damage # Called when the node enters the scene tree for the first time. func _ready() -> void: - bullet_damage = machete.bullet_damage + bullet_damage = machete.weapon_info.bullet_damage diff --git a/scripts/melee_weapon.gd b/scripts/melee_weapon.gd index 7ad00d3..a3d1495 100644 --- a/scripts/melee_weapon.gd +++ b/scripts/melee_weapon.gd @@ -51,10 +51,10 @@ func shoot(delta): player.recoil.add_gun_recoil(recoil_amount.x) SignalBus.emit_signal("shot_fired") -func collider_enable(): +func melee_collider_enable(): collision_shape.disabled = false -func collider_disable(): +func melee_collider_disable(): collision_shape.disabled = true func swapped_out(): diff --git a/scripts/weapon_pickup.gd b/scripts/weapon_pickup.gd index a27375d..020b1d7 100644 --- a/scripts/weapon_pickup.gd +++ b/scripts/weapon_pickup.gd @@ -24,7 +24,8 @@ func picked_up(): if !gun_already_held: var spawn_gun = gun_resource.instantiate() - level_control.player.add_ammo(true,spawn_gun.weapon_info.gun_name,spawn_gun.weapon_info.bullet_info.ammo_type,spawn_gun.weapon_info.max_ammo,spawn_gun.weapon_info.start_mags) + if spawn_gun.weapon_info.weapon_type == 0: + level_control.player.add_ammo(true,spawn_gun.weapon_info.gun_name,spawn_gun.weapon_info.bullet.ammo_type,spawn_gun.weapon_info.max_ammo,spawn_gun.weapon_info.start_mags) GameGlobals.held_guns.append(gun_resource) var instance_gun = gun_resource.instantiate() var weapon_id = GameGlobals.held_guns.size() - 1 diff --git a/scripts/weapon_resource.gd b/scripts/weapon_resource.gd index 3f219f3..9851567 100644 --- a/scripts/weapon_resource.gd +++ b/scripts/weapon_resource.gd @@ -1,14 +1,15 @@ extends Resource class_name weapon_resource -@export_group("Gun Feel") @export var gun_name : String @export var gun_icon : Texture2D +@export var path : String +@export_enum("Gun","Melee") var weapon_type = 0 @export var bullet : bullet_resource @export_enum("Auto", "Single", "Burst") var fire_mode: int @export var fov_zoom_amt = .98 @export var ads : bool = false -@export var recoil_amount : Vector3 = Vector3(.2,.05,.05) +@export var recoil_amount : Vector3 = Vector3(.05,.05,.05) @export var kick_amount : float = .1 @export var max_ammo = 15 @export var start_mags = 3 @@ -18,8 +19,6 @@ class_name weapon_resource @export var bullet_speed = 600 @export_group("Gun Assets") @export var casing : Resource -@export_subgroup("Revolver") -@export var casing_array : Array[NodePath] - - @export var mag : Resource +@export_group("Shotgun Settings") +@export var shotgun_spread : Vector3 = Vector3(.1,.1,.1) diff --git a/scripts/weapon_select.gd b/scripts/weapon_select.gd index e128447..5b72ba7 100644 --- a/scripts/weapon_select.gd +++ b/scripts/weapon_select.gd @@ -96,7 +96,7 @@ func _draw(): var draw_pos = radius_mid * Vector2.from_angle(mid_rads) + offset var object = options[i].instantiate() - var texture = object.gun_icon + var texture = object.weapon_info.gun_icon if selection == i: var points_per_arc = 32 diff --git a/scripts/weapon_uberscript.gd b/scripts/weapon_uberscript.gd index e38426f..2957eab 100644 --- a/scripts/weapon_uberscript.gd +++ b/scripts/weapon_uberscript.gd @@ -2,15 +2,25 @@ extends Node3D @export var weapon_info : weapon_resource -@export var casing_ejector : Node -@export var mag_ejector : Node -@export var barrel_ray : Node @export var anim_player : AnimationPlayer +@export var barrel_ray : RayCast3D +@export var casing_ejector : RayCast3D +@export var mag_ejector : RayCast3D @export var audio_fire : AudioStreamPlayer3D @export var audio_empty : AudioStreamPlayer3D @export var audio_reload : AudioStreamPlayer3D +@export_group("Barrel Smoke") +@export var fire_smoke : GPUParticles3D +@export var smoke_timer : Timer +@export_group("Revolver") +@export var casing_array : Array[RayCast3D] +@export var chamber : Node +@export_group("Melee") +@export var melee_collision_shape : Node + @onready var player = get_tree().current_scene.player +var revolver_chamber_rot_amt var start_position var start_rotation var cycle_count_start @@ -35,7 +45,10 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta): - pass + if chamber != null: + var rot_amount = revolver_chamber_rot_amt * _delta * 10 + chamber.rotate_object_local(Vector3(0,-1,0),deg_to_rad(rot_amount)) + revolver_chamber_rot_amt -= rot_amount func reload_finished(): @@ -47,41 +60,54 @@ func reload_finished(): GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] -= GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] func shoot(delta): - if GameGlobals.gun_ammo[weapon_info.gun_name] > 0 and cycle_count > 0: + if weapon_info.weapon_type == 0: + if GameGlobals.gun_ammo[weapon_info.gun_name] > 0 and cycle_count > 0: + if !anim_player.is_playing(): + GameGlobals.gun_ammo[weapon_info.gun_name] -= 1 + #audio and anims + audio_fire.play() + anim_player.play("shoot") + vibration() + bullet_fire() + spawn_casing() + if chamber != null: + revolver_chamber_rot_amt += 60 + if weapon_info.smoke_enabled: + spawn_muzzle_smoke() + player.recoil.add_recoil(Vector3(0,weapon_info.recoil_amount.y,weapon_info.recoil_amount.z),10,10) + player.recoil.add_gun_recoil(weapon_info.recoil_amount.x) + #player.velocity += player.bullet_ray.global_basis * Vector3(0,0, kick_amount) + SignalBus.emit_signal("shot_fired") + if weapon_info.fire_mode != 0: + cycle_count -= 1 + + elif !anim_player.is_playing() and cycle_count != 0: + anim_player.play("empty") + audio_empty.play() + + elif weapon_info.weapon_type == 1: if !anim_player.is_playing(): - GameGlobals.gun_ammo[weapon_info.gun_name] -= 1 #audio and anims - audio_fire.play() anim_player.play("shoot") vibration() - bullet_fire() - spawn_casing() - if weapon_info.smoke_enabled: - spawn_muzzle_smoke() player.recoil.add_recoil(Vector3(0,weapon_info.recoil_amount.y,weapon_info.recoil_amount.z),10,10) player.recoil.add_gun_recoil(weapon_info.recoil_amount.x) - #player.velocity += player.bullet_ray.global_basis * Vector3(0,0, kick_amount) SignalBus.emit_signal("shot_fired") - if weapon_info.fire_mode != 0: - cycle_count -= 1 - - elif !anim_player.is_playing() and cycle_count != 0: - anim_player.play("empty") - audio_empty.play() func reload(): - if GameGlobals.gun_ammo[weapon_info.gun_name] < weapon_info.max_ammo and player.gun.anim_player.get_current_animation() != "reload" and GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] > 0: - #player.reloading = true - anim_player.play("reload") - audio_reload.play() - if anim_player.is_playing() and anim_player.current_animation == "reload": - if GameGlobals.gun_ammo[weapon_info.gun_name] == 0: - GameGlobals.gun_ammo[weapon_info.gun_name] = 0 - else: - GameGlobals.gun_ammo[weapon_info.gun_name] = 1 + if weapon_info.weapon_type == 0: + if GameGlobals.gun_ammo[weapon_info.gun_name] < weapon_info.max_ammo and player.gun.anim_player.get_current_animation() != "reload" and GameGlobals.ammo_reserve[str(weapon_info.bullet.ammo_type)] > 0: + #player.reloading = true + anim_player.play("reload") + audio_reload.play() + if anim_player.is_playing() and anim_player.current_animation == "reload": + if GameGlobals.gun_ammo[weapon_info.gun_name] == 0: + GameGlobals.gun_ammo[weapon_info.gun_name] = 0 + else: + GameGlobals.gun_ammo[weapon_info.gun_name] = 1 func spawn_mag(): - var instance_mag =weapon_info.mag.instantiate() + var instance_mag = weapon_info.mag.instantiate() instance_mag.position = mag_ejector.global_position instance_mag.transform.basis = mag_ejector.global_transform.basis instance_mag.linear_velocity += transform.basis * Vector3(0, -20, 0) + player.velocity @@ -96,23 +122,26 @@ func spawn_casing(): get_tree().get_root().add_child(instance_casing) func spawn_revolver_casings(): - if weapon_info.casing_array.size() > 0: - pass - #for i in weapon_info.casing_array: - #i.visible = false - #if weapon_info.casings_chamber_last > 0: - #var instance_casing = weapon_info.spawn_casing.instantiate() - #instance_casing.position = i.global_position - #instance_casing.random_rotation = false - #instance_casing.transform.basis = i.global_transform.basis - #instance_casing.player_velocity = player.velocity * transform.basis - #instance_casing.rotation.x += deg_to_rad(90) - #instance_casing.linear_velocity.y = -(8 + rng.randf_range(0,3)) - #get_tree().get_root().add_child(instance_casing) - #weapon_info.casings_chamber_last -= 1 + if casing_array.size() > 0: + for i in casing_array: + i.visible = false + if weapon_info.casings_chamber_last > 0: + var instance_casing = weapon_info.spawn_casing.instantiate() + instance_casing.position = i.global_position + instance_casing.random_rotation = false + instance_casing.transform.basis = i.global_transform.basis + instance_casing.player_velocity = player.velocity * transform.basis + instance_casing.rotation.x += deg_to_rad(90) + instance_casing.linear_velocity.y = -(8 + rng.randf_range(0,3)) + get_tree().get_root().add_child(instance_casing) + weapon_info.casings_chamber_last -= 1 func shotgun_pellet_spawn(): + + GameGlobals.gun_ammo[weapon_info.gun_name] -= 1 + audio_fire.play() var pellets_remaining = weapon_info.pellets_per_shot + while pellets_remaining > 0: var lv_x = rng.randf_range(-weapon_info.shotgun_spread.x,weapon_info.shotgun_spread.x) var lv_y = rng.randf_range(-weapon_info.shotgun_spread.y,weapon_info.shotgun_spread.y) @@ -124,6 +153,15 @@ func shotgun_pellet_spawn(): instance_bullet.player_position = player.global_position get_tree().get_root().add_child(instance_bullet) pellets_remaining -= 1 + + vibration() + fire_smoke.restart() + fire_smoke.emitting = true + smoke_timer.start() + player.recoil.add_recoil(Vector3(0,weapon_info.recoil_amount.y,weapon_info.recoil_amount.z),10,10) + player.recoil.add_gun_recoil(weapon_info.recoil_amount.x) + player.velocity += player.bullet_ray.global_basis * Vector3(0,0, weapon_info.kick_amount) + SignalBus.emit_signal("shot_fired") func spawn_muzzle_smoke(): var instance_smoke = weapon_info.muzzle_smoke.instantiate() @@ -150,5 +188,11 @@ func bullet_fire(): func swapped_out(): queue_free() +func melee_collider_enable(): + melee_collision_shape.disabled = false + +func melee_collider_disable(): + melee_collision_shape.disabled = true + func vibration(): Input.start_joy_vibration(0,.1,.5,.1)