[gd_scene load_steps=25 format=2]

[ext_resource path="res://src/Player/Player.gd" type="Script" id=1]
[ext_resource path="res://src/Player/Hook/Hook.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Player/LedgeWallDetector.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Player/FloorDetector.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Player/PassThrough.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Player/Camera/CameraAnchorDetector.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Player/Camera/CameraRig.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Player/Skin.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Main/StateMachine/StateMachine.gd" type="Script" id=9]
[ext_resource path="res://src/Player/States/Move.gd" type="Script" id=10]
[ext_resource path="res://src/Player/States/Idle.gd" type="Script" id=11]
[ext_resource path="res://src/Player/States/Run.gd" type="Script" id=12]
[ext_resource path="res://src/Player/States/Air.gd" type="Script" id=13]
[ext_resource path="res://src/Player/States/Wall.gd" type="Script" id=14]
[ext_resource path="res://src/Player/States/HopOnEnemy.gd" type="Script" id=15]
[ext_resource path="res://src/Player/States/Ledge.gd" type="Script" id=16]
[ext_resource path="res://src/Player/States/Hook.gd" type="Script" id=17]
[ext_resource path="res://src/Player/States/Debug.gd" type="Script" id=18]
[ext_resource path="res://src/Player/States/Stagger.gd" type="Script" id=19]
[ext_resource path="res://src/Player/States/Spawn.gd" type="Script" id=20]
[ext_resource path="res://src/Player/States/Die.gd" type="Script" id=21]
[ext_resource path="res://src/Combat/Stats.tscn" type="PackedScene" id=22]
[ext_resource path="res://src/Combat/HitBox/HitBox.tscn" type="PackedScene" id=23]

[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 30, 30 )

[node name="Player" type="KinematicBody2D"]
collision_mask = 14
script = ExtResource( 1 )

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 0, -30 )
shape = SubResource( 1 )

[node name="Hook" parent="." instance=ExtResource( 2 )]
position = Vector2( 0, -30 )

[node name="LedgeWallDetector" parent="." instance=ExtResource( 3 )]
is_active = true

[node name="FloorDetector" parent="." instance=ExtResource( 4 )]

[node name="PassThrough" parent="." instance=ExtResource( 5 )]

[node name="CameraAnchorDetector" parent="." instance=ExtResource( 6 )]
editor/display_folded = true

[node name="CameraPosition" parent="CameraAnchorDetector" index="1"]
remote_path = NodePath("../../CameraRig")

[node name="CameraRig" parent="." instance=ExtResource( 7 )]
editor/display_folded = true
position = Vector2( 0, -30 )

[node name="ShakingCamera" parent="CameraRig" index="0"]
DAMP_EASING = 1.0
is_shaking = false
default_smoothing_speed = {
"gamepad": 1,
"mouse": 3
}

[node name="Skin" parent="." instance=ExtResource( 8 )]

[node name="StateMachine" type="Node" parent="."]
script = ExtResource( 9 )
initial_state = NodePath("Move/Idle")

[node name="Move" type="Node" parent="StateMachine"]
script = ExtResource( 10 )

[node name="Idle" type="Node" parent="StateMachine/Move"]
editor/display_folded = true
script = ExtResource( 11 )

[node name="JumpDelay" type="Timer" parent="StateMachine/Move/Idle"]
wait_time = 0.1
one_shot = true

[node name="Run" type="Node" parent="StateMachine/Move"]
editor/display_folded = true
script = ExtResource( 12 )

[node name="SlowStarter" type="Timer" parent="StateMachine/Move/Run"]
wait_time = 0.7
one_shot = true

[node name="Tween" type="Tween" parent="StateMachine/Move/Run"]

[node name="Air" type="Node" parent="StateMachine/Move"]
editor/display_folded = true
script = ExtResource( 13 )
acceleration_x = 5000.0

[node name="JumpDelay" type="Timer" parent="StateMachine/Move/Air"]
wait_time = 0.1
one_shot = true

[node name="ControlsFreeze" type="Timer" parent="StateMachine/Move/Air"]
wait_time = 0.16
one_shot = true

[node name="Wall" type="Node" parent="StateMachine/Move"]
script = ExtResource( 14 )
slide_acceleration = 1600.0
max_slide_speed = 400.0
friction_factor = 0.15
jump_strength = Vector2( 500, 400 )

[node name="HopOnEnemy" type="Node" parent="StateMachine"]
script = ExtResource( 15 )
hop_impulse = 1050.0
wait_duration = 0.5

[node name="Ledge" type="Node" parent="StateMachine"]
script = ExtResource( 16 )

[node name="Hook" type="Node" parent="StateMachine"]
script = ExtResource( 17 )
arrive_push = 900.0

[node name="Debug" type="Node" parent="StateMachine"]
script = ExtResource( 18 )

[node name="Stagger" type="Node" parent="StateMachine"]
editor/display_folded = true
script = ExtResource( 19 )

[node name="Duration" type="Timer" parent="StateMachine/Stagger"]
one_shot = true

[node name="Spawn" type="Node" parent="StateMachine"]
script = ExtResource( 20 )

[node name="Die" type="Node" parent="StateMachine"]
script = ExtResource( 21 )

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

[node name="HitBox" parent="." instance=ExtResource( 23 )]
position = Vector2( 0, -30 )

[editable path="CameraAnchorDetector"]

[editable path="CameraRig"]
