started work on gun switching, need to iron out kinks and set up weapon management script

This commit is contained in:
Derek
2024-07-14 23:52:46 -05:00
parent 6fedc3e3c5
commit d4bafbc0bf
10 changed files with 72 additions and 22 deletions

View File

@@ -317,6 +317,7 @@ _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")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.247, -0.222)
script = ExtResource("2_6i1l4") script = ExtResource("2_6i1l4")
max_ammo = 30 max_ammo = 30
random_spread_amt = 1.5 random_spread_amt = 1.5

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://dslxb3psx30vp"] [gd_scene load_steps=17 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://scripts/gun.gd" id="2_63tea"] [ext_resource type="Script" path="res://scripts/gun.gd" id="2_63tea"]
@@ -199,9 +199,6 @@ _data = {
"sprint": SubResource("Animation_tikvk") "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")] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0145504, -0.0460228)
script = ExtResource("2_63tea") script = ExtResource("2_63tea")
@@ -245,15 +242,7 @@ target_position = Vector3(0, 0, -1)
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) 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) target_position = Vector3(1, 0, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="." index="4"] [node name="Audio" type="Node3D" 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"] [node name="Fire" type="AudioStreamPlayer3D" parent="Audio" index="0"]
stream = ExtResource("8_jtjwm") stream = ExtResource("8_jtjwm")
@@ -269,7 +258,7 @@ stream = ExtResource("10_xn8pu")
volume_db = 3.0 volume_db = 3.0
bus = &"SFX" bus = &"SFX"
[node name="SpotLight3D" type="SpotLight3D" parent="." index="6"] [node name="SpotLight3D" type="SpotLight3D" parent="." index="5"]
transform = Transform3D(-6.79394e-06, 0, 1.87678, 0, 1.87678, 0, -1.87677, 0, -6.79392e-06, -1.63231, 0, 5.90892e-06) 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_color = Color(0.965385, 0.844179, 0.572893, 1)
light_energy = 0.0 light_energy = 0.0

View File

@@ -28,7 +28,7 @@ shadow_color = Color(0, 0, 0, 1)
size = Vector3(3, 3, 3) size = Vector3(3, 3, 3)
[sub_resource type="BoxShape3D" id="BoxShape3D_gnkxs"] [sub_resource type="BoxShape3D" id="BoxShape3D_gnkxs"]
size = Vector3(10, 3, 10) size = Vector3(10, 5.48804, 10)
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder", "gun") groups=["player"]] [node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder", "gun") groups=["player"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11359, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11359, 0)
@@ -125,6 +125,7 @@ collision_layer = 0
collision_mask = 4 collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape3D" parent="pick_up_magnet"] [node name="CollisionShape3D" type="CollisionShape3D" parent="pick_up_magnet"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.713223, -3.23375)
shape = SubResource("BoxShape3D_gnkxs") shape = SubResource("BoxShape3D_gnkxs")
[node name="Audio" type="Node" parent="."] [node name="Audio" type="Node" parent="."]

View File

@@ -86,6 +86,16 @@ inspect={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":105,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":105,"echo":false,"script":null)
] ]
} }
scroll_up={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
scroll_down={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
[rendering] [rendering]

View File

@@ -1,8 +1,11 @@
[gd_scene load_steps=46 format=3 uid="uid://dyop6vk3rgkkb"] [gd_scene load_steps=49 format=3 uid="uid://dyop6vk3rgkkb"]
[ext_resource type="Script" path="res://scripts/WeaponManager.gd" id="1_orhgl"]
[ext_resource type="Texture2D" uid="uid://dqs06ic3vjtwk" path="res://assets/Models/asphalt1.albedo.jpg" id="1_w4rag"] [ext_resource type="Texture2D" uid="uid://dqs06ic3vjtwk" path="res://assets/Models/asphalt1.albedo.jpg" id="1_w4rag"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="2_f87c2"] [ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="2_f87c2"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_q7f7y"]
[ext_resource type="PackedScene" uid="uid://d1j6ktsmxfq6e" path="res://assets/spider.tscn" id="3_cvvjo"] [ext_resource type="PackedScene" uid="uid://d1j6ktsmxfq6e" path="res://assets/spider.tscn" id="3_cvvjo"]
[ext_resource type="PackedScene" uid="uid://dslxb3psx30vp" path="res://assets/pistol1.tscn" id="3_k8htc"]
[ext_resource type="PackedScene" uid="uid://20csd6dmwj4y" path="res://assets/jump_platform.tscn" id="4_8nxyr"] [ext_resource type="PackedScene" uid="uid://20csd6dmwj4y" path="res://assets/jump_platform.tscn" id="4_8nxyr"]
[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"]
@@ -402,7 +405,10 @@ _data = {
[sub_resource type="BoxShape3D" id="BoxShape3D_82n8k"] [sub_resource type="BoxShape3D" id="BoxShape3D_82n8k"]
size = Vector3(16.265, 5.07275, 15.3267) size = Vector3(16.265, 5.07275, 15.3267)
[node name="restaurant1" type="Node3D"] [node name="Test Level 2" type="Node3D"]
script = ExtResource("1_orhgl")
gun_1 = ExtResource("2_q7f7y")
gun_2 = ExtResource("3_k8htc")
[node name="Player" parent="." instance=ExtResource("2_f87c2")] [node name="Player" parent="." instance=ExtResource("2_f87c2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.0295, 1.4435, 21.1166) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.0295, 1.4435, 21.1166)

File diff suppressed because one or more lines are too long

13
scripts/WeaponManager.gd Normal file
View File

@@ -0,0 +1,13 @@
extends Node3D
@export var gun_1 : Resource
@export var gun_2 : Resource
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View File

@@ -49,7 +49,7 @@ func _process(delta):
ray.enabled = false ray.enabled = false
#bullethole effect #bullethole effect
instance_bullethole = gun.bullethole.instantiate() #instance_bullethole = gun.bullethole.instantiate()
ray.get_collider().add_child(instance_bullethole) ray.get_collider().add_child(instance_bullethole)
instance_bullethole.global_transform.origin = ray.get_collision_point() instance_bullethole.global_transform.origin = ray.get_collision_point()
instance_bullethole.look_at(ray.get_collision_point() + ray.get_collision_normal(), Vector3.UP) instance_bullethole.look_at(ray.get_collision_point() + ray.get_collision_normal(), Vector3.UP)

View File

@@ -94,6 +94,7 @@ func shoot(player,delta):
instance_bullet.bullet_speed = bullet_speed instance_bullet.bullet_speed = bullet_speed
instance_bullet.bullet_drop = bullet_drop instance_bullet.bullet_drop = bullet_drop
instance_bullet.random_spread_amt = random_spread_amt instance_bullet.random_spread_amt = random_spread_amt
instance_bullet.instance_bullethole = bullethole.instantiate()
instance_bullet.gun = self instance_bullet.gun = self
get_tree().get_root().add_child(instance_bullet) get_tree().get_root().add_child(instance_bullet)

View File

@@ -32,6 +32,7 @@ var start_sensitivity
@export var gun : Node @export var gun : Node
@onready var gun_ray = $Head/Camera3D/GunRay @onready var gun_ray = $Head/Camera3D/GunRay
@onready var level_control = $".."
@onready var bullet_ray = $Head/Camera3D/BulletRay @onready var bullet_ray = $Head/Camera3D/BulletRay
var instance_bullet var instance_bullet
@@ -64,16 +65,18 @@ var pickupmsg
@onready var world_environment = $"../WorldEnvironment" @onready var world_environment = $"../WorldEnvironment"
@onready var pickup_sound = $Audio/PickupSound @onready var pickup_sound = $Audio/PickupSound
@onready var ear_wind = $Audio/EarWind @onready var ear_wind = $Audio/EarWind
@onready var weapon_spawner = $Head/Camera3D/WeaponHolder/WeaponSpawner
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
start_sensitivity = SENSITIVITY
#Set up gun variables #Set up gun variables
def_weapon_holder_pos = weapon_holder.position def_weapon_holder_pos = weapon_holder.position
ammo = gun.max_ammo ammo = gun.max_ammo
ammo_reserve = gun.max_ammo * gun.start_mags ammo_reserve = gun.max_ammo * gun.start_mags
bullet_damage = gun.bullet_damage bullet_damage = gun.bullet_damage
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 #turn off audio if unchecked in player
@@ -181,6 +184,31 @@ func _physics_process(delta):
gun.position = lerp(gun.position, gun.start_position,delta*7) gun.position = lerp(gun.position, gun.start_position,delta*7)
gun_folded = false gun_folded = false
#Weapon Swap Up
if Input.is_action_just_pressed("scroll_up"):
gun.queue_free()
var instance_gun = level_control.gun_2.instantiate()
instance_gun.global_transform.origin = weapon_spawner.position
gun = instance_gun
def_weapon_holder_pos = weapon_holder.position
ammo = gun.max_ammo
ammo_reserve = gun.max_ammo * gun.start_mags
bullet_damage = gun.bullet_damage
gun_fire_pitch_starting = gun.audio_fire.pitch_scale
weapon_holder.add_child(instance_gun)
#Weapon Swap Down
if Input.is_action_just_pressed("scroll_down"):
gun.queue_free()
var instance_gun = level_control.gun_1.instantiate()
instance_gun.global_transform.origin = weapon_spawner.position
gun = instance_gun
def_weapon_holder_pos = weapon_holder.position
ammo = gun.max_ammo
ammo_reserve = gun.max_ammo * gun.start_mags
bullet_damage = gun.bullet_damage
gun_fire_pitch_starting = gun.audio_fire.pitch_scale
weapon_holder.add_child(instance_gun)
move_and_slide() move_and_slide()
weapon_tilt(input_dir.x, delta) weapon_tilt(input_dir.x, delta)
weapon_sway(delta) weapon_sway(delta)
@@ -226,7 +254,8 @@ func _on_pick_up_detection_body_entered(body):
func _on_pick_up_magnet_body_entered(body): func _on_pick_up_magnet_body_entered(body):
if body.is_in_group("pickup"): if body.is_in_group("pickup"):
print("pickup") var pickup_direction = self.global_position - body.global_position
body.linear_velocity += pickup_direction * 5
func weapon_tilt(input_x, delta): func weapon_tilt(input_x, delta):
if weapon_holder: if weapon_holder: