dead camera much improved and has the ability to step through multiple stages

This commit is contained in:
derek
2024-11-04 15:19:07 -06:00
parent 475c7967f5
commit 11052fdb99
11 changed files with 193 additions and 54 deletions

View File

@@ -32,6 +32,6 @@ process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=1
svg/scale=1.0 svg/scale=2.0
editor/scale_with_editor_scale=false editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false editor/convert_colors_with_editor_theme=false

View File

@@ -56,8 +56,12 @@ emission_energy_multiplier = 4.0
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_3wvag"] [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_3wvag"]
direction = Vector3(0, 0, 1) direction = Vector3(0, 0, 1)
initial_velocity_min = 3.0 initial_velocity_min = 1.0
initial_velocity_max = 5.0 initial_velocity_max = 2.0
collision_mode = 1
collision_friction = 1.0
collision_bounce = 1.0
collision_use_scale = true
[sub_resource type="BoxMesh" id="BoxMesh_qy3jk"] [sub_resource type="BoxMesh" id="BoxMesh_qy3jk"]
size = Vector3(0.025, 0.025, 0.025) size = Vector3(0.025, 0.025, 0.025)
@@ -74,6 +78,7 @@ emission_energy_multiplier = 8.0
size = Vector3(0.04, 0.04, 0.04) size = Vector3(0.04, 0.04, 0.04)
[sub_resource type="CylinderShape3D" id="CylinderShape3D_tqvit"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_tqvit"]
margin = 0.001
height = 1.5 height = 1.5
radius = 0.055 radius = 0.055

View File

@@ -1,7 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://by7qyyhyurlw"] [gd_scene load_steps=7 format=3 uid="uid://by7qyyhyurlw"]
[ext_resource type="Script" path="res://scripts/dead_cam.gd" id="1_qxtd8"] [ext_resource type="Script" path="res://scripts/dead_cam.gd" id="1_qxtd8"]
[sub_resource type="SphereShape3D" id="SphereShape3D_qnbpl"]
radius = 0.25
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_2gkpp"] [sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_2gkpp"]
dof_blur_far_enabled = true dof_blur_far_enabled = true
dof_blur_near_enabled = true dof_blur_near_enabled = true
@@ -50,7 +53,15 @@ _data = {
[node name="DeadCam" type="Node3D" groups=["spawned"]] [node name="DeadCam" type="Node3D" groups=["spawned"]]
script = ExtResource("1_qxtd8") script = ExtResource("1_qxtd8")
[node name="Camera3D" type="Camera3D" parent="."] [node name="CameraRigid" type="RigidBody3D" parent="."]
collision_mask = 33
gravity_scale = 0.0
continuous_cd = true
[node name="CollisionShape3D" type="CollisionShape3D" parent="CameraRigid"]
shape = SubResource("SphereShape3D_qnbpl")
[node name="Camera3D" type="Camera3D" parent="CameraRigid"]
attributes = SubResource("CameraAttributesPractical_2gkpp") attributes = SubResource("CameraAttributesPractical_2gkpp")
fov = 15.0 fov = 15.0
@@ -58,8 +69,7 @@ fov = 15.0
target_position = Vector3(0, 0, -1) target_position = Vector3(0, 0, -1)
[node name="Timer" type="Timer" parent="."] [node name="Timer" type="Timer" parent="."]
wait_time = 0.25 wait_time = 0.3
one_shot = true
[node name="Whiteout" type="ColorRect" parent="."] [node name="Whiteout" type="ColorRect" parent="."]
material = SubResource("CanvasItemMaterial_m5ien") material = SubResource("CanvasItemMaterial_m5ien")
@@ -72,4 +82,6 @@ libraries = {
"": SubResource("AnimationLibrary_jsgjq") "": SubResource("AnimationLibrary_jsgjq")
} }
[node name="CamTarget" type="Node3D" parent="."]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"] [connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=27 format=3 uid="uid://drwae3loscbw7"] [gd_scene load_steps=26 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="PackedScene" uid="uid://dcmno6wafk5hg" path="res://assets/dead_player.tscn" id="2_4hoys"] [ext_resource type="PackedScene" uid="uid://dcmno6wafk5hg" path="res://assets/dead_player.tscn" id="2_4hoys"]
@@ -10,7 +10,6 @@
[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="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="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://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"] [ext_resource type="AudioStream" uid="uid://bl8yg1d3bsxs3" path="res://assets/Audio/constant-natural-strong-wind-looping-SBA-300062687.wav" id="11_he7p5"]
[ext_resource type="AudioStream" uid="uid://cy150nsjqp7lt" path="res://assets/Audio/grunt-male-SBA-300282985.wav" id="12_f51u4"] [ext_resource type="AudioStream" uid="uid://cy150nsjqp7lt" path="res://assets/Audio/grunt-male-SBA-300282985.wav" id="12_f51u4"]
@@ -38,21 +37,21 @@ shadow_color = Color(0, 0, 0, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ubnx7"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ubnx7"]
shader = ExtResource("14_v5svg") shader = ExtResource("14_v5svg")
shader_parameter/overlay = true shader_parameter/overlay = true
shader_parameter/scanlines_opacity = 0.05 shader_parameter/scanlines_opacity = 0.4
shader_parameter/scanlines_width = 0.5 shader_parameter/scanlines_width = 0.25
shader_parameter/grille_opacity = 0.05 shader_parameter/grille_opacity = 0.3
shader_parameter/resolution = Vector2(640, 480) shader_parameter/resolution = Vector2(640, 480)
shader_parameter/pixelate = false shader_parameter/pixelate = false
shader_parameter/roll = true shader_parameter/roll = true
shader_parameter/roll_speed = 1.0 shader_parameter/roll_speed = 1.0
shader_parameter/roll_size = 11.0 shader_parameter/roll_size = 15.0
shader_parameter/roll_variation = 2.8 shader_parameter/roll_variation = 1.8
shader_parameter/distort_intensity = 0.002 shader_parameter/distort_intensity = 0.003
shader_parameter/noise_opacity = 0.015 shader_parameter/noise_opacity = 0.16
shader_parameter/noise_speed = 5.0 shader_parameter/noise_speed = 5.0
shader_parameter/static_noise_intensity = 0.005 shader_parameter/static_noise_intensity = 0.005
shader_parameter/aberration = 0.00300005 shader_parameter/aberration = 0.00400005
shader_parameter/brightness = 1.4 shader_parameter/brightness = 1.69
shader_parameter/discolor = true shader_parameter/discolor = true
shader_parameter/warp_amount = 0.0 shader_parameter/warp_amount = 0.0
shader_parameter/clip_warp = true shader_parameter/clip_warp = true
@@ -152,18 +151,20 @@ hit_back_faces = false
transform = Transform3D(1, 0, 0, 0, 0.992332, 0.123601, 0, -0.123601, 0.992332, 0, -0.921646, -0.000722691) 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/Recoil/Camera3D" groups=["hud"]] [node name="Crosshair" type="TextureRect" parent="Head/Recoil/Camera3D" groups=["hud"]]
offset_right = 40.0 anchors_preset = 8
offset_bottom = 40.0 anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("6_5m60e") texture = ExtResource("6_5m60e")
script = ExtResource("7_pnp4a") script = ExtResource("7_pnp4a")
[node name="Hitmarker" type="TextureRect" parent="Head/Recoil/Camera3D"]
visible = false
offset_right = 49.285
offset_bottom = 40.0
texture = ExtResource("8_kupqh")
script = ExtResource("7_pnp4a")
[node name="BulletRay" type="RayCast3D" parent="Head/Recoil/Camera3D"] [node name="BulletRay" type="RayCast3D" parent="Head/Recoil/Camera3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.462246) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.462246)
target_position = Vector3(0, 0, -200) target_position = Vector3(0, 0, -200)
@@ -188,7 +189,6 @@ offset_right = 0.0
offset_bottom = 0.0 offset_bottom = 0.0
[node name="crtFilter" type="ColorRect" parent="Head/Recoil/Camera3D"] [node name="crtFilter" type="ColorRect" parent="Head/Recoil/Camera3D"]
visible = false
material = SubResource("ShaderMaterial_ubnx7") material = SubResource("ShaderMaterial_ubnx7")
offset_right = 3840.0 offset_right = 3840.0
offset_bottom = 2160.0 offset_bottom = 2160.0

View File

@@ -8,7 +8,7 @@
[ext_resource type="Texture2D" uid="uid://c54kwbix1mo58" path="res://assets/Models/spider1.turret.png" id="3_npupg"] [ext_resource type="Texture2D" uid="uid://c54kwbix1mo58" path="res://assets/Models/spider1.turret.png" id="3_npupg"]
[ext_resource type="Texture2D" uid="uid://cvi0upsh0e1mu" path="res://assets/Models/spider1.turret.roughness1.png" id="4_hb265"] [ext_resource type="Texture2D" uid="uid://cvi0upsh0e1mu" path="res://assets/Models/spider1.turret.roughness1.png" id="4_hb265"]
[ext_resource type="PackedScene" uid="uid://bbxibqxuiyqic" path="res://assets/stamina_pickup.tscn" id="4_p0ci7"] [ext_resource type="PackedScene" uid="uid://bbxibqxuiyqic" path="res://assets/stamina_pickup.tscn" id="4_p0ci7"]
[ext_resource type="Texture2D" uid="uid://r7awur11yerj" path="res://assets/Models/spider1.gunbarrel.albedo.png" id="5_dtcjr"] [ext_resource type="Texture2D" uid="uid://b4s3w1qnqcmgq" path="res://assets/Models/spider1.gunbarrel.albedo.png" id="5_dtcjr"]
[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"]

80
hitmarker.tscn Normal file
View File

@@ -0,0 +1,80 @@
[gd_scene load_steps=6 format=3 uid="uid://bweve8chonij3"]
[ext_resource type="Texture2D" uid="uid://dhgyj08g1ge2o" path="res://assets/UI/SVG/hitmarkersvg.svg" id="1_sja31"]
[ext_resource type="Script" path="res://scripts/hitmarker.gd" id="2_8qjsl"]
[sub_resource type="Animation" id="Animation_gb8xo"]
resource_name = "hit"
length = 0.05
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.05),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.05),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"anim_end"
}]
}
[sub_resource type="Animation" id="Animation_162up"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bki25"]
_data = {
"RESET": SubResource("Animation_162up"),
"hit": SubResource("Animation_gb8xo")
}
[node name="Hitmarker" type="TextureRect"]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -33.5
offset_top = -33.5
offset_right = 33.5
offset_bottom = 33.5
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(33, 33)
size_flags_horizontal = 4
size_flags_vertical = 4
texture = ExtResource("1_sja31")
script = ExtResource("2_8qjsl")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_bki25")
}
autoplay = "hit"

View File

@@ -130,8 +130,6 @@ func cleared():
clearedmsg.queue_free() clearedmsg.queue_free()
func die(): func die():
Engine.time_scale = .05
AudioServer.set_bus_effect_enabled(0,0,true)
var deadmsg = DEAD_ANNOUNCE.instantiate() var deadmsg = DEAD_ANNOUNCE.instantiate()
get_parent().add_child(deadmsg) get_parent().add_child(deadmsg)
var instance_dead = dead_player.instantiate() var instance_dead = dead_player.instantiate()
@@ -147,6 +145,7 @@ func die():
player.dead = true player.dead = true
player.toggle_hud(true) player.toggle_hud(true)
player.gun.visible = false player.gun.visible = false
player.health_indicator.color = Color(0.471, 0, 0, 0)
player.crosshair.visible = false player.crosshair.visible = false

View File

@@ -16,4 +16,3 @@ func _ready():
# 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):
position = Vector2(viewportWidth/2 - (size.x/2), viewportHeight/2 - (size.y/2)) position = Vector2(viewportWidth/2 - (size.x/2), viewportHeight/2 - (size.y/2))

View File

@@ -1,29 +1,39 @@
extends Node3D extends Node3D
const DEAD_CAM_FOV = 50.0
@export var MOVE_SPEED = 30 @export var MOVE_SPEED = 30
@export var CAMERA_LOOK_SPEED = 20 @export var CAMERA_LOOK_SPEED = 20
@export var FOV_CHANGE_SPEED = 40 @export var FOV_CHANGE_SPEED = 40
@onready var look_ray = $LookRay @onready var look_ray = $LookRay
@onready var camera = $Camera3D @onready var camera = $CameraRigid/Camera3D
@onready var camera_rigid: RigidBody3D = $CameraRigid
@onready var timer = $Timer @onready var timer = $Timer
@onready var level_control = get_tree().current_scene @onready var level_control = get_tree().current_scene
@onready var whiteout = $Whiteout @onready var whiteout = $Whiteout
const ENEMY_TAUNT = preload("res://assets/enemy_taunt.tscn") @onready var ENEMY_TAUNT = preload("res://assets/enemy_taunt.tscn")
@onready var animation_player = $AnimationPlayer @onready var animation_player = $AnimationPlayer
@onready var cam_target: Node3D = $CamTarget
var focus_dist var focus_dist
var target : Node var target : Node
var focus_target var focus_target
var respawn_position var respawn_position
var respawn_rotation var respawn_rotation
var taunt_node
var respawn_fov var respawn_fov
const DEAD_CAM_FOV = 50.0
var respawn = false var respawn = false
var anim_step = 0
# 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():
Engine.time_scale = .05
AudioServer.set_bus_effect_enabled(0,0,true)
#set FOV #set FOV
camera.fov = respawn_fov camera.fov = respawn_fov
@@ -31,7 +41,7 @@ func _ready():
level_control.player.stamina_counter.visible = false level_control.player.stamina_counter.visible = false
#start timer #start timer
timer.start() timer.start(.3)
#highlight target #highlight target
if target != null: if target != null:
@@ -39,6 +49,7 @@ func _ready():
taunt_spawn.text = taunt_spawn.taunts.pick_random() taunt_spawn.text = taunt_spawn.taunts.pick_random()
target.add_child(taunt_spawn) target.add_child(taunt_spawn)
taunt_spawn.global_transform.origin = target.position + Vector3(0,2,0) taunt_spawn.global_transform.origin = target.position + Vector3(0,2,0)
taunt_node = taunt_spawn
for i in target.outline_meshes: for i in target.outline_meshes:
@@ -61,24 +72,43 @@ func _process(delta):
camera.attributes.dof_blur_near_distance = focus_dist - 2 camera.attributes.dof_blur_near_distance = focus_dist - 2
if target == null: if target == null:
respawn = true anim_step = 3
# Move towards and look at target camera_rigid.global_position = lerp(camera_rigid.global_position,cam_target.global_position, delta * 100)
if respawn == false:
#calculate move direction match anim_step:
var target_pos_adjusted = Vector3(target.position.x -4,target.position.y + 4,target.position.z -4) 0:
position = lerp(position,target_pos_adjusted,delta * MOVE_SPEED) #Show enemy that killed player
look_ray.look_at(Vector3(target.global_position), Vector3.UP) var target_pos_adjusted = Vector3(target.position.x -4,target.position.y + 4,target.position.z -4)
camera.rotation = lerp(camera.rotation,look_ray.rotation,delta * CAMERA_LOOK_SPEED) cam_target.global_position = lerp(cam_target.global_position,target_pos_adjusted,delta * MOVE_SPEED)
camera.fov = lerp(camera.fov, 40.0, delta * 5) look_ray.global_position = target_pos_adjusted
look_ray.look_at(Vector3(target.global_position), Vector3.UP)
elif respawn == true: camera.rotation = lerp(camera.rotation,look_ray.rotation,delta * CAMERA_LOOK_SPEED)
animation_player.play("whiteout") camera.fov = lerp(camera.fov, 40.0, delta * 5)
1:
#aim at player from enemy
Engine.time_scale = .1
AudioServer.set_bus_effect_enabled(0,0,true)
taunt_node.visible = false
var target_pos_adjusted = Vector3(target.position.x,target.position.y + 2.1,target.position.z)
cam_target.global_position = lerp(cam_target.global_position,target_pos_adjusted,delta * MOVE_SPEED)
look_ray.global_position = target.global_position
look_ray.look_at(Vector3(level_control.player.global_position), Vector3.UP)
camera.rotation = lerp(camera.rotation,look_ray.rotation,delta * CAMERA_LOOK_SPEED)
camera.fov = lerp(camera.fov, 110.0, delta * 100)
2:
var target_pos_adjusted = Vector3(target.position.x,target.position.y + 2.1,target.position.z)
cam_target.global_position = lerp(cam_target.global_position,target_pos_adjusted,delta * MOVE_SPEED)
look_ray.global_position = target.global_position
look_ray.look_at(Vector3(level_control.player.global_position), Vector3.UP)
camera.rotation = lerp(camera.rotation,look_ray.rotation,delta * CAMERA_LOOK_SPEED)
camera.fov = lerp(camera.fov, 110.0, delta * 100)
animation_player.play("whiteout")
func _on_timer_timeout(): func _on_timer_timeout():
respawn = true anim_step += 1
print("ANIM STEP " +str(anim_step))
func reload_level(): func reload_level():
get_tree().reload_current_scene() get_tree().reload_current_scene()

13
scripts/hitmarker.gd Normal file
View File

@@ -0,0 +1,13 @@
extends TextureRect
# Called when the node enters the scene tree for the first time.
func _ready():
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func anim_end():
queue_free()

View File

@@ -56,6 +56,7 @@ var gun : Node
@onready var level_control = get_tree().current_scene @onready var level_control = get_tree().current_scene
@onready var interact_ray = $Head/Recoil/Camera3D/InteractRay @onready var interact_ray = $Head/Recoil/Camera3D/InteractRay
@onready var bullet_ray = $Head/Recoil/Camera3D/BulletRay @onready var bullet_ray = $Head/Recoil/Camera3D/BulletRay
@onready var hitmarker = load("res://hitmarker.tscn")
var instance_bullet var instance_bullet
var instance_casing var instance_casing
var instance_mag var instance_mag
@@ -85,7 +86,6 @@ var dead_announce = load("res://assets/dead_announce.tscn")
var pickupmsg var pickupmsg
@onready var crosshair = $Head/Recoil/Camera3D/Crosshair @onready var crosshair = $Head/Recoil/Camera3D/Crosshair
@onready var hitmarker: TextureRect = $Head/Recoil/Camera3D/Hitmarker
@onready var head = $Head @onready var head = $Head
@onready var camera = $Head/Recoil/Camera3D @onready var camera = $Head/Recoil/Camera3D
@onready var world_environment = $"../WorldEnvironment" @onready var world_environment = $"../WorldEnvironment"
@@ -122,6 +122,8 @@ func _ready():
health_indicator.size = Vector2(viewportWidth,viewportHeight) health_indicator.size = Vector2(viewportWidth,viewportHeight)
health_indicator.color = Color(0.471, 0, 0, 0) health_indicator.color = Color(0.471, 0, 0, 0)
crt_filter.visible = false
#turn off audio if unchecked in player #turn off audio if unchecked in player
if AUDIO == false: if AUDIO == false:
AudioServer.set_bus_volume_db(0,-80) AudioServer.set_bus_volume_db(0,-80)
@@ -397,9 +399,8 @@ func weapon_select(gun_id):
level_control.gun_spawn(gun_id) level_control.gun_spawn(gun_id)
func enemy_hit(): func enemy_hit():
hitmarker.visible = true var hitmarker_spawn = hitmarker.instantiate()
await get_tree().create_timer(.1).timeout camera.add_child(hitmarker_spawn)
hitmarker.visible = false
func toggle_hud(hud_on): func toggle_hud(hud_on):