Added Health pickup, started pickup assignment through level control and added enemy counter

This commit is contained in:
derek
2024-08-05 13:37:35 -05:00
parent c8f3e8eee6
commit 3335ad0804
17 changed files with 883 additions and 44 deletions

Binary file not shown.

View File

@@ -0,0 +1,50 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b176okflls62i"
path="res://.godot/imported/health_pickup.blend-90f31abcb70f1ae6213779a2215ac05c.scn"
[deps]
source_file="res://assets/Models/health_pickup.blend"
dest_files=["res://.godot/imported/health_pickup.blend-90f31abcb70f1ae6213779a2215ac05c.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

Binary file not shown.

View File

@@ -0,0 +1,28 @@
[gd_scene load_steps=4 format=3 uid="uid://b3kmoledivusi"]
[ext_resource type="FontFile" uid="uid://d2h2tjhxiv5wo" path="res://assets/fonts/White On Black.ttf" id="1_3u3rp"]
[ext_resource type="Script" path="res://scripts/dead_announce.gd" id="2_12exd"]
[sub_resource type="LabelSettings" id="LabelSettings_ic2ps"]
font = ExtResource("1_3u3rp")
font_size = 500
[node name="PickupAnnounce" type="Label"]
offset_right = 3440.0
offset_bottom = 1440.0
size_flags_horizontal = 3
size_flags_vertical = 6
text = "CLEARED"
label_settings = SubResource("LabelSettings_ic2ps")
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("2_12exd")
[node name="ColorRect" type="ColorRect" parent="."]
visible = false
y_sort_enabled = true
layout_mode = 0
offset_top = 1.0
offset_right = 3840.0
offset_bottom = 2161.0
color = Color(0.615686, 0, 0.0980392, 0.356863)

73
assets/health_pickup.tscn Normal file

File diff suppressed because one or more lines are too long

251
assets/mac10_pickup.tscn Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -12,6 +12,7 @@
[ext_resource type="PackedScene" uid="uid://bmbv6ujc00jhk" path="res://assets/ammo_pickup.tscn" id="5_k1lw4"]
[ext_resource type="PackedScene" uid="uid://c1sypdvjjuww" path="res://assets/money_pickup.tscn" id="6_ihv2y"]
[ext_resource type="Script" path="res://scripts/EnemyTarget.gd" id="7_8vkma"]
[ext_resource type="PackedScene" uid="uid://brcuqlvgpw4su" path="res://assets/health_pickup.tscn" id="7_i7u4i"]
[ext_resource type="PackedScene" uid="uid://b0rkkp07y3fnu" path="res://assets/die_particles.tscn" id="7_w22oa"]
[ext_resource type="AudioStream" uid="uid://0n251thxlnnp" path="res://assets/Audio/cannon-fire-single-shot-blast-explosion-SBA-300098885.wav" id="10_2qmhc"]
@@ -34,13 +35,15 @@ metallic = 1.0
roughness = 0.194864
texture_filter = 2
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xtnvp"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1eb8w"]
resource_local_to_scene = true
resource_name = "WarningLight"
cull_mode = 2
albedo_color = Color(1, 0.486272, 0.152941, 1)
roughness = 0.5
emission = Color(0.235631, 0.084813, 2.40654e-08, 1)
emission_energy_multiplier = 150.0
emission_enabled = true
emission = Color(0.90612, 0.802416, 3.85046e-07, 1)
emission_energy_multiplier = 10.0
[sub_resource type="ArrayMesh" id="ArrayMesh_bkwy8"]
_surfaces = [{
@@ -115,7 +118,7 @@ _surfaces = [{
"index_count": 240,
"index_data": PackedByteArray(0, 0, 60, 0, 66, 0, 7, 0, 79, 0, 71, 0, 3, 0, 90, 0, 63, 0, 4, 0, 105, 0, 91, 0, 1, 0, 84, 0, 102, 0, 9, 0, 123, 0, 81, 0, 10, 0, 132, 0, 72, 0, 17, 0, 146, 0, 101, 0, 24, 0, 159, 0, 110, 0, 26, 0, 170, 0, 118, 0, 8, 0, 143, 0, 121, 0, 12, 0, 151, 0, 137, 0, 19, 0, 167, 0, 149, 0, 22, 0, 179, 0, 157, 0, 28, 0, 127, 0, 173, 0, 32, 0, 212, 0, 180, 0, 35, 0, 225, 0, 190, 0, 42, 0, 233, 0, 194, 0, 45, 0, 234, 0, 198, 0, 51, 0, 221, 0, 207, 0, 217, 0, 56, 0, 235, 0, 219, 0, 237, 0, 205, 0, 204, 0, 236, 0, 47, 0, 238, 0, 58, 0, 228, 0, 239, 0, 229, 0, 200, 0, 202, 0, 231, 0, 40, 0, 230, 0, 59, 0, 224, 0, 232, 0, 226, 0, 192, 0, 193, 0, 227, 0, 37, 0, 222, 0, 57, 0, 214, 0, 223, 0, 215, 0, 188, 0, 186, 0, 210, 0, 30, 0, 211, 0, 55, 0, 216, 0, 213, 0, 218, 0, 181, 0, 183, 0, 220, 0, 50, 0, 128, 0, 53, 0, 209, 0, 126, 0, 208, 0, 172, 0, 171, 0, 206, 0, 48, 0, 177, 0, 49, 0, 199, 0, 178, 0, 201, 0, 156, 0, 158, 0, 203, 0, 41, 0, 165, 0, 44, 0, 196, 0, 166, 0, 197, 0, 148, 0, 147, 0, 195, 0, 39, 0, 152, 0, 36, 0, 191, 0, 150, 0, 189, 0, 136, 0, 135, 0, 187, 0, 34, 0, 141, 0, 33, 0, 182, 0, 142, 0, 184, 0, 120, 0, 122, 0, 185, 0, 52, 0, 169, 0, 46, 0, 176, 0, 168, 0, 175, 0, 116, 0, 114, 0, 174, 0, 20, 0, 161, 0, 43, 0, 163, 0, 160, 0, 162, 0, 112, 0, 113, 0, 164, 0, 18, 0, 145, 0, 38, 0, 155, 0, 144, 0, 154, 0, 100, 0, 98, 0, 153, 0, 14, 0, 134, 0, 31, 0, 139, 0, 133, 0, 138, 0, 74, 0, 76, 0, 140, 0, 6, 0, 125, 0, 54, 0, 131, 0, 124, 0, 130, 0, 83, 0, 82, 0, 129, 0, 29, 0, 87, 0, 25, 0, 117, 0, 85, 0, 115, 0, 103, 0, 104, 0, 119, 0, 21, 0, 106, 0, 23, 0, 108, 0, 107, 0, 109, 0, 93, 0, 95, 0, 111, 0, 16, 0, 94, 0, 15, 0, 99, 0, 92, 0, 97, 0, 65, 0, 64, 0, 96, 0, 13, 0, 80, 0, 27, 0, 89, 0, 78, 0, 88, 0, 70, 0, 68, 0, 86, 0, 2, 0, 62, 0, 11, 0, 77, 0, 61, 0, 73, 0, 67, 0, 69, 0, 75, 0, 5, 0),
"lods": [0.0794293, PackedByteArray(0, 0, 241, 0, 66, 0, 66, 0, 241, 0, 240, 0, 240, 0, 241, 0, 251, 0, 240, 0, 251, 0, 1, 1, 1, 1, 250, 0, 240, 0, 240, 0, 250, 0, 86, 0, 240, 0, 86, 0, 68, 0, 68, 0, 86, 0, 2, 0, 242, 0, 4, 1, 251, 0, 242, 0, 2, 1, 4, 1, 3, 0, 90, 0, 13, 0, 244, 0, 13, 0, 90, 0, 244, 0, 253, 0, 243, 0, 253, 0, 6, 1, 243, 0, 6, 1, 3, 1, 243, 0, 105, 0, 244, 0, 91, 0, 4, 0, 105, 0, 91, 0, 105, 0, 247, 0, 245, 0, 247, 0, 254, 0, 245, 0, 247, 0, 45, 0, 254, 0, 45, 0, 228, 0, 254, 0, 234, 0, 228, 0, 45, 0, 234, 0, 58, 0, 228, 0, 5, 1, 235, 0, 45, 0, 5, 1, 56, 0, 235, 0, 246, 0, 5, 1, 255, 0, 249, 0, 5, 1, 246, 0, 249, 0, 0, 1, 5, 1, 252, 0, 216, 0, 0, 1, 211, 0, 216, 0, 252, 0, 211, 0, 55, 0, 216, 0, 1, 0, 84, 0, 102, 0, 84, 0, 25, 0, 102, 0, 102, 0, 25, 0, 248, 0)],
"material": SubResource("StandardMaterial3D_xtnvp"),
"material": SubResource("StandardMaterial3D_1eb8w"),
"name": "WarningLight",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@@ -125,11 +128,6 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_bkwy8")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3kly2"]
albedo_color = Color(1, 0.486275, 0.152941, 1)
emission_enabled = true
emission_energy_multiplier = 150.0
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_g6dfb"]
points = PackedVector3Array(-0.109145, -0.100982, 0.206565, 0.213908, 0.0103289, 0.111653, 0.210758, -0.0272485, 0.108423, -0.140638, 0.0390896, -0.557154, -0.0488649, 0.143922, 0.00641546, 0.147693, -0.0395349, -0.557154, -0.0232939, -0.220893, 0.0557108, -0.284854, -0.0395349, 0.111279, -0.127528, -0.0395349, -0.557154, -0.0750859, 0.0783826, 0.24242, 0.140001, 0.0305022, -0.511341, 0.100704, -0.188034, 0.122241, -0.284854, 0.0259663, -0.0197799, 0.134582, 0.0783826, 0.203086, -0.118704, -0.194575, 0.0412369, 0.063774, -0.12634, 0.222093, 0.189144, 0.0666628, 0.00392469, -0.284854, -0.0395349, -0.0197799, 0.183034, -0.124407, 0.068475, 0.0128275, 0.141117, 0.0429592, 0.0224285, -0.212019, 0.000278367, 0.0147074, -0.0269731, 0.264989, -0.0594969, -0.184875, 0.153065, -0.273459, 0.0230461, 0.100179, 0.163372, -0.0892316, 0.172947, 0.0994136, -0.173815, -0.0482237, -0.0235362, -0.201901, -0.044965, 0.08209, 0.0783826, 0.24242, 0.138473, -0.0146924, 0.222613, -0.135271, 0.0103555, 0.224102, -0.0726226, -0.101516, 0.234347, 0.198452, -0.10104, 0.0591554)
@@ -595,10 +593,10 @@ bullet = ExtResource("2_aew5r")
casing = ExtResource("3_e5ft5")
bullet_speed = 75
bullet_drop = 0.01
bullet_damage = 0
stamina = ExtResource("4_p0ci7")
ammo = ExtResource("5_k1lw4")
money = ExtResource("6_ihv2y")
health_pickup = ExtResource("7_i7u4i")
die_particles = ExtResource("7_w22oa")
[node name="TurretLook" type="RayCast3D" parent="."]
@@ -609,7 +607,7 @@ target_position = Vector3(0, 0, -50)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00161432, 0.000886798, -0.0469466)
mesh = SubResource("ArrayMesh_ncgm4")
skeleton = NodePath("")
surface_material_override/2 = SubResource("StandardMaterial3D_3kly2")
surface_material_override/2 = SubResource("StandardMaterial3D_1eb8w")
[node name="Barrel1" type="RayCast3D" parent="TurretLook/Turret"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.122326, -0.000110626, -0.580876)

View File

@@ -11,7 +11,7 @@ config_version=5
[application]
config/name="First Person Test"
run/main_scene="res://scenes/enemy_working_scene.tscn"
run/main_scene="res://scenes/test_level_2v2.tscn"
config/features=PackedStringArray("4.2", "Forward Plus")
config/icon="res://icon.svg"

118
scenes/ene1775.tmp Normal file
View File

@@ -0,0 +1,118 @@
[gd_scene load_steps=12 format=3 uid="uid://dsnddbrlqkav2"]
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_laua1"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_poauc"]
[ext_resource type="PackedScene" uid="uid://2o2wcc5i1al4" path="res://assets/rocket_launcher.tscn" id="3_xdb5c"]
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_a8lcp"]
[ext_resource type="Script" path="res://scripts/EnemyHivemind1.gd" id="5_ngmqi"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spider2.tscn" id="6_qmuhr"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_w6vpl"]
sky_top_color = Color(0.623488, 0.812575, 0.900791, 1)
sky_horizon_color = Color(0.705872, 0.745394, 0.758448, 1)
ground_horizon_color = Color(0.705872, 0.745394, 0.758448, 1)
[sub_resource type="Sky" id="Sky_kdw67"]
sky_material = SubResource("ProceduralSkyMaterial_w6vpl")
[sub_resource type="Environment" id="Environment_klp4b"]
background_mode = 2
sky = SubResource("Sky_kdw67")
tonemap_mode = 2
glow_enabled = true
[sub_resource type="NavigationMesh" id="NavigationMesh_8aw3d"]
vertices = PackedVector3Array(-24.5, -4.63697, -268.188, -24.5, -4.63697, -218.938, 24.5, -4.63697, -218.938, 24.5, -4.63697, -268.188, -24.5, -30.137, -227.688, -24.5, -30.137, -178.438, 24.5, -30.137, -178.438, 24.5, -30.137, -227.688, -24.5, -71.387, -164.688, -24.5, -71.387, -115.438, 24.5, -71.387, -115.438, 24.5, -71.387, -164.688, -24.5, -71.387, -96.1881, -24.5, -71.387, -46.9381, 24.5, -71.387, -46.9381, 24.5, -71.387, -96.1881, -24.5, 0.113029, -24.6881, -24.5, 0.113029, 24.5619, 24.5, 0.113029, 24.5619, 24.5, 0.113029, -24.6881)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Array(7, 6, 4), PackedInt32Array(4, 6, 5), PackedInt32Array(11, 10, 8), PackedInt32Array(8, 10, 9), PackedInt32Array(15, 14, 12), PackedInt32Array(12, 14, 13), PackedInt32Array(19, 18, 16), PackedInt32Array(16, 18, 17)]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6yrih"]
albedo_color = Color(0.300579, 0.462784, 0.249767, 1)
[node name="EnemyWork" type="Node3D" node_paths=PackedStringArray("player")]
script = ExtResource("1_laua1")
player = NodePath("Player")
gun_1 = ExtResource("2_poauc")
gun_2 = ExtResource("3_xdb5c")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_klp4b")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.78152, -0.330606, 0.52908, 0, 0.848048, 0.529919, -0.62388, 0.414143, -0.662767, 0, 0, 0)
shadow_enabled = true
[node name="Player" parent="." instance=ExtResource("4_a8lcp")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00663102, 1.92114, -0.0244913)
AUDIO = false
weapon_sway_amount = 0.07
[node name="EnemyHivemind1" type="Node3D" parent="." groups=["enemy_hivemind"]]
script = ExtResource("5_ngmqi")
[node name="spider" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.87933, 0, 1.40028)
player_path = NodePath("../../Player")
[node name="spider2" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.69998, 9.53674e-07, 3.9282)
player_path = NodePath("../../Player")
[node name="spider3" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.14727, -1.90735e-06, -3.3705)
player_path = NodePath("../../Player")
[node name="spider4" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.485, 0, 1.40028)
player_path = NodePath("../../Player")
[node name="spider5" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.66438, 9.53674e-07, 3.9282)
player_path = NodePath("../../Player")
[node name="spider6" parent="EnemyHivemind1" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.21709, -1.90735e-06, -3.3705)
player_path = NodePath("../../Player")
[node name="EnemyHivemind2" type="Node3D" parent="." groups=["enemy_hivemind"]]
script = ExtResource("5_ngmqi")
[node name="spider4" parent="EnemyHivemind2" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.14727, 47.5757, -236.327)
player_path = NodePath("../../Player")
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_8aw3d")
[node name="CSGBox3D" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.420555, 0)
use_collision = true
size = Vector3(75, 0.5, 75)
material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D2" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -72.137, -71.5367)
use_collision = true
size = Vector3(50, 0.5, 50)
material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D3" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -72.137, -140.068)
use_collision = true
size = Vector3(50, 0.5, 50)
material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D4" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -30.806, -203.036)
use_collision = true
size = Vector3(50, 0.5, 50)
material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D5" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -5.17223, -243.688)
use_collision = true
size = Vector3(50, 0.5, 50)
material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.62976, 0)
use_collision = true

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://dsnddbrlqkav2"]
[gd_scene load_steps=16 format=3 uid="uid://dsnddbrlqkav2"]
[ext_resource type="Script" path="res://scripts/LevelManager.gd" id="1_laua1"]
[ext_resource type="PackedScene" uid="uid://brl0bsqjl5dg3" path="res://assets/mac_10.tscn" id="2_poauc"]
@@ -6,6 +6,10 @@
[ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="4_a8lcp"]
[ext_resource type="Script" path="res://scripts/EnemyHivemind1.gd" id="5_ngmqi"]
[ext_resource type="PackedScene" uid="uid://djr7vnr1hcx82" path="res://assets/spider2.tscn" id="6_qmuhr"]
[ext_resource type="PackedScene" uid="uid://c6bpysq1tjhy4" path="res://vendingmahcine.tscn" id="7_pr7m0"]
[ext_resource type="PackedScene" uid="uid://dws4iro7820fc" path="res://assets/pistol1_pickup.tscn" id="8_qwtxj"]
[ext_resource type="PackedScene" uid="uid://clu76sc4uoswn" path="res://assets/rocketlauncher_pickup.tscn" id="9_r8miu"]
[ext_resource type="PackedScene" uid="uid://dyu46bns8mesv" path="res://assets/mac10_pickup.tscn" id="10_pos4p"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_w6vpl"]
sky_top_color = Color(0.623488, 0.812575, 0.900791, 1)
@@ -22,7 +26,7 @@ tonemap_mode = 2
glow_enabled = true
[sub_resource type="NavigationMesh" id="NavigationMesh_8aw3d"]
vertices = PackedVector3Array(-24.5, -4.63697, -268.188, -24.5, -4.63697, -218.938, 24.5, -4.63697, -218.938, 24.5, -4.63697, -268.188, -24.5, -30.137, -227.688, -24.5, -30.137, -178.438, 24.5, -30.137, -178.438, 24.5, -30.137, -227.688, -24.5, -71.387, -164.688, -24.5, -71.387, -115.438, 24.5, -71.387, -115.438, 24.5, -71.387, -164.688, -24.5, -71.387, -96.1881, -24.5, -71.387, -46.9381, 24.5, -71.387, -46.9381, 24.5, -71.387, -96.1881, -24.5, 0.113029, -24.6881, -24.5, 0.113029, 24.5619, 24.5, 0.113029, 24.5619, 24.5, 0.113029, -24.6881)
vertices = PackedVector3Array(-24.5, -4.637, -268.188, -24.5, -4.637, -219.188, 24.5, -4.637, -219.188, 24.5, -4.637, -268.188, -24.5, -30.137, -227.688, -24.5, -30.137, -178.438, 24.5, -30.137, -178.438, 24.5, -30.137, -227.688, -24.5, -71.387, -164.688, -24.5, -71.387, -115.438, 24.5, -71.387, -115.438, 24.5, -71.387, -164.688, -24.5, -71.387, -96.188, -24.5, -71.387, -46.938, 24.5, -71.387, -46.938, 24.5, -71.387, -96.188, -37, 0.112999, -37.188, -37, 0.112999, 37.062, 37, 0.112999, 37.062, 37, 0.112999, -37.188)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Array(7, 6, 4), PackedInt32Array(4, 6, 5), PackedInt32Array(11, 10, 8), PackedInt32Array(8, 10, 9), PackedInt32Array(15, 14, 12), PackedInt32Array(12, 14, 13), PackedInt32Array(19, 18, 16), PackedInt32Array(16, 18, 17)]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6yrih"]
@@ -31,9 +35,7 @@ albedo_color = Color(0.300579, 0.462784, 0.249767, 1)
[node name="EnemyWork" type="Node3D" node_paths=PackedStringArray("player")]
script = ExtResource("1_laua1")
player = NodePath("Player")
money = null
health = null
MAX_PARTICLES = null
MAX_PARTICLES = 75
gun_1 = ExtResource("2_poauc")
gun_2 = ExtResource("3_xdb5c")
@@ -45,7 +47,8 @@ transform = Transform3D(-0.78152, -0.330606, 0.52908, 0, 0.848048, 0.529919, -0.
shadow_enabled = true
[node name="Player" parent="." instance=ExtResource("4_a8lcp")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00663102, 2.16663, -0.0244913)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00663102, 1.92114, -0.0244913)
AUDIO = false
weapon_sway_amount = 0.07
[node name="EnemyHivemind1" type="Node3D" parent="." groups=["enemy_hivemind"]]
@@ -78,16 +81,14 @@ player_path = NodePath("../../Player")
[node name="EnemyHivemind2" type="Node3D" parent="." groups=["enemy_hivemind"]]
script = ExtResource("5_ngmqi")
[node name="spider4" parent="EnemyHivemind2" instance=ExtResource("6_qmuhr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.14727, 47.5757, -236.327)
player_path = NodePath("../../Player")
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_8aw3d")
[node name="CSGBox3D" type="CSGBox3D" parent="NavigationRegion3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.420555, 0)
use_collision = true
collision_layer = 7
collision_mask = 7
size = Vector3(75, 0.5, 75)
material = SubResource("StandardMaterial3D_6yrih")
@@ -118,3 +119,15 @@ material = SubResource("StandardMaterial3D_6yrih")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.62976, 0)
use_collision = true
[node name="vendingmachine" parent="." instance=ExtResource("7_pr7m0")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.5914, -0.170555, -14.246)
[node name="pistol1_pickup" parent="." instance=ExtResource("8_qwtxj")]
transform = Transform3D(0.649528, -0.760338, 0, 0.760338, 0.649528, 0, 0, 0, 1, -24.7534, 1.09587, 5.88603)
[node name="rocketlauncher1_pickup" parent="." instance=ExtResource("9_r8miu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25, 1, 8)
[node name="mac10_pickup" parent="." instance=ExtResource("10_pos4p")]
transform = Transform3D(0.866025, -0.5, 0, 0.5, 0.866025, 0, 0, 0, 1, -28, 1, 10)

View File

@@ -1169,6 +1169,7 @@ gun_2 = ExtResource("3_umpon")
[node name="Player" parent="." instance=ExtResource("2_f87c2")]
transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, -16.0295, 1.4435, 12.1166)
AUDIO = false
weapon_sway_amount = 0.07
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]

View File

@@ -7,6 +7,20 @@ extends Node3D
@export var MAX_PARTICLES = 100
@export var gun_1 : Resource
@export var gun_2 : Resource
@export_group("Drops")
@export var ammo_drop_enabled = true
@export var stamina_drop_enabled = true
@export var health_drop_enabled = true
@export var money_drop_enabled = true
var ammo_drop = load("res://assets/ammo_pickup.tscn")
var stamina_drop = load("res://assets/stamina_pickup.tscn")
var health_drop = load("res://assets/health_pickup.tscn")
var money_drop = load("res://assets/money_pickup.tscn")
const CLEARED_ANNOUNCE = preload("res://assets/cleared_announce.tscn")
const DEAD_ANNOUNCE = preload("res://assets/dead_announce.tscn")
var pickups = []
var held_guns = []
var ammo_current = [0]
var ammo_reserve = [0]
@@ -14,12 +28,23 @@ var guns_dict = {}
var current_gun_index
var particle_number = 0
var enemy_hiveminds = []
var remaining_enemies
# Called when the node enters the scene tree for the first time.
func _ready():
#global randomize function
randomize()
#assign pickups to array
if ammo_drop_enabled == true:
pickups.append(ammo_drop)
if stamina_drop_enabled == true:
pickups.append(stamina_drop)
if health_drop_enabled == true:
pickups.append(health_drop)
if ammo_drop_enabled == true:
pickups.append(ammo_drop)
#Set up starting guns and ammo
held_guns = [gun_1]
var instance_gun = held_guns[0].instantiate()
@@ -39,12 +64,12 @@ func _ready():
#find enemy hiveminds
for node in get_tree().get_nodes_in_group("enemy_hivemind"):
enemy_hiveminds.append(node)
#count starting enemies
enemy_count()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
for hivemind in enemy_hiveminds:
remaining_enemies = hivemind.minions.size()
print("remaining enemies: " + str(remaining_enemies))
pass
func gun_spawn(index):
#loop around if scrolling past available guns
@@ -65,3 +90,33 @@ func gun_spawn(index):
instance_gun.gun_index = index
instance_gun.anim_player.play("swap_in")
player.weapon_holder.add_child(instance_gun)
func enemy_count():
var sum = 0
for i in enemy_hiveminds:
sum += i.minions.size()
print("enemies: " + str(sum))
if sum == 0:
cleared()
func cleared():
Engine.time_scale = .05
var clearedmsg = CLEARED_ANNOUNCE.instantiate()
get_parent().add_child(clearedmsg)
await get_tree().create_timer(.3).timeout
get_tree().reload_current_scene()
func die():
Engine.time_scale = .05
var deadmsg = DEAD_ANNOUNCE.instantiate()
get_parent().add_child(deadmsg)
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)
func pickup_spawn():
pickups.pick_random()
print(pickups.pick_random())

View File

@@ -38,7 +38,7 @@ 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():
if ray.is_colliding() and ray.get_collider != null:
if ray.get_collider().is_in_group("player"):
var player = ray.get_collider()
player.level_control.health -= bullet_damage

View File

@@ -39,7 +39,7 @@ var start_sensitivity
var gun : Node
@onready var gun_ray = $Head/Camera3D/GunRay
@onready var level_control = $".."
@onready var level_control = get_tree().current_scene
@onready var interact_ray = $Head/Camera3D/InteractRay
@onready var bullet_ray = $Head/Camera3D/BulletRay
var instance_bullet
@@ -222,7 +222,7 @@ func _physics_process(delta):
get_tree().quit()
if level_control.health <= 0:
die()
level_control.die()
move_and_slide()
weapon_tilt(input_dir.x, delta)
@@ -267,6 +267,12 @@ func _on_pick_up_detection_body_entered(body):
pickup_sound.pitch_scale = 1 + rng.randf_range(-.3,.3)
pickup_sound.play()
body.queue_free()
elif body.pickupType == "health":
level_control.health += 1
picked_up = true
pickup_sound.pitch_scale = 1 + rng.randf_range(-.3,.3)
pickup_sound.play()
body.queue_free()
elif body.pickupType == "jump":
pickupmsg = pickup_announce.instantiate()
pickupmsg.pickuptext = "jump"
@@ -326,13 +332,3 @@ func weapon_recoil(delta):
camera.rotation.x = clamp(lerp(camera.rotation.x,recoil_to, .05), deg_to_rad(-90), deg_to_rad(85))
func die():
Engine.time_scale = .05
var deadmsg = dead_announce.instantiate()
get_parent().add_child(deadmsg)
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)

View File

@@ -17,6 +17,7 @@ const MAX_AV = 10
@export var bullet_damage = 1
@export var turret_look_speed = 6
@onready var level_control = get_tree().current_scene
@onready var nav_agent = $NavigationAgent3D
@onready var target = $body/target
@onready var movement_shape = $MovementShape
@@ -33,11 +34,12 @@ const MAX_AV = 10
@onready var turret = $TurretLook/Turret
@onready var turret_material = turret.mesh.surface_get_material(2)
@onready var turret_material = turret.get_surface_override_material(2)
@export var stamina : Resource
@export var ammo : Resource
@export var money : Resource
@export var health_pickup : Resource
@export var die_particles : Resource
@onready var turret_look = $TurretLook
@@ -90,7 +92,7 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
if health <= 0:
#remove from parent array
get_parent().minions.erase(self)
level_control.enemy_count()
particlespawn = die_particles.instantiate()
particlespawn.position = self.global_position
particlespawn.transform.basis = self.global_transform.basis
@@ -98,7 +100,8 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
#pickup drop
while number_of_drops > 0:
var rand_selector = int(round(rng.randf_range(1,3)))
level_control.pickup_spawn()
var rand_selector = rng.randi_range(1,4)
var lv_x = rng.randf_range(-MAX_LV,MAX_LV)
var lv_y = rng.randf_range(0,MAX_LV)
var lv_z = rng.randf_range(-MAX_LV,MAX_LV)
@@ -113,6 +116,8 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
rand_select = ammo
3:
rand_select = money
4:
rand_select = health_pickup
# Random Item Drop
rand_item = rand_select.instantiate()
rand_item.position = self.global_position
@@ -165,9 +170,9 @@ func _on_prefire_timer_timeout():
func _on_postfire_timer_timeout():
if turret_look_next.is_colliding() and turret_look_next.get_collider().is_in_group("player"):
prefire_timer.start()
turret_material.emission_enabled = true
else:
postfire_timer.start()
turret_material.emission_enabled = true
func _on_knocked_timer_timeout():