[gd_scene load_steps=45 format=3 uid="uid://drwae3loscbw7"] [ext_resource type="Script" uid="uid://bieeh1iro4ji1" path="res://scripts/player.gd" id="1_x7wms"] [ext_resource type="Script" uid="uid://linvnr16djav" path="res://scripts/PlayerStateMachine.gd" id="2_1npgd"] [ext_resource type="Script" uid="uid://s2nes6cthron" path="res://scripts/recoil.gd" id="3_405jc"] [ext_resource type="Script" uid="uid://o7g6oowyn6pe" path="res://scripts/player_on_foot.gd" id="3_ib4e7"] [ext_resource type="Script" uid="uid://dlymy0m127nt0" path="res://scripts/player_crouched.gd" id="4_67mtf"] [ext_resource type="Texture2D" uid="uid://cknftvqq8rbrm" path="res://assets/Textures/Cookie_tutorial_texture_flashlight.png" id="4_x670l"] [ext_resource type="PackedScene" uid="uid://dqgtnykkbngem" path="res://assets/weapon_select.tscn" id="5_bvbcl"] [ext_resource type="Script" uid="uid://clyi3lxv4xt4g" path="res://scripts/player_jumping.gd" id="5_m0ick"] [ext_resource type="PackedScene" uid="uid://br882tlh3cfwu" path="res://hud.tscn" id="5_yenaw"] [ext_resource type="Script" uid="uid://bgj2bqb5dys41" path="res://scripts/player_wall_running.gd" id="6_1npgd"] [ext_resource type="Script" uid="uid://boyl3qkg4j4vc" path="res://scripts/player_ground_pound.gd" id="7_2asft"] [ext_resource type="AudioStream" uid="uid://bki17g7j4kqn4" path="res://assets/Audio/PickupSound Mixdown 3.wav" id="8_dwqsx"] [ext_resource type="Script" uid="uid://cl8wpx8g1b5ce" path="res://scripts/player_clamber.gd" id="8_iwgew"] [ext_resource type="Script" uid="uid://bb7u0nnktowwp" path="res://scripts/player_on_ladder.gd" id="8_vgdha"] [ext_resource type="Shader" uid="uid://djbvmc8hurccm" path="res://assets/Shaders/speedlines.gdshader" id="10_5hu7c"] [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://cjpvibojo13qv" path="res://assets/Audio/clock-ticking-exact-looping-SBA-300062891.wav" id="11_6k4fy"] [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://cwre1dq8gsvbg" path="res://assets/Audio/Foley Sports/Boxing/Gloves Block Intense.wav" id="12_qhd01"] [ext_resource type="PackedScene" uid="uid://cfbwx2fsdp0b3" path="res://pause_menu.tscn" id="13_xrfwr"] [ext_resource type="AudioStream" uid="uid://t50i483xmj3a" path="res://assets/Audio/Weapons/toy-click-spin-SBA-300071143.wav" id="14_pnsbm"] [ext_resource type="AudioStream" uid="uid://c1e6vr2hndho7" path="res://assets/Audio/Weapons/Misc (Ammo Boxes, Holsters, Etc)/Kydex Unholster 002.wav" id="17_1fyjm"] [ext_resource type="AudioStream" uid="uid://dqj4cx05f25jj" path="res://assets/Audio/punch-body-hard-SBA-300156881.wav" id="19_6jglu"] [ext_resource type="AudioStream" uid="uid://duku6mr3vl5fy" path="res://assets/Audio/Player Character SFX/crouch2.wav" id="19_pi7h7"] [ext_resource type="AudioStream" uid="uid://n3e7s3xucsi1" path="res://assets/Audio/Foley Inventory and Interactions/Foley Inventory and Interactions/Drop Item/Drop Jewelery B.wav" id="20_rvr83"] [ext_resource type="AudioStream" uid="uid://ig4e5tgbh87m" path="res://assets/Audio/Player Character SFX/footsteps-tennis-shoes-walk-1.wav" id="21_fsjho"] [ext_resource type="AudioStream" uid="uid://c7bwilypn74lc" path="res://assets/Audio/Foley Sports/Hockey/Ball Hit Leg.wav" id="22_c88rq"] [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_l5ga0"] blend_mode = 1 [sub_resource type="CapsuleMesh" id="CapsuleMesh_n7uf3"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ko22d"] radius = 0.509802 height = 2.03547 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_rw673"] radius = 0.506064 height = 1.19253 [sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_vhypf"] dof_blur_amount = 0.3 [sub_resource type="FastNoiseLite" id="FastNoiseLite_vupcx"] noise_type = 0 frequency = 0.05 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0eorp"] seamless = true noise = SubResource("FastNoiseLite_vupcx") [sub_resource type="ShaderMaterial" id="ShaderMaterial_ubnx7"] shader = ExtResource("10_5hu7c") shader_parameter/noise = SubResource("NoiseTexture2D_0eorp") shader_parameter/line_color = Color(1, 1, 1, 1) shader_parameter/line_count = 0.5 shader_parameter/line_density = 0.255 shader_parameter/line_faloff = 0.25 shader_parameter/mask_size = 0.1 shader_parameter/mask_edge = 0.5 shader_parameter/animation_speed = 20.0 [sub_resource type="BoxShape3D" id="BoxShape3D_nfpjw"] size = Vector3(3, 3.58057, 3) [sub_resource type="SphereShape3D" id="SphereShape3D_xfie3"] radius = 5.0 [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_pxyjg"] random_pitch = 2.0 streams_count = 1 stream_0/stream = ExtResource("21_fsjho") [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_u5cxn"] random_pitch = 1.1 streams_count = 1 stream_0/stream = ExtResource("22_c88rq") [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_xswn0"] random_pitch = 2.0 streams_count = 1 stream_0/stream = ExtResource("19_pi7h7") [sub_resource type="Animation" id="Animation_q5egb"] length = 0.001 tracks/0/type = "position_3d" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Head/Recoil/Camera3D/WeaponHolder") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = PackedFloat32Array(0, 1, 0, -0.0341401, -0.111267) [sub_resource type="Animation" id="Animation_llq31"] resource_name = "punch" length = 0.75 step = 0.01 tracks/0/type = "method" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath(".") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0.3), "transitions": PackedFloat32Array(1), "values": [{ "args": [], "method": &"punch" }] } tracks/1/type = "position_3d" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("Head/Recoil/Camera3D/WeaponHolder") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = PackedFloat32Array(0, 1, 0, -0.0341401, -0.111267, 0.19, 1, 0.0274239, -0.455616, 0.416463, 0.23, 1, 0.0346386, -0.441928, 0.312534, 0.3, 1, 0.129892, -0.454487, -0.652062, 0.37, 1, 0.091674, -0.439886, -0.496679, 0.75, 1, 0, -0.0341401, -0.111267) tracks/2/type = "rotation_3d" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("Head/Recoil/Camera3D/WeaponHolder") tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1, 0.19, 1, 0.429604, -0.0899337, -0.184524, 0.879377, 0.23, 1, 0.404158, -0.0814679, -0.189232, 0.891186, 0.3, 1, 0.0843464, 0.014675, -0.188657, 0.978305, 0.37, 1, 0.124325, 0.0221516, -0.181308, 0.975285, 0.75, 1, 0, 0, 0, 1) [sub_resource type="AnimationLibrary" id="AnimationLibrary_d0x8a"] _data = { &"RESET": SubResource("Animation_q5egb"), &"punch": SubResource("Animation_llq31") } [node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("weapon_holder") groups=["persist", "player"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0) collision_layer = 4 collision_mask = 523 script = ExtResource("1_x7wms") SENSITIVITY = 0.008 weapon_holder = NodePath("Head/Recoil/Camera3D/WeaponHolder") [node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("character", "initial_state")] script = ExtResource("2_1npgd") character = NodePath("..") initial_state = NodePath("On Foot") [node name="On Foot" type="Node" parent="StateMachine"] script = ExtResource("3_ib4e7") metadata/_custom_type_script = "uid://dk0vg5btak80a" [node name="Crouched" type="Node" parent="StateMachine"] script = ExtResource("4_67mtf") move_speed = 5.0 move_transition_speed = 4.0 [node name="In Air" type="Node" parent="StateMachine"] script = ExtResource("5_m0ick") [node name="Wall Running" type="Node" parent="StateMachine"] script = ExtResource("6_1npgd") move_speed = 15.0 [node name="Ground Pound" type="Node" parent="StateMachine"] script = ExtResource("7_2asft") [node name="Knocked" type="Node" parent="StateMachine"] [node name="Stunned" type="Node" parent="StateMachine"] [node name="Ledge Grab" type="Node" parent="StateMachine"] script = ExtResource("8_iwgew") [node name="On Ladder" type="Node" parent="StateMachine"] script = ExtResource("8_vgdha") move_speed = 5.0 move_transition_speed = 3.0 can_climb_new_ladder = false [node name="HealthIndicator" type="ColorRect" parent="."] material = SubResource("CanvasItemMaterial_l5ga0") offset_right = 40.0 offset_bottom = 40.0 color = Color(0.470588, 0, 0, 0) [node name="MeshInstance3D" type="MeshInstance3D" parent="."] visible = false mesh = SubResource("CapsuleMesh_n7uf3") [node name="StandingCollision" type="CollisionShape3D" parent="."] shape = SubResource("CapsuleShape3D_ko22d") [node name="CrouchingCollision" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.421329, 0) shape = SubResource("CapsuleShape3D_rw673") [node name="CrouchCheck" type="RayCast3D" parent="CrouchingCollision"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.589976, 0) target_position = Vector3(0, 0.9, 0) [node name="Head" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.889, 0) [node name="ItemHolder" type="Node3D" parent="Head"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.25, -0.85, -1.501) [node name="Recoil" type="Node3D" parent="Head"] script = ExtResource("3_405jc") [node name="Camera3D" type="Camera3D" parent="Head/Recoil"] transform = Transform3D(1, -8.30784e-09, 2.09548e-09, 7.50333e-12, 1, -6.0536e-09, 0, 0, 1, 1.29921e-05, -0.0445602, -0.00379455) cull_mask = 1048573 attributes = SubResource("CameraAttributesPractical_vhypf") current = true [node name="WeaponHolder" type="Node3D" parent="Head/Recoil/Camera3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0341401, -0.111267) [node name="WeaponSpawner" type="Node3D" parent="Head/Recoil/Camera3D/WeaponHolder"] transform = Transform3D(1, -2.5409e-11, -1.16415e-10, 3.69482e-12, 1, 0, 1.16415e-10, 2.32831e-10, 1, 0.269894, -0.199195, -0.580209) [node name="Flashlight" type="SpotLight3D" parent="Head/Recoil/Camera3D/WeaponHolder"] transform = Transform3D(1, -1.08571e-11, -5.82077e-11, 3.75167e-12, 1, 0, 5.82077e-11, 1.16415e-10, 1, -0.000444638, -0.184371, 0.0974539) light_color = Color(0.890196, 0.913725, 1, 1) light_energy = 0.0 light_projector = ExtResource("4_x670l") shadow_enabled = true distance_fade_enabled = true distance_fade_begin = 5.0 spot_range = 60.0 [node name="FlashlightButton" type="AudioStreamPlayer3D" parent="Head/Recoil/Camera3D/WeaponHolder"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.437954, -1) stream = ExtResource("14_pnsbm") volume_db = 2.0 [node name="MotionLines" type="ColorRect" parent="Head/Recoil/Camera3D"] show_behind_parent = true light_mask = 4 visibility_layer = 4 z_index = 1 material = SubResource("ShaderMaterial_ubnx7") offset_right = 3840.0 offset_bottom = 2160.0 [node name="HUD" parent="Head/Recoil/Camera3D" instance=ExtResource("5_yenaw")] [node name="WeaponSelect" parent="Head/Recoil/Camera3D" instance=ExtResource("5_bvbcl")] visible = false light_mask = 2 visibility_layer = 2 z_index = 1 [node name="GunRay" type="RayCast3D" parent="Head/Recoil/Camera3D" groups=["gun_ray"]] transform = Transform3D(0.977933, 0, -0.208919, 0, 1, 7.45058e-09, 0.208919, 0, 0.977933, 0, -0.197421, -0.129669) target_position = Vector3(0, 0, -1.2) hit_back_faces = false [node name="AudioListener3D" type="AudioListener3D" parent="Head/Recoil/Camera3D"] transform = Transform3D(1, 0, 0, 0, 0.992332, 0.123601, 0, -0.123601, 0.992332, 0, -0.921646, -0.000722691) [node name="BulletRay" type="RayCast3D" parent="Head/Recoil/Camera3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.487738) visible = false target_position = Vector3(0, 0, -200) collision_mask = 105 collide_with_areas = true [node name="GunLookTarget" type="Marker3D" parent="Head/Recoil/Camera3D/BulletRay"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.482) [node name="InteractRay" type="RayCast3D" parent="Head/Recoil/Camera3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00322104, -0.0232438) visible = false target_position = Vector3(0, 0, -2.5) collision_mask = 162 hit_back_faces = false collide_with_areas = true [node name="Audio" type="Node3D" parent="Head/Recoil/Camera3D"] [node name="Kick" type="AudioStreamPlayer3D" parent="Head/Recoil/Camera3D/Audio"] stream = ExtResource("12_qhd01") [node name="PauseMenu" parent="Head/Recoil/Camera3D" instance=ExtResource("13_xrfwr")] visible = false offset_right = 0.0 offset_bottom = 0.0 [node name="MoveableHolder" type="Node3D" parent="Head/Recoil/Camera3D"] transform = Transform3D(1, -6.92921e-11, -5.23869e-10, 3.24007e-12, 1, 0, 5.23869e-10, 1.04774e-09, 1, -0.00028377, -0.710997, -1.11201) [node name="MoveableRotation" type="Node3D" parent="Head/Recoil/Camera3D/MoveableHolder"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.73907) [node name="StandCheck" type="RayCast3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.989648, 0) collision_mask = 33 [node name="pick_up_detection" type="Area3D" parent="."] collision_layer = 0 collision_mask = 16 [node name="CollisionShape3D2" type="CollisionShape3D" parent="pick_up_detection"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0810862, 0.330574, -0.138576) shape = SubResource("BoxShape3D_nfpjw") [node name="pick_up_magnet" type="Area3D" parent="."] collision_layer = 0 collision_mask = 16 [node name="CollisionShape3D" type="CollisionShape3D" parent="pick_up_magnet"] transform = Transform3D(1, -1.35287e-11, -5.82077e-11, 7.56017e-12, 1, 0, 0, 0, 1, 0.00132301, 0.00235856, -2.26706) shape = SubResource("SphereShape3D_xfie3") [node name="Audio" type="Node3D" parent="."] [node name="PickupSound" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("8_dwqsx") [node name="ClockSound" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("11_6k4fy") bus = &"SFX" [node name="LandSound" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("10_tn0pn") volume_db = -5.0 [node name="EarWind" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("11_he7p5") autoplay = true [node name="Hurt" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("12_f51u4") [node name="WeaponPickup" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("17_1fyjm") [node name="HitIndicator" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("19_6jglu") [node name="EnemyKilled" type="AudioStreamPlayer" parent="Audio"] stream = ExtResource("20_rvr83") volume_db = 10.0 pitch_scale = 1.5 [node name="FootstepSound" type="AudioStreamPlayer3D" parent="Audio"] stream = SubResource("AudioStreamRandomizer_pxyjg") volume_db = 6.0 [node name="HitHead" type="AudioStreamPlayer3D" parent="Audio"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.42626, 0) stream = SubResource("AudioStreamRandomizer_u5cxn") [node name="Crouch" type="AudioStreamPlayer3D" parent="Audio"] stream = SubResource("AudioStreamRandomizer_xswn0") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_d0x8a") } [node name="wall_ray1" type="RayCast3D" parent="."] transform = Transform3D(1, -4.26326e-11, -5.82077e-11, 3.6664e-11, 1, 0, 0, 0, 1, 8.1824e-07, -0.00495505, -5.15778e-06) target_position = Vector3(-1, 0, 0) [node name="wall_ray2" type="RayCast3D" parent="."] transform = Transform3D(1, -4.26326e-11, -5.82077e-11, 3.6664e-11, 1, 0, 0, 0, 1, 8.1824e-07, -0.00495505, -5.15778e-06) target_position = Vector3(1, 0, 0) [node name="wall_ray3" type="RayCast3D" parent="."] transform = Transform3D(1, -4.26326e-11, -5.82077e-11, 3.6664e-11, 1, 0, 0, 0, 1, 8.1824e-07, -0.00495505, -5.15778e-06) target_position = Vector3(0, 0, 1) [node name="WallJumpTimer" type="Timer" parent="."] one_shot = true [node name="ClamberMaxRay" type="RayCast3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.965926, -0.258819, 0, 0.258819, 0.965926, 0, 0.968505, -0.391) target_position = Vector3(0, 0, -1) collision_mask = 33 [node name="ClamberPointRay" type="RayCast3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.987695, -0.600275) target_position = Vector3(0, -1.995, 0) collision_mask = 33 [node name="ClamberCheckRay" type="RayCast3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.607088, -0.279418) target_position = Vector3(0, 0, -1) collision_mask = 33 hit_back_faces = false [connection signal="tree_entered" from="." to="." method="_on_tree_entered"] [connection signal="body_entered" from="pick_up_detection" to="." method="_on_pick_up_detection_body_entered"] [connection signal="body_entered" from="pick_up_magnet" to="." method="_on_pick_up_magnet_body_entered"] [connection signal="timeout" from="WallJumpTimer" to="." method="_on_wall_jump_timer_timeout"]