[gd_scene load_steps=28 format=3 uid="uid://bei4nhkf8lwdo"]

[ext_resource type="Script" uid="uid://bbbrf5ckydfna" path="res://player_controller/Scripts/PlayerController.cs" id="1_poq2x"]
[ext_resource type="Resource" uid="uid://bl5crtu1gkrtr" path="res://systems/inputs/walk_mode/base_mode.tres" id="3_cresl"]
[ext_resource type="Resource" uid="uid://cpdaw41ah5gic" path="res://systems/inputs/walk_mode/rotate_y.tres" id="4_rxwoh"]
[ext_resource type="Resource" uid="uid://ccrb5xsnphc8" path="res://systems/inputs/walk_mode/rotate_floorplane.tres" id="5_4u7i3"]
[ext_resource type="Script" uid="uid://dv7v1ywmbvvcd" path="res://player_controller/Scripts/HealthSystem.cs" id="5_umw0l"]
[ext_resource type="Script" uid="uid://vuq8rjq3vegn" path="res://player_controller/Scripts/Stamina.cs" id="6_lxtc4"]
[ext_resource type="Script" uid="uid://cwbvxlfvmocc1" path="res://player_controller/Scripts/StairsSystem.cs" id="7_bmt5a"]
[ext_resource type="Resource" uid="uid://dgfww8118d8gj" path="res://systems/inputs/walk_mode/aim.tres" id="7_cresl"]
[ext_resource type="Resource" uid="uid://j1o5ud0plk4" path="res://systems/inputs/walk_mode/aim_release.tres" id="8_lhb11"]
[ext_resource type="Script" uid="uid://dd1yrt7eiiyf4" path="res://player_controller/Scripts/CapsuleCollider.cs" id="8_lmtjd"]
[ext_resource type="PackedScene" uid="uid://wq1okogkhc5l" path="res://systems/mantle/mantle_system.tscn" id="8_qu4wy"]
[ext_resource type="Resource" uid="uid://7wm8ywvujwf" path="res://systems/inputs/walk_mode/aim_cancel.tres" id="9_5p2qc"]
[ext_resource type="Script" uid="uid://bt0xv2q8iv1vn" path="res://player_controller/Scripts/Gravity.cs" id="9_lsueh"]
[ext_resource type="Script" uid="uid://dwoppk8j5fxeg" path="res://player_controller/Scripts/DashSystem.cs" id="9_qu4wy"]
[ext_resource type="Resource" uid="uid://bdit2jy5gbpts" path="res://systems/inputs/walk_mode/jump.tres" id="10_4u7i3"]
[ext_resource type="Script" uid="uid://g8idirw62qe0" path="res://player_controller/Scripts/Bobbing.cs" id="10_7wk1w"]
[ext_resource type="PackedScene" uid="uid://0ysqmqphq6mq" path="res://systems/head/head_system.tscn" id="11_rxwoh"]
[ext_resource type="Script" uid="uid://b6k73aj5povgv" path="res://player_controller/Scripts/FieldOfView.cs" id="12_m2mxi"]
[ext_resource type="Script" uid="uid://b5nk6ntlps3x0" path="res://systems/inputs/input_system.gd" id="16_v31n3"]
[ext_resource type="Resource" uid="uid://htqvokm8mufq" path="res://systems/inputs/walk_mode/move.tres" id="17_h6vvl"]
[ext_resource type="Script" uid="uid://dyy5njw6pxoh4" path="res://systems/move/MoveSystem.cs" id="20_rxwoh"]
[ext_resource type="PackedScene" uid="uid://dbe5f0p6lvqtr" path="res://systems/tween_queue/tween_queue_system.tscn" id="22_rpwev"]

[sub_resource type="CapsuleMesh" id="CapsuleMesh_xc2g5"]

[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_wydro"]

[sub_resource type="SphereShape3D" id="SphereShape3D_qu4wy"]

[sub_resource type="SphereMesh" id="SphereMesh_qu4wy"]

[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v31n3"]

[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_poq2x")

[node name="InputController" type="Node3D" parent="."]
script = ExtResource("16_v31n3")
base_mode = ExtResource("3_cresl")
move = ExtResource("17_h6vvl")
rotate_y = ExtResource("4_rxwoh")
rotate_floorplane = ExtResource("5_4u7i3")
aim_pressed = ExtResource("7_cresl")
aim_released = ExtResource("8_lhb11")
aim_canceled = ExtResource("9_5p2qc")
jump = ExtResource("10_4u7i3")

[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("CapsuleMesh_xc2g5")

[node name="CapsuleCollider" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CapsuleShape3D_wydro")
script = ExtResource("8_lmtjd")

[node name="HeadSystem" parent="." instance=ExtResource("11_rxwoh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.68, 0)

[node name="HealthSystem" type="Node3D" parent="."]
script = ExtResource("5_umw0l")

[node name="Stamina" type="Node3D" parent="."]
script = ExtResource("6_lxtc4")

[node name="StairsSystem" type="Node3D" parent="."]
script = ExtResource("7_bmt5a")

[node name="StairsAheadRayCast3D" type="RayCast3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -0.828)
target_position = Vector3(0, -0.55, 0)

[node name="StairsBelowRayCast3D" type="RayCast3D" parent="."]
target_position = Vector3(0, -0.75, 0)

[node name="MantleSystem" parent="." instance=ExtResource("8_qu4wy")]
MantleEndLocationDistanceFromWall = 1.0
MantleHeightCastStart = 2.0

[node name="DashSystem" type="Node3D" parent="."]
script = ExtResource("9_qu4wy")

[node name="DashCast3D" type="ShapeCast3D" parent="DashSystem"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.68, 0)
shape = SubResource("SphereShape3D_qu4wy")
target_position = Vector3(0, 0, -20)
max_results = 1
collision_mask = 2
debug_shape_custom_color = Color(0.911631, 0.11884, 0.656218, 1)

[node name="DashTarget" type="MeshInstance3D" parent="DashSystem"]
mesh = SubResource("SphereMesh_qu4wy")
surface_material_override/0 = SubResource("StandardMaterial3D_v31n3")

[node name="MantleSystem" parent="DashSystem" instance=ExtResource("8_qu4wy")]
MantleEndLocationDistanceFromWall = 1.0
MantleHeightCastStart = 2.0

[node name="Bobbing" type="Node3D" parent="."]
script = ExtResource("10_7wk1w")

[node name="FieldOfView" type="Node3D" parent="."]
script = ExtResource("12_m2mxi")

[node name="HeadCollisionDetectors" type="Node3D" parent="."]

[node name="HeadCollisionDetector0" type="RayCast3D" parent="HeadCollisionDetectors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4, -0.210707)
target_position = Vector3(0, 1, 0)

[node name="HeadCollisionDetector1" type="RayCast3D" parent="HeadCollisionDetectors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4, 0.23061)
target_position = Vector3(0, 1, 0)

[node name="HeadCollisionDetector2" type="RayCast3D" parent="HeadCollisionDetectors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.296, 1.4, 0)
target_position = Vector3(0, 1, 0)

[node name="HeadCollisionDetector3" type="RayCast3D" parent="HeadCollisionDetectors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.296, 1.4, 0)
target_position = Vector3(0, 1, 0)

[node name="MoveSystem" type="Node3D" parent="."]
script = ExtResource("20_rxwoh")
WalkSpeed = 10.0
SprintSpeed = 15.0
DoubleJumpSpeedFactor = 1.4

[node name="Gravity" type="Node3D" parent="."]
script = ExtResource("9_lsueh")
Weight = 6.5
StartVelocity = 4.0

[node name="TweenQueueSystem" parent="." instance=ExtResource("22_rpwev")]

[connection signal="input_aim_canceled" from="InputController" to="." method="OnInputAimCanceled"]
[connection signal="input_aim_pressed" from="InputController" to="." method="OnInputAimPressed"]
[connection signal="input_aim_released" from="InputController" to="." method="OnInputAimReleased"]
[connection signal="input_jump" from="InputController" to="." method="OnInputJumpPressed"]
[connection signal="input_move" from="InputController" to="." method="OnInputMove"]
[connection signal="input_rotate_floorplane" from="InputController" to="." method="OnInputRotateFloorplane"]
[connection signal="input_rotate_y" from="InputController" to="." method="OnInputRotateY"]
