About to start work on gun swapper #checkpoint

This commit is contained in:
derek
2024-07-15 10:19:35 -05:00
parent d4bafbc0bf
commit cdcc2db8e7
10 changed files with 68 additions and 52 deletions

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"godotTools.editorPath.godot4": "c:\\Program Files\\Godot_v4.2.2-stable_win64.exe\\Godot_v4.2.2-stable_win64.exe"
}

View File

@@ -219,11 +219,14 @@ tracks/7/path = NodePath(".")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0.28), "times": PackedFloat32Array(0.28, 1.59),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1, 1),
"values": [{ "values": [{
"args": [], "args": [],
"method": &"spawn_mag" "method": &"spawn_mag"
}, {
"args": [],
"method": &"reload_finished"
}] }]
} }
@@ -317,7 +320,6 @@ _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

@@ -88,63 +88,68 @@ step = 0.01
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
tracks/0/path = NodePath("mac10:position") tracks/0/path = NodePath("gun:position")
tracks/0/interp = 2 tracks/0/interp = 2
tracks/0/loop_wrap = true tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3, 0.87, 0.93, 1.22, 1.6), "times": PackedFloat32Array(0, 0.3, 0.72, 1.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0, "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)] "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/type = "value"
tracks/1/imported = false tracks/1/imported = false
tracks/1/enabled = true tracks/1/enabled = true
tracks/1/path = NodePath("mac10:rotation") tracks/1/path = NodePath("gun:rotation")
tracks/1/interp = 2 tracks/1/interp = 2
tracks/1/loop_wrap = true tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0, 0.3, 0.87, 0.93, 1.22, 1.6), "times": PackedFloat32Array(0, 0.3, 0.72, 1.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0, "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)] "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/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("mac10/chargerpull:position") tracks/2/path = NodePath("gun/mag:position")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(), "times": PackedFloat32Array(0.27, 0.78, 0.97),
"transitions": PackedFloat32Array(), "transitions": PackedFloat32Array(1, 1, 1),
"update": 0, "update": 0,
"values": [] "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/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("mac10/mag:position") tracks/3/path = NodePath("gun/mag:visible")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0.29, 0.75, 0.97), "times": PackedFloat32Array(0.23, 0.26, 0.82, 0.83),
"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), "transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1, "update": 1,
"values": [true, false, false, true] "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_bsc1a"] [sub_resource type="Animation" id="Animation_bsc1a"]
resource_name = "shoot" resource_name = "shoot"
@@ -220,8 +225,7 @@ audio_reload = NodePath("Audio/Reload")
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)
[node name="mag" parent="gun" index="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) 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)
visible = false
[node name="slide" parent="gun" index="1"] [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) transform = Transform3D(0.579973, 0, 0, 0, 0.579973, -1.0175e-10, 1.16415e-10, 7.27596e-11, 0.579973, 0, 0, 0)

View File

@@ -1,11 +1,10 @@
[gd_scene load_steps=17 format=3 uid="uid://drwae3loscbw7"] [gd_scene load_steps=16 format=3 uid="uid://drwae3loscbw7"]
[ext_resource type="Script" path="res://scripts/player.gd" id="1_x7wms"] [ext_resource type="Script" path="res://scripts/player.gd" id="1_x7wms"]
[ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="3_mbuvp"] [ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="3_mbuvp"]
[ext_resource type="Script" path="res://scripts/AmmoCounter.gd" id="4_8cy44"] [ext_resource type="Script" path="res://scripts/AmmoCounter.gd" id="4_8cy44"]
[ext_resource type="Texture2D" uid="uid://mcay8s80071h" path="res://assets/UI/Crosshair/SVG/Reticle 1_svg.svg" id="6_5m60e"] [ext_resource type="Texture2D" uid="uid://mcay8s80071h" path="res://assets/UI/Crosshair/SVG/Reticle 1_svg.svg" id="6_5m60e"]
[ext_resource type="Script" path="res://scripts/StaminaCounter.gd" id="6_bgi8o"] [ext_resource type="Script" path="res://scripts/StaminaCounter.gd" id="6_bgi8o"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="6_o1rq6"]
[ext_resource type="Script" path="res://scripts/UIScreenAdjust.gd" id="7_pnp4a"] [ext_resource type="Script" path="res://scripts/UIScreenAdjust.gd" id="7_pnp4a"]
[ext_resource type="AudioStream" uid="uid://bki17g7j4kqn4" path="res://assets/Audio/PickupSound Mixdown 3.wav" id="8_dwqsx"] [ext_resource type="AudioStream" uid="uid://bki17g7j4kqn4" path="res://assets/Audio/PickupSound Mixdown 3.wav" id="8_dwqsx"]
[ext_resource type="Texture2D" uid="uid://dhgyj08g1ge2o" path="res://assets/UI/SVG/hitmarkersvg.svg" id="8_kupqh"] [ext_resource type="Texture2D" uid="uid://dhgyj08g1ge2o" path="res://assets/UI/SVG/hitmarkersvg.svg" id="8_kupqh"]
@@ -33,11 +32,12 @@ 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)
collision_layer = 3 collision_layer = 3
safe_margin = 0.2
script = ExtResource("1_x7wms") script = ExtResource("1_x7wms")
weapon_holder = NodePath("Head/Camera3D/WeaponHolder") weapon_holder = NodePath("Head/Camera3D/WeaponHolder")
weapon_sway_amount = 0.1 weapon_sway_amount = 0.1
weapon_rotation_amount = 0.1 weapon_rotation_amount = 0.1
gun = NodePath("Head/Camera3D/WeaponHolder/mac10") gun = NodePath("")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."] [node name="MeshInstance3D" type="MeshInstance3D" parent="."]
visible = false visible = false
@@ -56,11 +56,8 @@ current = true
[node name="WeaponHolder" type="Node3D" parent="Head/Camera3D"] [node name="WeaponHolder" type="Node3D" parent="Head/Camera3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0341401, -0.111267) 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")]
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"] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.44954, -0.202025, -1.03649)
[node name="AmmoCounter" type="Label" parent="Head/Camera3D"] [node name="AmmoCounter" type="Label" parent="Head/Camera3D"]
offset_right = 3840.0 offset_right = 3840.0

View File

@@ -405,8 +405,9 @@ _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="Test Level 2" type="Node3D"] [node name="Test Level 2" type="Node3D" node_paths=PackedStringArray("player")]
script = ExtResource("1_orhgl") script = ExtResource("1_orhgl")
player = NodePath("Player")
gun_1 = ExtResource("2_q7f7y") gun_1 = ExtResource("2_q7f7y")
gun_2 = ExtResource("3_k8htc") gun_2 = ExtResource("3_k8htc")

View File

@@ -1,12 +1,17 @@
extends Node3D extends Node3D
@export var player : Node
@export var gun_1 : Resource @export var gun_1 : Resource
@export var gun_2 : Resource @export var gun_2 : Resource
var held_guns = [gun_1,gun_2]
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. var instance_loop_times = held_guns.length()
while instance_loop_times > -1:
held_guns[instance_loop_times]
instance_loop_times -= 1
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta): func _process(delta):

View File

@@ -60,16 +60,15 @@ func _process(delta):
pass pass
func _on_gun_anims_animation_finished(anim_name): func reload_finished():
if anim_name == "reload": if player.ammo_reserve >= max_ammo:
if player.ammo_reserve >= max_ammo: player.ammo += max_ammo
player.ammo += max_ammo player.ammo_reserve -= max_ammo
player.ammo_reserve -= max_ammo player.reloading = false
player.reloading = false else:
else: player.ammo += player.ammo_reserve
player.ammo += player.ammo_reserve player.ammo_reserve -= player.ammo_reserve
player.ammo_reserve -= player.ammo_reserve player.reloading = false
player.reloading = false
func shoot(player,delta): func shoot(player,delta):

View File

@@ -12,7 +12,6 @@ var y_magnet
var z_magnet var z_magnet
@export var pickupType: String @export var pickupType: String
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
rand_amt = rng.randf_range(10.0,100.0) rand_amt = rng.randf_range(10.0,100.0)

View File

@@ -73,11 +73,16 @@ func _ready():
start_sensitivity = SENSITIVITY start_sensitivity = SENSITIVITY
#Set up gun variables #Set up gun variables
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 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
gun_fire_pitch_starting = gun.audio_fire.pitch_scale gun_fire_pitch_starting = gun.audio_fire.pitch_scale
weapon_holder.add_child(instance_gun)
#turn off audio if unchecked in player #turn off audio if unchecked in player
if AUDIO == false: if AUDIO == false:
@@ -254,6 +259,7 @@ 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"):
body.collision_shape.disabled = true
var pickup_direction = self.global_position - body.global_position var pickup_direction = self.global_position - body.global_position
body.linear_velocity += pickup_direction * 5 body.linear_velocity += pickup_direction * 5