[gd_scene load_steps=91 format=3 uid="uid://c4pr2707hbeph"]

[ext_resource type="Script" uid="uid://d2ubk5gucny6s" path="res://Scripts/Components/FSM/PlayerFSMProxy.cs" id="1_g3wua"]
[ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"]
[ext_resource type="Script" uid="uid://chwqogny2v8t1" path="res://Scripts/Components/FSM/Player/Init.cs" id="2_i6wc8"]
[ext_resource type="Script" uid="uid://bl0o35xt8wxtg" path="res://Scripts/Components/FSM/Player/Active.cs" id="3_3tuio"]
[ext_resource type="Script" uid="uid://bo6xcjnw3yn6s" path="res://Scripts/Components/FSM/Player/Dead.cs" id="4_0pqs8"]
[ext_resource type="Material" uid="uid://dnvwgyt2tbqmr" path="res://Resources/Materials/Player_Blink_Teleport_Material.tres" id="4_5qlss"]
[ext_resource type="Script" uid="uid://dn2rrgw3e027b" path="res://Scripts/Components/FSM/Player/Cutscene.cs" id="4_22ff8"]
[ext_resource type="Script" uid="uid://b4nixnxhj5qhw" path="res://Scripts/Components/Actors/PlayerWeaponProvider.cs" id="5_gp3hw"]
[ext_resource type="Script" uid="uid://b0khv2fcrgm6t" path="res://Scripts/Components/FSM/Player/Teleporting.cs" id="5_yifvs"]
[ext_resource type="Script" uid="uid://br2ev58gwuvu4" path="res://Scripts/Components/FSM/Player/UnTeleporting.cs" id="6_7n10g"]
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="6_8dcio"]
[ext_resource type="Script" uid="uid://bwtcgcvfw8urt" path="res://Scripts/Components/FSM/Player/Controlling.cs" id="6_82vrk"]
[ext_resource type="Script" uid="uid://bo5sgbv1t8ril" path="res://Scripts/Components/Actors/PlayerAnimationProvider.cs" id="7_pmkfo"]
[ext_resource type="Script" uid="uid://dq338w2lw5phl" path="res://Scripts/Components/Actors/KeyboardInputProvider.cs" id="8_i6wc8"]
[ext_resource type="PackedScene" uid="uid://biugfbp0yae2s" path="res://Scenes/Particles/DeathParticles.tscn" id="9_0pyos"]
[ext_resource type="Script" uid="uid://d208gvthkstvc" path="res://Scripts/Components/Actors/PlayerCrosshairProvider.cs" id="9_s0ir4"]
[ext_resource type="Script" uid="uid://bgve2lktony00" path="res://Scripts/Components/FSM/Player/Drowning.cs" id="10_es1gk"]
[ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"]
[ext_resource type="Texture2D" uid="uid://cvngivvogv17l" path="res://Sprites/Actors/Cirno-Shadow.png" id="11_m1iep"]
[ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"]
[ext_resource type="SpriteFrames" uid="uid://c6exoa8pxbc6w" path="res://Resources/Sprites/player_float.tres" id="13_ckpe7"]
[ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"]
[ext_resource type="Script" uid="uid://dkmsw828qwikk" path="res://Scripts/Components/Actors/PlayerDamageReceiver.cs" id="14_igu66"]
[ext_resource type="SpriteFrames" uid="uid://byb4cbb23cawf" path="res://Resources/Sprites/player_float_legs.tres" id="14_p5rkw"]
[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="15_5qlss"]
[ext_resource type="Texture2D" uid="uid://cf2855sd3hqty" path="res://Sprites/Actors/Aiming_Reticule_Small.png" id="19_fnw0c"]
[ext_resource type="Texture2D" uid="uid://bc4tp44e00g0d" path="res://Sprites/Actors/Focus_Square.png" id="20_3ho10"]
[ext_resource type="Script" uid="uid://dv205x8msohpv" path="res://Scripts/Components/Actors/ActivationProvider.cs" id="22_12cwd"]
[ext_resource type="PackedScene" uid="uid://chkpk7erlqajg" path="res://Scenes/Selector.tscn" id="23_5tmtw"]
[ext_resource type="AudioStream" uid="uid://myr6n2c1u503" path="res://SFX/581602__samsterbirdies__beep-error.mp3" id="24_5tmtw"]
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="25_12erk"]
[ext_resource type="Script" uid="uid://cem7a1agaqtrt" path="res://Scenes/InteractionController.cs" id="27_vwjki"]
[ext_resource type="Script" uid="uid://d0bebi2vn171l" path="res://Scripts/Components/FSM/Player/PlayerFSMItemUseModule.cs" id="29_m323t"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="30_li0ug"]
[ext_resource type="Script" uid="uid://camgjo4302qmq" path="res://Scripts/Components/Actors/ConveyorBeltMover.cs" id="32_4f2wn"]
[ext_resource type="Script" uid="uid://dbxbvjonbtib2" path="res://Scripts/Components/FSM/Player/PlayerStorageModule.cs" id="33_fnw0c"]
[ext_resource type="Script" uid="uid://bcpn47j3lr1tg" path="res://Scripts/Components/FSM/Player/DeathItemDropper.cs" id="35_qlmfy"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="36_v2m0j"]
[ext_resource type="Resource" uid="uid://cvlwye1u5gv8u" path="res://Resources/Items/Green_Points_Pickup.tres" id="37_awrib"]
[ext_resource type="Resource" uid="uid://cltxhkrqp055v" path="res://Resources/Items/Money_Pickup.tres" id="38_nfrn8"]
[ext_resource type="Resource" uid="uid://dy53gia1tmkah" path="res://Resources/Items/Points_Pickup.tres" id="39_nfq4p"]
[ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="40_m1iep"]
[ext_resource type="Script" uid="uid://c8f4tbcjcfsu1" path="res://Scripts/Components/FSM/Player/AutoPickupModule.cs" id="41_v2m0j"]
[ext_resource type="Script" uid="uid://d2r5eh3wn16bg" path="res://Scripts/Components/FSM/Player/PlayerGrazingModule.cs" id="42_awrib"]
[ext_resource type="Script" uid="uid://ru6yajru35t0" path="res://Scripts/Components/FSM/Player/FreezeModule.cs" id="43_nfq4p"]
[ext_resource type="PackedScene" uid="uid://ckfhlsboy6mfr" path="res://Scenes/Weapons/Bullets/Ice.tscn" id="44_m1iep"]
[ext_resource type="AudioStream" uid="uid://dgp2e6cqb7i2q" path="res://SFX/Chiptone_Source/Cirno_Hurt.wav" id="47_fmswe"]
[ext_resource type="Script" uid="uid://c1cjjk0ghptyx" path="res://Scripts/Components/FSM/Player/HurtSoundPlayer.cs" id="48_3rkrn"]

[sub_resource type="CircleShape2D" id="CircleShape2D_b3hxm"]
radius = 5.0

[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0pqs8"]
particle_flag_disable_z = true
emission_shape = 2
emission_sphere_radius = 16.0
orbit_velocity_min = -1.0
orbit_velocity_max = 1.098
gravity = Vector3(0, 0, 0)
color = Color(0.0392157, 0.380392, 1, 1)

[sub_resource type="AtlasTexture" id="AtlasTexture_12erk"]
atlas = ExtResource("19_fnw0c")
region = Rect2(0, 0, 16, 16)

[sub_resource type="SpriteFrames" id="SpriteFrames_n5ijo"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_12erk")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="AtlasTexture" id="AtlasTexture_n5ijo"]
atlas = ExtResource("12_8dcio")
region = Rect2(0, 0, 32, 32)

[sub_resource type="SpriteFrames" id="SpriteFrames_igu66"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n5ijo")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="AtlasTexture" id="AtlasTexture_vwjki"]
atlas = ExtResource("20_3ho10")
region = Rect2(0, 0, 32, 32)

[sub_resource type="SpriteFrames" id="SpriteFrames_g3wua"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vwjki")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="AtlasTexture" id="AtlasTexture_igu66"]
atlas = ExtResource("13_pmkfo")
region = Rect2(0, 0, 4, 4)

[sub_resource type="SpriteFrames" id="SpriteFrames_5qlss"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_igu66")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="Resource" id="Resource_c4ide"]
script = ExtResource("25_12erk")
DamageType = 0
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_fjg1v"]
script = ExtResource("25_12erk")
DamageType = 1
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_hed00"]
script = ExtResource("25_12erk")
DamageType = 2
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_q2flx"]
script = ExtResource("25_12erk")
DamageType = 3
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_k7ckg"]
script = ExtResource("25_12erk")
DamageType = 4
Attribute = 4
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_qlmfy"]
script = ExtResource("25_12erk")
DamageType = 5
Attribute = 4
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_v2m0j"]
script = ExtResource("25_12erk")
DamageType = 0
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_awrib"]
script = ExtResource("25_12erk")
DamageType = 1
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_nfrn8"]
script = ExtResource("25_12erk")
DamageType = 2
Attribute = 2
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_nfq4p"]
script = ExtResource("25_12erk")
DamageType = 3
Attribute = 1
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_m1iep"]
script = ExtResource("25_12erk")
DamageType = 0
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_ckpe7"]
script = ExtResource("25_12erk")
DamageType = 4
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="Resource" id="Resource_p5rkw"]
script = ExtResource("25_12erk")
DamageType = 5
Attribute = 0
metadata/_custom_type_script = "uid://ddsqqfx1usc3j"

[sub_resource type="CircleShape2D" id="CircleShape2D_igu66"]
radius = 2.23607

[sub_resource type="CircleShape2D" id="CircleShape2D_7n10g"]
radius = 17.2627

[sub_resource type="CircleShape2D" id="CircleShape2D_g3wua"]
radius = 9.0

[sub_resource type="AnimationNodeTransition" id="AnimationNodeTransition_es1gk"]
input_0/name = "up"
input_0/auto_advance = false
input_0/break_loop_at_end = false
input_0/reset = true
input_1/name = "down"
input_1/auto_advance = false
input_1/break_loop_at_end = false
input_1/reset = true
input_2/name = "left"
input_2/auto_advance = false
input_2/break_loop_at_end = false
input_2/reset = true
input_3/name = "right"
input_3/auto_advance = false
input_3/break_loop_at_end = false
input_3/reset = true

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4f2wn"]
animation = &"Walk_Down"

[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_fnw0c"]
blend_point_0/node = SubResource("AnimationNodeAnimation_4f2wn")
blend_point_0/pos = 0.0

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_12erk"]
animation = &"Walk_Up"

[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_c4ide"]
blend_point_0/node = SubResource("AnimationNodeAnimation_12erk")
blend_point_0/pos = 0.0

[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_fjg1v"]
graph_offset = Vector2(-110.364, 39.7151)
nodes/Transition/node = SubResource("AnimationNodeTransition_es1gk")
nodes/Transition/position = Vector2(706.667, 53.3333)
nodes/Walk_Down/node = SubResource("AnimationNodeBlendSpace1D_fnw0c")
nodes/Walk_Down/position = Vector2(426.667, 253.333)
nodes/Walk_Up/node = SubResource("AnimationNodeBlendSpace1D_c4ide")
nodes/Walk_Up/position = Vector2(426.667, 53.3333)
nodes/output/position = Vector2(280, 133.333)
node_connections = [&"Transition", 0, &"Walk_Up", &"Transition", 1, &"Walk_Down"]

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_hed00"]
advance_mode = 2

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_q2flx"]
advance_mode = 2

[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_k7ckg"]
states/BlendTree/node = SubResource("AnimationNodeBlendTree_fjg1v")
states/BlendTree/position = Vector2(401.333, 98.4444)
states/Start/position = Vector2(192, 98.963)
transitions = ["Start", "BlendTree", SubResource("AnimationNodeStateMachineTransition_hed00"), "BlendTree", "End", SubResource("AnimationNodeStateMachineTransition_q2flx")]

[sub_resource type="Animation" id="Animation_awrib"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}

[sub_resource type="Animation" id="Animation_qlmfy"]
resource_name = "Walk_Down"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 1, 2]
}

[sub_resource type="Animation" id="Animation_v2m0j"]
resource_name = "Walk_Up"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [3, 5, 4]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_nfrn8"]
_data = {
&"RESET": SubResource("Animation_awrib"),
&"Walk_Down": SubResource("Animation_qlmfy"),
&"Walk_Up": SubResource("Animation_v2m0j")
}

[sub_resource type="CircleShape2D" id="CircleShape2D_fnw0c"]
radius = 2.05679

[sub_resource type="CircleShape2D" id="CircleShape2D_qlmfy"]
radius = 3.16228

[sub_resource type="CircleShape2D" id="CircleShape2D_awrib"]

[node name="FSMPlayer" type="CharacterBody2D" node_paths=PackedStringArray("PlayerFSM", "InteractionController")]
process_mode = 1
collision_layer = 2
collision_mask = 97
platform_floor_layers = 4294967294
platform_wall_layers = 97
script = ExtResource("1_g3wua")
PlayerFSM = NodePath("StateMachine")
InteractionController = NodePath("InteractionController")
metadata/_edit_group_ = true

[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("MotivationResource", "Shield")]
script = ExtResource("1_mpmil")
MotivationResource = NodePath("../DamageReceiver/MotivationProvider")
Shield = NodePath("../DamageReceiver/ShieldProvider")

[node name="Init" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider", "_storageModule")]
script = ExtResource("2_i6wc8")
_animationProvider = NodePath("../../AnimationProvider")
_storageModule = NodePath("../../Storage")

[node name="Active" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_weaponProvider", "_animationProvider", "_crosshairProvider", "_hitboxSpriteProvider", "_inputProvider", "_damageReceiver", "_activationProvider", "_interactionController", "_storageModule", "_moduleNodes")]
script = ExtResource("3_3tuio")
Speed = 80
Acceleration = 300.0
Deceleration = 150.0
_weaponProvider = NodePath("../../WeaponProvider")
_animationProvider = NodePath("../../AnimationProvider")
_crosshairProvider = NodePath("../../CrosshairProvider")
_hitboxSpriteProvider = NodePath("../../StrafeSpriteProvider")
_inputProvider = NodePath("../../InputProvider")
_damageReceiver = NodePath("../../DamageReceiver")
_activationProvider = NodePath("../../InteractionProvider")
_interactionController = NodePath("../../InteractionController")
_storageModule = NodePath("../../Storage")
_moduleNodes = [NodePath("../../InteractionController"), NodePath("../../ItemUser"), NodePath("../../ConveyorBeltMover"), NodePath("../../AutoPickupModule"), NodePath("../../GrazingModule"), NodePath("../../FreezeModule"), NodePath("../../CrosshairProvider")]

[node name="Cutscene" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("4_22ff8")
_animationProvider = NodePath("../../AnimationProvider")

[node name="Teleporting" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("5_yifvs")
_animationProvider = NodePath("../../AnimationProvider")

[node name="UnTeleporting" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("6_7n10g")
_animationProvider = NodePath("../../AnimationProvider")

[node name="Controlling" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("6_82vrk")
_animationProvider = NodePath("../../AnimationProvider")

[node name="Dead" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider", "_inputProvider", "_healthProvider", "_motivationProvider")]
script = ExtResource("4_0pqs8")
_animationProvider = NodePath("../../AnimationProvider")
_inputProvider = NodePath("../../InputProvider")
_healthProvider = NodePath("../../DamageReceiver/HealthProvider")
_motivationProvider = NodePath("../../DamageReceiver/MotivationProvider")

[node name="Drowning" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("10_es1gk")
_animationProvider = NodePath("../../AnimationProvider")

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 4.89)
shape = SubResource("CircleShape2D_b3hxm")

[node name="Shadow" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.372549)
position = Vector2(0, 4)
texture = ExtResource("11_m1iep")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = ExtResource("4_5qlss")
sprite_frames = ExtResource("13_ckpe7")
animation = &"idle"
autoplay = "idle"

[node name="Legs" type="AnimatedSprite2D" parent="."]
material = ExtResource("4_5qlss")
sprite_frames = ExtResource("14_p5rkw")
animation = &"idle"
autoplay = "idle"

[node name="WeaponProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule", "WeaponRightOffset", "WeaponLeftOffset")]
script = ExtResource("5_gp3hw")
StorageModule = NodePath("../Storage")
WeaponTemplate = ExtResource("6_8dcio")
WeaponRightOffset = NodePath("RightWeapon")
WeaponLeftOffset = NodePath("LeftWeapon")

[node name="RightWeapon" type="Marker2D" parent="WeaponProvider"]
position = Vector2(4, 3)

[node name="LeftWeapon" type="Marker2D" parent="WeaponProvider"]
position = Vector2(-14, 3)

[node name="AnimationProvider" type="Node2D" parent="." node_paths=PackedStringArray("_animatedSprite", "_shieldParticles")]
script = ExtResource("7_pmkfo")
_animatedSprite = NodePath("../AnimatedSprite2D")
_deathParticles = ExtResource("9_0pyos")
_shieldParticles = NodePath("ShieldParticles")
BlinkMaterial = ExtResource("4_5qlss")

[node name="ShieldParticles" type="GPUParticles2D" parent="AnimationProvider"]
emitting = false
amount = 32
lifetime = 0.4
one_shot = true
process_material = SubResource("ParticleProcessMaterial_0pqs8")

[node name="LegsAnimationProvider" type="Node2D" parent="." node_paths=PackedStringArray("_animatedSprite")]
script = ExtResource("7_pmkfo")
_animatedSprite = NodePath("../Legs")
BlinkMaterial = ExtResource("4_5qlss")

[node name="InputProvider" type="Node2D" parent="."]
script = ExtResource("8_i6wc8")

[node name="CrosshairProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule", "AnimatedSprite")]
script = ExtResource("9_s0ir4")
StorageModule = NodePath("../Storage")
AnimatedSprite = NodePath("Crosshair")
CrosshairDistance = 35.0

[node name="Crosshair" type="AnimatedSprite2D" parent="CrosshairProvider"]
sprite_frames = SubResource("SpriteFrames_n5ijo")

[node name="StrafeSpriteProvider" type="Node2D" parent="." node_paths=PackedStringArray("Hitbox", "Circle", "Square")]
show_behind_parent = true
script = ExtResource("10_gp3hw")
Hitbox = NodePath("Hitbox")
Circle = NodePath("MagicCircle")
Square = NodePath("MagicSquare")
RotationSpeed = 1.0

[node name="MagicCircle" type="AnimatedSprite2D" parent="StrafeSpriteProvider"]
modulate = Color(1, 1, 1, 0.501961)
sprite_frames = SubResource("SpriteFrames_igu66")

[node name="MagicSquare" type="AnimatedSprite2D" parent="StrafeSpriteProvider"]
modulate = Color(1, 1, 1, 0.501961)
sprite_frames = SubResource("SpriteFrames_g3wua")

[node name="Hitbox" type="AnimatedSprite2D" parent="StrafeSpriteProvider"]
z_index = 2
sprite_frames = SubResource("SpriteFrames_5qlss")

[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("_healthProvider", "_shieldProvider", "_motivationProvider")]
collision_layer = 2
collision_mask = 392
script = ExtResource("14_igu66")
_healthProvider = NodePath("HealthProvider")
_shieldProvider = NodePath("ShieldProvider")
_motivationProvider = NodePath("MotivationProvider")
ShieldDamageResistances = Array[ExtResource("25_12erk")]([SubResource("Resource_c4ide"), SubResource("Resource_fjg1v"), SubResource("Resource_hed00"), SubResource("Resource_q2flx"), SubResource("Resource_k7ckg"), SubResource("Resource_qlmfy")])
HealthDamageResistances = Array[ExtResource("25_12erk")]([SubResource("Resource_v2m0j"), SubResource("Resource_awrib"), SubResource("Resource_nfrn8"), SubResource("Resource_nfq4p"), SubResource("Resource_m1iep"), SubResource("Resource_ckpe7"), SubResource("Resource_p5rkw")])

[node name="HealthProvider" type="Node2D" parent="DamageReceiver"]
script = ExtResource("15_5qlss")
ResourceName = "Health"
_maxResource = 32.0

[node name="MotivationProvider" type="Node2D" parent="DamageReceiver"]
script = ExtResource("15_5qlss")
ResourceName = "Motivation"
_maxResource = 400.0

[node name="ShieldProvider" type="Node2D" parent="DamageReceiver"]
script = ExtResource("15_5qlss")
ResourceName = "Shield"
_maxResource = 32.0

[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"]
shape = SubResource("CircleShape2D_igu66")

[node name="InteractionProvider" type="Area2D" parent="." node_paths=PackedStringArray("_inputProvider", "_errorSound")]
visible = false
collision_layer = 0
collision_mask = 4
script = ExtResource("22_12cwd")
SelectorScene = ExtResource("23_5tmtw")
_inputProvider = NodePath("../InputProvider")
_errorSound = NodePath("Error")

[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractionProvider"]
visible = false
shape = SubResource("CircleShape2D_7n10g")

[node name="Error" type="AudioStreamPlayer2D" parent="InteractionProvider"]
stream = ExtResource("24_5tmtw")
bus = &"Effects"

[node name="InteractionController" type="Area2D" parent="." node_paths=PackedStringArray("Health", "Shield")]
visible = false
collision_layer = 2
collision_mask = 0
script = ExtResource("27_vwjki")
Health = NodePath("../DamageReceiver/HealthProvider")
Shield = NodePath("../DamageReceiver/ShieldProvider")

[node name="CollisionShape2D2" type="CollisionShape2D" parent="InteractionController"]
shape = SubResource("CircleShape2D_g3wua")

[node name="ItemUser" type="Node2D" parent="." node_paths=PackedStringArray("Health", "Shield", "_storageModule")]
script = ExtResource("29_m323t")
Health = NodePath("../DamageReceiver/HealthProvider")
Shield = NodePath("../DamageReceiver/ShieldProvider")
_storageModule = NodePath("../Storage")

[node name="Sprite2D" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("30_li0ug")
hframes = 3
vframes = 4

[node name="AnimationTree" type="AnimationTree" parent="."]
root_node = NodePath(".")
tree_root = SubResource("AnimationNodeStateMachine_k7ckg")
anim_player = NodePath("AnimationPlayer")
parameters/BlendTree/Transition/current_state = ""
parameters/BlendTree/Transition/transition_request = ""
parameters/BlendTree/Transition/current_index = -1
parameters/BlendTree/Walk_Down/blend_position = 0
parameters/BlendTree/Walk_Up/blend_position = 0

[node name="AnimationPlayer" type="AnimationPlayer" parent="AnimationTree"]
libraries = {
&"": SubResource("AnimationLibrary_nfrn8")
}

[node name="ConveyorBeltMover" type="Area2D" parent="."]
collision_layer = 2
collision_mask = 512
script = ExtResource("32_4f2wn")

[node name="CollisionShape2D" type="CollisionShape2D" parent="ConveyorBeltMover"]
visible = false
position = Vector2(0, 6.48)
shape = SubResource("CircleShape2D_fnw0c")

[node name="Storage" type="Node2D" parent="." node_paths=PackedStringArray("Root")]
script = ExtResource("33_fnw0c")
Root = NodePath("..")

[node name="DeathItemDropper" type="Node2D" parent="." node_paths=PackedStringArray("Storage", "HealthProvider")]
script = ExtResource("35_qlmfy")
Storage = NodePath("../Storage")
HealthProvider = NodePath("../DamageReceiver/HealthProvider")
ItemsToDrop = Array[ExtResource("36_v2m0j")]([ExtResource("37_awrib"), ExtResource("38_nfrn8"), ExtResource("39_nfq4p"), ExtResource("40_m1iep")])
DropSpeed = 80.0

[node name="AutoPickupModule" type="Area2D" parent="."]
collision_layer = 0
collision_mask = 4
script = ExtResource("41_v2m0j")

[node name="CollisionShape2D" type="CollisionShape2D" parent="AutoPickupModule"]
visible = false
shape = SubResource("CircleShape2D_qlmfy")

[node name="GrazingModule" type="Area2D" parent="." node_paths=PackedStringArray("Shield")]
collision_layer = 0
collision_mask = 136
script = ExtResource("42_awrib")
Shield = NodePath("../DamageReceiver/ShieldProvider")

[node name="CollisionShape2D" type="CollisionShape2D" parent="GrazingModule"]
visible = false
shape = SubResource("CircleShape2D_awrib")

[node name="FreezeModule" type="Node2D" parent="." node_paths=PackedStringArray("Shield", "InputProvider")]
script = ExtResource("43_nfq4p")
ResourceCost = 5.0
IceLife = 2.0
IceScene = ExtResource("44_m1iep")
Shield = NodePath("../DamageReceiver/ShieldProvider")
InputProvider = NodePath("../InputProvider")

[node name="HurtPlayer" type="AudioStreamPlayer2D" parent="." node_paths=PackedStringArray("DamageReceiver")]
stream = ExtResource("47_fmswe")
script = ExtResource("48_3rkrn")
DamageReceiver = NodePath("../DamageReceiver")

[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]
[connection signal="area_entered" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_entered"]
[connection signal="area_exited" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_exited"]
[connection signal="body_entered" from="ConveyorBeltMover" to="ConveyorBeltMover" method="OnBodyEntered"]
[connection signal="body_exited" from="ConveyorBeltMover" to="ConveyorBeltMover" method="OnBodyExited"]
