diff --git a/assets/dead_player.tscn b/assets/dead_player.tscn index 03087e6..f42197a 100644 --- a/assets/dead_player.tscn +++ b/assets/dead_player.tscn @@ -3,20 +3,19 @@ [sub_resource type="SphereShape3D" id="SphereShape3D_tufx2"] radius = 1.26422 -[node name="DeadPlayer" type="Node3D"] +[node name="DeadPlayer" type="RigidBody3D"] +mass = 0.1 -[node name="CameraDrop" type="RigidBody3D" parent="."] - -[node name="Camera3D" type="Camera3D" parent="CameraDrop"] +[node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0341401, 0.111267) current = true -[node name="GunRay" type="RayCast3D" parent="CameraDrop/Camera3D" groups=["gun_ray"]] +[node name="GunRay" type="RayCast3D" parent="Camera3D" groups=["gun_ray"]] transform = Transform3D(0.977933, 0, -0.208919, 0, 1, 7.45058e-09, 0.208919, 0, 0.977933, 0, -0.197421, -0.129669) target_position = Vector3(0, 0, -1.2) -[node name="AudioListener3D" type="AudioListener3D" parent="CameraDrop/Camera3D"] +[node name="AudioListener3D" type="AudioListener3D" parent="Camera3D"] transform = Transform3D(1, 0, 0, 0, 0.992332, 0.123601, 0, -0.123601, 0.992332, 0, -0.921646, -0.000722691) -[node name="CollisionShape3D" type="CollisionShape3D" parent="CameraDrop"] +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] shape = SubResource("SphereShape3D_tufx2") diff --git a/assets/pla64B2.tmp b/assets/pla64B2.tmp new file mode 100644 index 0000000..5725ced --- /dev/null +++ b/assets/pla64B2.tmp @@ -0,0 +1,148 @@ +[gd_scene load_steps=17 format=3 uid="uid://drwae3loscbw7"] + +[ext_resource type="Script" path="res://scripts/player.gd" id="1_x7wms"] +[ext_resource type="PackedScene" uid="uid://dcmno6wafk5hg" path="res://assets/dead_player.tscn" id="2_4hoys"] +[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="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/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="Texture2D" uid="uid://dhgyj08g1ge2o" path="res://assets/UI/SVG/hitmarkersvg.svg" id="8_kupqh"] +[ext_resource type="AudioStream" uid="uid://dyd272r7n2ecd" path="res://assets/Audio/footsteps-shoes-jump-land-beach-sand-SBA-300118001.wav" id="10_tn0pn"] +[ext_resource type="AudioStream" uid="uid://bl8yg1d3bsxs3" path="res://assets/Audio/constant-natural-strong-wind-looping-SBA-300062687.wav" id="11_he7p5"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_n7uf3"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ko22d"] +radius = 0.509802 +height = 2.03547 + +[sub_resource type="LabelSettings" id="LabelSettings_n0odj"] +font = ExtResource("3_mbuvp") +font_size = 115 +shadow_size = 16 +shadow_color = Color(0, 0, 0, 1) + +[sub_resource type="BoxShape3D" id="BoxShape3D_nfpjw"] +size = Vector3(3, 3.58057, 3) + +[sub_resource type="SphereShape3D" id="SphereShape3D_xfie3"] +radius = 6.0 + +[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder") groups=["player"]] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11359, 0) +collision_layer = 3 +safe_margin = 0.2 +script = ExtResource("1_x7wms") +dead_player = ExtResource("2_4hoys") +SENSITIVITY = 0.008 +BOB_AMP = 0.085 +weapon_holder = NodePath("Head/Camera3D/WeaponHolder") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +visible = false +mesh = SubResource("CapsuleMesh_n7uf3") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CapsuleShape3D_ko22d") + +[node name="Head" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.894364, 0) + +[node name="Camera3D" type="Camera3D" parent="Head"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0341401, 0.111267) +current = true + +[node name="WeaponHolder" type="Node3D" parent="Head/Camera3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0341401, -0.111267) + +[node name="WeaponSpawner" type="Node3D" parent="Head/Camera3D/WeaponHolder"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.388891, -0.199195, -0.580209) + +[node name="AmmoCounter" type="Label" parent="Head/Camera3D"] +offset_right = 3840.0 +offset_bottom = 2160.0 +size_flags_horizontal = 3 +size_flags_vertical = 6 +text = "Ammo: X" +label_settings = SubResource("LabelSettings_n0odj") +horizontal_alignment = 2 +vertical_alignment = 2 +script = ExtResource("4_8cy44") +padding_amount = 0.025 + +[node name="StaminaCounter" type="Label" parent="Head/Camera3D"] +offset_right = 3440.0 +offset_bottom = 1440.0 +size_flags_horizontal = 3 +size_flags_vertical = 6 +text = "stamina: X" +label_settings = SubResource("LabelSettings_n0odj") +vertical_alignment = 2 +script = ExtResource("6_bgi8o") +padding_amount = 0.025 + +[node name="GunRay" type="RayCast3D" parent="Head/Camera3D" groups=["gun_ray"]] +transform = Transform3D(0.977933, 0, -0.208919, 0, 1, 7.45058e-09, 0.208919, 0, 0.977933, 0, -0.197421, -0.129669) +target_position = Vector3(0, 0, -1.2) + +[node name="AudioListener3D" type="AudioListener3D" parent="Head/Camera3D"] +transform = Transform3D(1, 0, 0, 0, 0.992332, 0.123601, 0, -0.123601, 0.992332, 0, -0.921646, -0.000722691) + +[node name="Crosshair" type="TextureRect" parent="Head/Camera3D"] +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("6_5m60e") +script = ExtResource("7_pnp4a") + +[node name="Hitmarker" type="TextureRect" parent="Head/Camera3D"] +visible = false +offset_right = 40.0 +offset_bottom = 40.0 +texture = ExtResource("8_kupqh") +script = ExtResource("7_pnp4a") + +[node name="BulletRay" type="RayCast3D" parent="Head/Camera3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.10121) +target_position = Vector3(0, 0, -200) +collision_mask = 7 +collide_with_areas = true + +[node name="InteractRay" type="RayCast3D" parent="Head/Camera3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0521634, -0.764677) +target_position = Vector3(0, 0, -3) +collision_mask = 8 +hit_from_inside = true +collide_with_areas = true + +[node name="pick_up_detection" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 4 + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="pick_up_detection"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0810862, 0.330574, -0.138576) +shape = SubResource("BoxShape3D_nfpjw") + +[node name="pick_up_magnet" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 4 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="pick_up_magnet"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.89866, 0, 0) +shape = SubResource("SphereShape3D_xfie3") + +[node name="Audio" type="Node" parent="."] + +[node name="PickupSound" type="AudioStreamPlayer" parent="Audio"] +stream = ExtResource("8_dwqsx") + +[node name="LandSound" type="AudioStreamPlayer3D" parent="Audio"] +stream = ExtResource("10_tn0pn") + +[node name="EarWind" type="AudioStreamPlayer" parent="Audio"] +stream = ExtResource("11_he7p5") + +[connection signal="tree_entered" from="." to="." method="_on_tree_entered"] +[connection signal="body_entered" from="pick_up_detection" to="." method="_on_pick_up_detection_body_entered"] +[connection signal="body_entered" from="pick_up_magnet" to="." method="_on_pick_up_magnet_body_entered"] diff --git a/assets/player.tscn b/assets/player.tscn index ee5bf31..5725ced 100644 --- a/assets/player.tscn +++ b/assets/player.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=16 format=3 uid="uid://drwae3loscbw7"] +[gd_scene load_steps=17 format=3 uid="uid://drwae3loscbw7"] [ext_resource type="Script" path="res://scripts/player.gd" id="1_x7wms"] +[ext_resource type="PackedScene" uid="uid://dcmno6wafk5hg" path="res://assets/dead_player.tscn" id="2_4hoys"] [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="Texture2D" uid="uid://mcay8s80071h" path="res://assets/UI/Crosshair/SVG/Reticle 1_svg.svg" id="6_5m60e"] @@ -34,6 +35,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11359, 0) collision_layer = 3 safe_margin = 0.2 script = ExtResource("1_x7wms") +dead_player = ExtResource("2_4hoys") SENSITIVITY = 0.008 BOB_AMP = 0.085 weapon_holder = NodePath("Head/Camera3D/WeaponHolder") diff --git a/scenes/test_level_2v2.tscn b/scenes/test_level_2v2.tscn index 5f1c648..189a420 100644 --- a/scenes/test_level_2v2.tscn +++ b/scenes/test_level_2v2.tscn @@ -417,7 +417,7 @@ player = NodePath("Player") gun_1 = ExtResource("2_6rjit") [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, -16.0295, 1.4435, 12.1166) weapon_sway_amount = 0.07 weapon_rotation_amount = 0.07 @@ -611,3 +611,11 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.7, 0.124041, 7.5267) [node name="spider" parent="." instance=ExtResource("12_12jy2")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5942, -0.228641, 21.7229) player_path = NodePath("../Player") + +[node name="spider2" parent="." instance=ExtResource("12_12jy2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.18181, -0.228641, 24.8332) +player_path = NodePath("../Player") + +[node name="spider3" parent="." instance=ExtResource("12_12jy2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.75832, -0.228641, 25.5971) +player_path = NodePath("../Player") diff --git a/scripts/bullet_enemy.gd b/scripts/bullet_enemy.gd index d4003fc..d821f5b 100644 --- a/scripts/bullet_enemy.gd +++ b/scripts/bullet_enemy.gd @@ -17,7 +17,7 @@ var player @onready var hit_indicator = $Audio/HitIndicator @export var bullethole : Resource - +var level_control var rng = RandomNumberGenerator.new() var av_x var av_y @@ -25,7 +25,6 @@ var av_z # Called when the node enters the scene tree for the first time. func _ready(): - #apply random rotation av_x = deg_to_rad(rng.randf_range(-random_spread_amt,random_spread_amt)) av_y = deg_to_rad(rng.randf_range(-random_spread_amt,random_spread_amt)) @@ -39,6 +38,11 @@ func _process(delta): position += transform.basis * Vector3(0, 0, -bullet_speed) * delta rotation.x = clamp(rotation.x - delta * bullet_drop,deg_to_rad(-90),deg_to_rad(90)) + if ray.is_colliding() and ray.get_collider().is_in_group("player"): + var player = ray.get_collider() + player.level_control.health -= bullet_damage + print(player.level_control.health) + if ray.is_colliding() and !ray.get_collider().is_in_group("player"): mesh.visible = false diff --git a/scripts/player.gd b/scripts/player.gd index 55ebe15..c044dd8 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -10,6 +10,7 @@ var rng = RandomNumberGenerator.new() @export_group("Game Settings") @export var AUDIO = true +@export var dead_player : Resource @export_group("Player Movement") @export var WALK_SPEED = 7.0 @export var SPRINT_SPEED = 15.0 @@ -204,6 +205,8 @@ func _physics_process(delta): if Input.is_action_just_pressed("escape"): get_tree().quit() + if level_control.health <= 0: + die() move_and_slide() weapon_tilt(input_dir.x, delta) @@ -297,3 +300,12 @@ func weapon_bob(vel : float, delta): func weapon_recoil(delta): var recoil_to = camera.rotation.x + gun.recoil_amount camera.rotation.x = clamp(lerp(camera.rotation.x,recoil_to, .05), deg_to_rad(-90), deg_to_rad(60)) + +func die(): + Engine.time_scale = .05 + await get_tree().create_timer(.3).timeout + get_tree().reload_current_scene() + #var instance_dead = dead_player.instantiate() + #instance_dead.position = head.global_position + #instance_dead.transform.basis = head.global_transform.basis + #get_tree().get_root().add_child(instance_dead) diff --git a/vendingmahcine.tscn b/vendingmahcine.tscn index 2b2690c..84c2603 100644 --- a/vendingmahcine.tscn +++ b/vendingmahcine.tscn @@ -154,7 +154,7 @@ transform = Transform3D(-0.0215597, -0.106081, 0.225348, 0.010103, -0.226377, -0 transform = Transform3D(-0.0215597, -0.106081, 0.225348, 0.010103, -0.226377, -0.105599, 0.248864, 4.49794e-10, 0.0238094, 0.164161, 2.55643, 0.471795) [node name="revolver14" parent="." index="7" instance=ExtResource("2_goj2p")] -transform = Transform3D(-0.0215595, -0.106081, 0.225348, 0.0101037, -0.226377, -0.105599, 0.248864, 7.5437e-07, 0.0238096, -0.0237292, 1.94229, 0.717401) +transform = Transform3D(0.0700553, 0.0956774, 0.220086, 0.0104575, -0.230271, 0.0967764, 0.239756, -0.0179125, -0.0685289, -0.016, 0.53, 0.956) [node name="revolver15" parent="." index="8" instance=ExtResource("2_goj2p")] transform = Transform3D(0.0215597, 0.106081, -0.225348, -0.010103, 0.226377, 0.105599, 0.248864, 2.08348e-09, 0.0238094, -0.135839, 1.79441, 0.471795) @@ -187,7 +187,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.182373, 1.45037, 0.997813) shape = SubResource("BoxShape3D_te7mh") [node name="vendingmachine_coil" parent="." index="14"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0259684, 1.80304, 0.628036) +transform = Transform3D(-1, 1.9312e-06, 0, -1.9312e-06, -1, 0, 0, 0, 1, -0.0259684, 1.80304, 0.628036) [node name="AnimationPlayer" type="AnimationPlayer" parent="." index="15"] libraries = {