Added Health pickup, started pickup assignment through level control and added enemy counter
This commit is contained in:
BIN
assets/Models/health_pickup.blend
Normal file
BIN
assets/Models/health_pickup.blend
Normal file
Binary file not shown.
50
assets/Models/health_pickup.blend.import
Normal file
50
assets/Models/health_pickup.blend.import
Normal 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
|
||||||
BIN
assets/Models/health_pickup.blend1
Normal file
BIN
assets/Models/health_pickup.blend1
Normal file
Binary file not shown.
28
assets/cleared_announce.tscn
Normal file
28
assets/cleared_announce.tscn
Normal 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
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
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
251
assets/rocketlauncher_pickup.tscn
Normal file
251
assets/rocketlauncher_pickup.tscn
Normal file
File diff suppressed because one or more lines are too long
@@ -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://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="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="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="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"]
|
[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
|
roughness = 0.194864
|
||||||
texture_filter = 2
|
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"
|
resource_name = "WarningLight"
|
||||||
cull_mode = 2
|
cull_mode = 2
|
||||||
albedo_color = Color(1, 0.486272, 0.152941, 1)
|
albedo_color = Color(1, 0.486272, 0.152941, 1)
|
||||||
roughness = 0.5
|
roughness = 0.5
|
||||||
emission = Color(0.235631, 0.084813, 2.40654e-08, 1)
|
emission_enabled = true
|
||||||
emission_energy_multiplier = 150.0
|
emission = Color(0.90612, 0.802416, 3.85046e-07, 1)
|
||||||
|
emission_energy_multiplier = 10.0
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_bkwy8"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_bkwy8"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
@@ -115,7 +118,7 @@ _surfaces = [{
|
|||||||
"index_count": 240,
|
"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),
|
"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)],
|
"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",
|
"name": "WarningLight",
|
||||||
"primitive": 3,
|
"primitive": 3,
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
@@ -125,11 +128,6 @@ _surfaces = [{
|
|||||||
blend_shape_mode = 0
|
blend_shape_mode = 0
|
||||||
shadow_mesh = SubResource("ArrayMesh_bkwy8")
|
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"]
|
[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)
|
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")
|
casing = ExtResource("3_e5ft5")
|
||||||
bullet_speed = 75
|
bullet_speed = 75
|
||||||
bullet_drop = 0.01
|
bullet_drop = 0.01
|
||||||
bullet_damage = 0
|
|
||||||
stamina = ExtResource("4_p0ci7")
|
stamina = ExtResource("4_p0ci7")
|
||||||
ammo = ExtResource("5_k1lw4")
|
ammo = ExtResource("5_k1lw4")
|
||||||
money = ExtResource("6_ihv2y")
|
money = ExtResource("6_ihv2y")
|
||||||
|
health_pickup = ExtResource("7_i7u4i")
|
||||||
die_particles = ExtResource("7_w22oa")
|
die_particles = ExtResource("7_w22oa")
|
||||||
|
|
||||||
[node name="TurretLook" type="RayCast3D" parent="."]
|
[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)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00161432, 0.000886798, -0.0469466)
|
||||||
mesh = SubResource("ArrayMesh_ncgm4")
|
mesh = SubResource("ArrayMesh_ncgm4")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
surface_material_override/2 = SubResource("StandardMaterial3D_3kly2")
|
surface_material_override/2 = SubResource("StandardMaterial3D_1eb8w")
|
||||||
|
|
||||||
[node name="Barrel1" type="RayCast3D" parent="TurretLook/Turret"]
|
[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)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.122326, -0.000110626, -0.580876)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ config_version=5
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="First Person Test"
|
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/features=PackedStringArray("4.2", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
|||||||
118
scenes/ene1775.tmp
Normal file
118
scenes/ene1775.tmp
Normal 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
|
||||||
@@ -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="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://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="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="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://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"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_w6vpl"]
|
||||||
sky_top_color = Color(0.623488, 0.812575, 0.900791, 1)
|
sky_top_color = Color(0.623488, 0.812575, 0.900791, 1)
|
||||||
@@ -22,7 +26,7 @@ tonemap_mode = 2
|
|||||||
glow_enabled = true
|
glow_enabled = true
|
||||||
|
|
||||||
[sub_resource type="NavigationMesh" id="NavigationMesh_8aw3d"]
|
[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)]
|
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"]
|
[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")]
|
[node name="EnemyWork" type="Node3D" node_paths=PackedStringArray("player")]
|
||||||
script = ExtResource("1_laua1")
|
script = ExtResource("1_laua1")
|
||||||
player = NodePath("Player")
|
player = NodePath("Player")
|
||||||
money = null
|
MAX_PARTICLES = 75
|
||||||
health = null
|
|
||||||
MAX_PARTICLES = null
|
|
||||||
gun_1 = ExtResource("2_poauc")
|
gun_1 = ExtResource("2_poauc")
|
||||||
gun_2 = ExtResource("3_xdb5c")
|
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
|
shadow_enabled = true
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("4_a8lcp")]
|
[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
|
weapon_sway_amount = 0.07
|
||||||
|
|
||||||
[node name="EnemyHivemind1" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
[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"]]
|
[node name="EnemyHivemind2" type="Node3D" parent="." groups=["enemy_hivemind"]]
|
||||||
script = ExtResource("5_ngmqi")
|
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="."]
|
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
|
||||||
navigation_mesh = SubResource("NavigationMesh_8aw3d")
|
navigation_mesh = SubResource("NavigationMesh_8aw3d")
|
||||||
|
|
||||||
[node name="CSGBox3D" type="CSGBox3D" parent="NavigationRegion3D"]
|
[node name="CSGBox3D" type="CSGBox3D" parent="NavigationRegion3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.420555, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.420555, 0)
|
||||||
use_collision = true
|
use_collision = true
|
||||||
|
collision_layer = 7
|
||||||
|
collision_mask = 7
|
||||||
size = Vector3(75, 0.5, 75)
|
size = Vector3(75, 0.5, 75)
|
||||||
material = SubResource("StandardMaterial3D_6yrih")
|
material = SubResource("StandardMaterial3D_6yrih")
|
||||||
|
|
||||||
@@ -118,3 +119,15 @@ material = SubResource("StandardMaterial3D_6yrih")
|
|||||||
[node name="CSGBox3D" type="CSGBox3D" parent="."]
|
[node name="CSGBox3D" type="CSGBox3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.62976, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.62976, 0)
|
||||||
use_collision = true
|
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)
|
||||||
|
|||||||
@@ -1169,6 +1169,7 @@ gun_2 = ExtResource("3_umpon")
|
|||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("2_f87c2")]
|
[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)
|
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
|
weapon_sway_amount = 0.07
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ extends Node3D
|
|||||||
@export var MAX_PARTICLES = 100
|
@export var MAX_PARTICLES = 100
|
||||||
@export var gun_1 : Resource
|
@export var gun_1 : Resource
|
||||||
@export var gun_2 : 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 held_guns = []
|
||||||
var ammo_current = [0]
|
var ammo_current = [0]
|
||||||
var ammo_reserve = [0]
|
var ammo_reserve = [0]
|
||||||
@@ -14,12 +28,23 @@ var guns_dict = {}
|
|||||||
var current_gun_index
|
var current_gun_index
|
||||||
var particle_number = 0
|
var particle_number = 0
|
||||||
var enemy_hiveminds = []
|
var enemy_hiveminds = []
|
||||||
|
var remaining_enemies
|
||||||
|
|
||||||
# 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():
|
||||||
#global randomize function
|
#global randomize function
|
||||||
randomize()
|
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
|
#Set up starting guns and ammo
|
||||||
held_guns = [gun_1]
|
held_guns = [gun_1]
|
||||||
var instance_gun = held_guns[0].instantiate()
|
var instance_gun = held_guns[0].instantiate()
|
||||||
@@ -39,12 +64,12 @@ func _ready():
|
|||||||
#find enemy hiveminds
|
#find enemy hiveminds
|
||||||
for node in get_tree().get_nodes_in_group("enemy_hivemind"):
|
for node in get_tree().get_nodes_in_group("enemy_hivemind"):
|
||||||
enemy_hiveminds.append(node)
|
enemy_hiveminds.append(node)
|
||||||
|
#count starting enemies
|
||||||
|
enemy_count()
|
||||||
|
|
||||||
# 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):
|
||||||
for hivemind in enemy_hiveminds:
|
pass
|
||||||
remaining_enemies = hivemind.minions.size()
|
|
||||||
print("remaining enemies: " + str(remaining_enemies))
|
|
||||||
|
|
||||||
func gun_spawn(index):
|
func gun_spawn(index):
|
||||||
#loop around if scrolling past available guns
|
#loop around if scrolling past available guns
|
||||||
@@ -65,3 +90,33 @@ func gun_spawn(index):
|
|||||||
instance_gun.gun_index = index
|
instance_gun.gun_index = index
|
||||||
instance_gun.anim_player.play("swap_in")
|
instance_gun.anim_player.play("swap_in")
|
||||||
player.weapon_holder.add_child(instance_gun)
|
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())
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func _process(delta):
|
|||||||
position += transform.basis * Vector3(0, 0, -bullet_speed) * 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))
|
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"):
|
if ray.get_collider().is_in_group("player"):
|
||||||
var player = ray.get_collider()
|
var player = ray.get_collider()
|
||||||
player.level_control.health -= bullet_damage
|
player.level_control.health -= bullet_damage
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ var start_sensitivity
|
|||||||
var gun : Node
|
var gun : Node
|
||||||
|
|
||||||
@onready var gun_ray = $Head/Camera3D/GunRay
|
@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 interact_ray = $Head/Camera3D/InteractRay
|
||||||
@onready var bullet_ray = $Head/Camera3D/BulletRay
|
@onready var bullet_ray = $Head/Camera3D/BulletRay
|
||||||
var instance_bullet
|
var instance_bullet
|
||||||
@@ -222,7 +222,7 @@ func _physics_process(delta):
|
|||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
if level_control.health <= 0:
|
if level_control.health <= 0:
|
||||||
die()
|
level_control.die()
|
||||||
|
|
||||||
move_and_slide()
|
move_and_slide()
|
||||||
weapon_tilt(input_dir.x, delta)
|
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.pitch_scale = 1 + rng.randf_range(-.3,.3)
|
||||||
pickup_sound.play()
|
pickup_sound.play()
|
||||||
body.queue_free()
|
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":
|
elif body.pickupType == "jump":
|
||||||
pickupmsg = pickup_announce.instantiate()
|
pickupmsg = pickup_announce.instantiate()
|
||||||
pickupmsg.pickuptext = "jump"
|
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))
|
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)
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ const MAX_AV = 10
|
|||||||
@export var bullet_damage = 1
|
@export var bullet_damage = 1
|
||||||
@export var turret_look_speed = 6
|
@export var turret_look_speed = 6
|
||||||
|
|
||||||
|
@onready var level_control = get_tree().current_scene
|
||||||
@onready var nav_agent = $NavigationAgent3D
|
@onready var nav_agent = $NavigationAgent3D
|
||||||
@onready var target = $body/target
|
@onready var target = $body/target
|
||||||
@onready var movement_shape = $MovementShape
|
@onready var movement_shape = $MovementShape
|
||||||
@@ -33,11 +34,12 @@ const MAX_AV = 10
|
|||||||
|
|
||||||
|
|
||||||
@onready var turret = $TurretLook/Turret
|
@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 stamina : Resource
|
||||||
@export var ammo : Resource
|
@export var ammo : Resource
|
||||||
@export var money : Resource
|
@export var money : Resource
|
||||||
|
@export var health_pickup : Resource
|
||||||
@export var die_particles : Resource
|
@export var die_particles : Resource
|
||||||
@onready var turret_look = $TurretLook
|
@onready var turret_look = $TurretLook
|
||||||
|
|
||||||
@@ -90,7 +92,7 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
|
|||||||
if health <= 0:
|
if health <= 0:
|
||||||
#remove from parent array
|
#remove from parent array
|
||||||
get_parent().minions.erase(self)
|
get_parent().minions.erase(self)
|
||||||
|
level_control.enemy_count()
|
||||||
particlespawn = die_particles.instantiate()
|
particlespawn = die_particles.instantiate()
|
||||||
particlespawn.position = self.global_position
|
particlespawn.position = self.global_position
|
||||||
particlespawn.transform.basis = self.global_transform.basis
|
particlespawn.transform.basis = self.global_transform.basis
|
||||||
@@ -98,7 +100,8 @@ func _on_area_3d_body_part_hit(dam,bullet_damage):
|
|||||||
|
|
||||||
#pickup drop
|
#pickup drop
|
||||||
while number_of_drops > 0:
|
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_x = rng.randf_range(-MAX_LV,MAX_LV)
|
||||||
var lv_y = rng.randf_range(0,MAX_LV)
|
var lv_y = rng.randf_range(0,MAX_LV)
|
||||||
var lv_z = rng.randf_range(-MAX_LV,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
|
rand_select = ammo
|
||||||
3:
|
3:
|
||||||
rand_select = money
|
rand_select = money
|
||||||
|
4:
|
||||||
|
rand_select = health_pickup
|
||||||
# Random Item Drop
|
# Random Item Drop
|
||||||
rand_item = rand_select.instantiate()
|
rand_item = rand_select.instantiate()
|
||||||
rand_item.position = self.global_position
|
rand_item.position = self.global_position
|
||||||
@@ -165,9 +170,9 @@ func _on_prefire_timer_timeout():
|
|||||||
func _on_postfire_timer_timeout():
|
func _on_postfire_timer_timeout():
|
||||||
if turret_look_next.is_colliding() and turret_look_next.get_collider().is_in_group("player"):
|
if turret_look_next.is_colliding() and turret_look_next.get_collider().is_in_group("player"):
|
||||||
prefire_timer.start()
|
prefire_timer.start()
|
||||||
|
turret_material.emission_enabled = true
|
||||||
else:
|
else:
|
||||||
postfire_timer.start()
|
postfire_timer.start()
|
||||||
turret_material.emission_enabled = true
|
|
||||||
|
|
||||||
|
|
||||||
func _on_knocked_timer_timeout():
|
func _on_knocked_timer_timeout():
|
||||||
|
|||||||
Reference in New Issue
Block a user