[gd_scene load_steps=68 format=3 uid="uid://d2skjvvx6fal0"]

[ext_resource type="Script" path="res://Characters/Doc.cs" id="2_3elet"]
[ext_resource type="Shader" path="res://Shaders/Flash.gdshader" id="2_5jxom"]
[ext_resource type="AudioStream" uid="uid://ipss4y2gkk3y" path="res://Assets/Music/gillette.mp3" id="3_eo4lg"]
[ext_resource type="Texture2D" uid="uid://baiuqgrqipppt" path="res://Assets/Sprites/Characters/doc.png" id="3_rs44f"]
[ext_resource type="Script" path="res://State/Character/CharacterStateMachine.cs" id="3_t5jjc"]
[ext_resource type="Texture2D" uid="uid://dpepm54hjuyga" path="res://Assets/Sprites/Characters/forsen-hand.png" id="4_8lqj6"]
[ext_resource type="Script" path="res://State/Character/NPCIdleState.cs" id="4_b35px"]
[ext_resource type="Script" path="res://State/Character/NPCMoveState.cs" id="5_pejsd"]
[ext_resource type="Script" path="res://State/NPC/NPCStateMachine.cs" id="6_kjpug"]
[ext_resource type="Script" path="res://State/Character/CharacterDashState.cs" id="7_0ks57"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocTelegraphState.cs" id="7_tfwbh"]
[ext_resource type="PackedScene" uid="uid://cjgxyhgcyvsv7" path="res://BoundingBoxes/Hurtbox.tscn" id="7_tnve0"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocShungiteDartState.cs" id="8_1hoax"]
[ext_resource type="Script" path="res://Items/Inventory.cs" id="8_r8ejq"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocExitState.cs" id="9_6com1"]
[ext_resource type="PackedScene" uid="uid://1tiswf3gtyvv" path="res://Entities/ShungiteSpike.tscn" id="9_7kavk"]
[ext_resource type="AudioStream" uid="uid://k6kpdj1kv0jg" path="res://Assets/Sounds/splat.ogg" id="9_stm0e"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocShungiteSpikeState.cs" id="10_bgs6o"]
[ext_resource type="PackedScene" uid="uid://cqx56u46g2c16" path="res://Entities/CompactDisc.tscn" id="11_23p3o"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocIntroState.cs" id="11_lt771"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocChooseAttackState.cs" id="12_45x13"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocUnwantedFrequencyState.cs" id="12_d51jv"]
[ext_resource type="Script" path="res://State/NPC/Doc/DocLanceState.cs" id="15_dmd05"]
[ext_resource type="Script" path="res://Utils/AnimationManager.cs" id="16_bsvls"]
[ext_resource type="Texture2D" uid="uid://bd8l8kafb42dt" path="res://Assets/Sprites/Particles/circle.png" id="16_x277j"]
[ext_resource type="PackedScene" uid="uid://1y5r6sklwgrp" path="res://Entities/UnwantedFrequency.tscn" id="17_hl6o0"]
[ext_resource type="Material" uid="uid://bat28samf7ukd" path="res://Assets/Sprites/Particles/NPCDamageProcessMaterial.tres" id="17_iomdx"]
[ext_resource type="Texture2D" uid="uid://c1a7lvb4uuwfy" path="res://Assets/Sprites/Particles/circle-16.png" id="19_p0p6c"]
[ext_resource type="Material" uid="uid://rcjujd5dv7lm" path="res://Assets/Sprites/Particles/DocIntroParticles.tres" id="19_q4rt1"]
[ext_resource type="Script" path="res://State/Thinker/DashDefensive.cs" id="20_12htp"]
[ext_resource type="Script" path="res://State/Thinker/ThinkerStateMachine.cs" id="20_dy57x"]
[ext_resource type="Script" path="res://State/Thinker/AttackState.cs" id="21_ij3bp"]
[ext_resource type="Animation" uid="uid://8e8r3y1imvsx" path="res://Assets/Animations/stun.res" id="21_ixn4k"]
[ext_resource type="PackedScene" uid="uid://p7oijq6dbvvk" path="res://Items/Weapons/DocLance.tscn" id="24_2es2r"]
[ext_resource type="AudioStream" uid="uid://cqj44je3mvk60" path="res://Assets/Sounds/rauuul.wav" id="26_js7p2"]
[ext_resource type="PackedScene" uid="uid://dldnp8eunxj3q" path="res://BoundingBoxes/InteractionTrigger.tscn" id="33_08dyq"]

[sub_resource type="ShaderMaterial" id="ShaderMaterial_7n7iy"]
resource_local_to_scene = true
shader = ExtResource("2_5jxom")
shader_parameter/color = Vector4(1, 1, 1, 1)
shader_parameter/intensity = 0.0
shader_parameter/alpha_modulate = 1.0

[sub_resource type="Animation" id="Animation_7ay6e"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite: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_j0d8o"]
resource_name = "dash"
length = 0.1

[sub_resource type="Animation" id="Animation_px7yx"]
resource_name = "idle"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 1]
}

[sub_resource type="Animation" id="Animation_a7sk6"]
resource_name = "move"
length = 0.6
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
"update": 1,
"values": [2, 3, 4, 5, 6, 7]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_1xv7m"]
_data = {
"RESET": SubResource("Animation_7ay6e"),
"dash": SubResource("Animation_j0d8o"),
"idle": SubResource("Animation_px7yx"),
"move": SubResource("Animation_a7sk6")
}

[sub_resource type="Animation" id="Animation_dbist"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Effects/UnwantedFrequenciesParticles:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Sprite:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("..:material:shader_parameter/alpha_modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [1.0]
}

[sub_resource type="Animation" id="Animation_7oukw"]
resource_name = "enter_in"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(2, 0.5), Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Effects/UnwantedFrequenciesParticles:emitting")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("..:material:shader_parameter/alpha_modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 1.0]
}

[sub_resource type="Animation" id="Animation_j3s0y"]
resource_name = "exit_out"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.4),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(2, 0.5)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Effects/UnwantedFrequenciesParticles:emitting")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("..:material:shader_parameter/alpha_modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.0, 0.0]
}

[sub_resource type="Animation" id="Animation_8dhub"]
resource_name = "shungite_spike"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [15]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
"transitions": PackedFloat32Array(2, 5, 5, 5),
"update": 0,
"values": [Vector2(1.5, 0.75), Vector2(1, 1), Vector2(0.75, 1.5), Vector2(1, 1)]
}

[sub_resource type="Animation" id="Animation_qggcf"]
resource_name = "unwanted_frequencies"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Effects/UnwantedFrequenciesParticles:emitting")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [8, 9, 10, 11, 12, 13, 14, 8, 9]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Sprite:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1.5, 0.75), Vector2(1, 1)]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_rpply"]
_data = {
"RESET": SubResource("Animation_dbist"),
"enter_in": SubResource("Animation_7oukw"),
"exit_out": SubResource("Animation_j3s0y"),
"shungite_spike": SubResource("Animation_8dhub"),
"unwanted_frequencies": SubResource("Animation_qggcf")
}

[sub_resource type="Animation" id="Animation_k6l16"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:material:shader_parameter/intensity")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Effects/HurtParticles:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}

[sub_resource type="Animation" id="Animation_dxevc"]
resource_name = "hurt"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:material:shader_parameter/intensity")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6),
"transitions": PackedFloat32Array(4, 4, 4, 4, 4, 4, 4),
"update": 0,
"values": [0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Effects/HurtParticles:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_xe5eq"]
_data = {
"RESET": SubResource("Animation_k6l16"),
"hurt": SubResource("Animation_dxevc")
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_kks2p"]
_data = {
"stun": ExtResource("21_ixn4k")
}

[sub_resource type="Animation" id="Animation_ucpsk"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Effects/IntroParticles:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Sprite:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}

[sub_resource type="Animation" id="Animation_uemm6"]
resource_name = "intro"
length = 3.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Effects/BattleCry")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [0.0],
"method": &"play"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("../Sprite:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [16]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../Effects/IntroParticles:emitting")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../Sprite:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(2, 0.5), Vector2(1, 1)]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_kjxam"]
_data = {
"RESET": SubResource("Animation_ucpsk"),
"intro": SubResource("Animation_uemm6")
}

[sub_resource type="Gradient" id="Gradient_lcoxi"]
offsets = PackedFloat32Array(0.37037, 0.651852)
colors = PackedColorArray(0.367549, 0.894801, 1, 1, 0.992095, 0.364069, 1, 1)

[sub_resource type="GradientTexture1D" id="GradientTexture1D_5606i"]
gradient = SubResource("Gradient_lcoxi")

[sub_resource type="Gradient" id="Gradient_pikjh"]
offsets = PackedFloat32Array(0.533333, 1)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)

[sub_resource type="GradientTexture1D" id="GradientTexture1D_pjeh8"]
gradient = SubResource("Gradient_pikjh")

[sub_resource type="Curve" id="Curve_x3x4q"]
_data = [Vector2(0, 0.463636), 0.0, 0.0, 0, 0, Vector2(0.325301, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3

[sub_resource type="CurveTexture" id="CurveTexture_ssoms"]
curve = SubResource("Curve_x3x4q")

[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_s1tqp"]
emission_shape = 3
emission_box_extents = Vector3(8, 1, 1)
particle_flag_disable_z = true
direction = Vector3(0, -1, 0)
spread = 0.0
gravity = Vector3(0, 0, 0)
initial_velocity_min = 32.0
initial_velocity_max = 64.0
orbit_velocity_min = 0.0
orbit_velocity_max = 0.0
scale_max = 1.5
scale_curve = SubResource("CurveTexture_ssoms")
color_ramp = SubResource("GradientTexture1D_pjeh8")
color_initial_ramp = SubResource("GradientTexture1D_5606i")

[sub_resource type="CanvasTexture" id="CanvasTexture_hs7xn"]

[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_j1srf"]
particle_flag_disable_z = true
gravity = Vector3(0, 98, 0)
orbit_velocity_min = 0.0
orbit_velocity_max = 0.0

[sub_resource type="RectangleShape2D" id="RectangleShape2D_uict5"]
size = Vector2(11, 5)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_8lxmf"]
size = Vector2(16, 19)

[sub_resource type="CircleShape2D" id="CircleShape2D_8hwat"]
radius = 16.0

[node name="Doc" type="CharacterBody2D" node_paths=PackedStringArray("Lance", "BossStateMachine", "DefaultSelectedItem", "ThinkerStateMachine", "Sprite", "Inventory", "StateMachine", "Hurtbox")]
y_sort_enabled = true
texture_filter = 3
material = SubResource("ShaderMaterial_7n7iy")
collision_layer = 10
collision_mask = 17
script = ExtResource("2_3elet")
Lance = NodePath("Inventory/DocLance")
BossStateMachine = NodePath("BossStateMachine")
BossName = "Doc, The Two-Time"
Music = ExtResource("3_eo4lg")
MaxHealth = 900.0
DefaultSelectedItem = NodePath("Inventory/DocLance")
ThinkerStateMachine = NodePath("ThinkerStateMachine")
HandTexture = ExtResource("4_8lqj6")
Health = 900.0
Sprite = NodePath("Sprite")
Inventory = NodePath("Inventory")
StateMachine = NodePath("StateMachine")
Hurtbox = NodePath("Hurtbox")

[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState", "Character")]
script = ExtResource("3_t5jjc")
InitialState = NodePath("Idle")
Character = NodePath("..")

[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("MoveState", "Character")]
script = ExtResource("4_b35px")
MoveState = NodePath("../Move")
Character = NodePath("../..")

[node name="Move" type="Node" parent="StateMachine" node_paths=PackedStringArray("IdleState", "Character")]
script = ExtResource("5_pejsd")
IdleState = NodePath("../Idle")
Character = NodePath("../..")

[node name="Dash" type="Node" parent="StateMachine" node_paths=PackedStringArray("IdleState", "Character")]
script = ExtResource("7_0ks57")
IdleState = NodePath("../Idle")
TimeToDash = 0.1
VelocityModifier = 10.0
Character = NodePath("../..")

[node name="BossStateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState")]
script = ExtResource("6_kjpug")
InitialState = NodePath("Telegraph")

[node name="Intro" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("NextState", "NPC")]
script = ExtResource("11_lt771")
NextState = NodePath("../Telegraph")
Duration = 3.0
NPC = NodePath("../..")

[node name="Telegraph" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("TelegraphAnimationPlayer", "AttackState", "NPC")]
script = ExtResource("7_tfwbh")
TelegraphAnimationPlayer = NodePath("../../Animations/Telegraph")
AttackState = NodePath("../ChooseAttack")
NPC = NodePath("../..")

[node name="Dart" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("ChooseAttackState", "Doc", "NPC")]
script = ExtResource("8_1hoax")
Duration = 6.0
AttackDuration = 1.5
Projectile = ExtResource("11_23p3o")
ChooseAttackState = NodePath("../ChooseAttack")
Doc = NodePath("../..")
NPC = NodePath("../..")

[node name="Spike" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("ChooseAttackState", "Doc", "NPC")]
script = ExtResource("10_bgs6o")
Duration = 4.0
AttackDuration = 1.0
Projectile = ExtResource("9_7kavk")
ChooseAttackState = NodePath("../ChooseAttack")
Doc = NodePath("../..")
NPC = NodePath("../..")

[node name="UnwantedFrequency" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("ChooseAttackState", "Doc", "NPC")]
script = ExtResource("12_d51jv")
Duration = 2.0
AttackDuration = 1.0
Projectile = ExtResource("17_hl6o0")
ChooseAttackState = NodePath("../ChooseAttack")
Doc = NodePath("../..")
NPC = NodePath("../..")

[node name="LanceIntro" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("NextState", "NPC")]
script = ExtResource("11_lt771")
NextState = NodePath("../Lance")
Duration = 3.0
NPC = NodePath("../..")

[node name="Lance" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("ExitState", "NPC")]
script = ExtResource("15_dmd05")
ExitState = NodePath("../Exit")
NPC = NodePath("../..")

[node name="ChooseAttack" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("DartState", "SpikeState", "UnwantedFrequencyState", "LanceIntroState", "ExitState", "NPC")]
script = ExtResource("12_45x13")
DartState = NodePath("../Dart")
SpikeState = NodePath("../Spike")
UnwantedFrequencyState = NodePath("../UnwantedFrequency")
LanceIntroState = NodePath("../LanceIntro")
ExitState = NodePath("../Exit")
NPC = NodePath("../..")

[node name="Exit" type="Node" parent="BossStateMachine" node_paths=PackedStringArray("TelegraphAnimationPlayer", "TelegraphState", "NPC")]
script = ExtResource("9_6com1")
TelegraphAnimationPlayer = NodePath("../../Animations/Telegraph")
TelegraphState = NodePath("../Telegraph")
NPC = NodePath("../..")

[node name="ThinkerStateMachine" type="Node" parent="." node_paths=PackedStringArray("InitialState")]
script = ExtResource("20_dy57x")
InitialState = NodePath("Attack")

[node name="Idle" type="Node" parent="ThinkerStateMachine"]

[node name="Attack" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("NPC")]
script = ExtResource("21_ij3bp")
NPC = NodePath("../..")

[node name="DashDefensive" type="Node" parent="ThinkerStateMachine" node_paths=PackedStringArray("NPC")]
script = ExtResource("20_12htp")
MaxDistanceToTarget = 256.0
UseItemDistance = 64.0
NPC = NodePath("../..")

[node name="Animations" type="Node" parent="."]
script = ExtResource("16_bsvls")

[node name="Movement" type="AnimationPlayer" parent="Animations"]
libraries = {
"": SubResource("AnimationLibrary_1xv7m")
}

[node name="Telegraph" type="AnimationPlayer" parent="Animations"]
libraries = {
"": SubResource("AnimationLibrary_rpply")
}

[node name="Hurt" type="AnimationPlayer" parent="Animations"]
root_node = NodePath("../..")
libraries = {
"": SubResource("AnimationLibrary_xe5eq")
}

[node name="Stun" type="AnimationPlayer" parent="Animations"]
libraries = {
"": SubResource("AnimationLibrary_kks2p")
}

[node name="Attack" type="AnimationPlayer" parent="Animations"]

[node name="Misc" type="AnimationPlayer" parent="Animations"]
libraries = {
"": SubResource("AnimationLibrary_kjxam")
}

[node name="Effects" type="Node2D" parent="."]

[node name="UnwantedFrequenciesParticles" type="GPUParticles2D" parent="Effects"]
emitting = false
process_material = SubResource("ParticleProcessMaterial_s1tqp")
texture = SubResource("CanvasTexture_hs7xn")
lifetime = 0.5
trail_enabled = true
trail_sections = 4

[node name="HurtParticles" type="GPUParticles2D" parent="Effects"]
position = Vector2(0, -8)
emitting = false
process_material = ExtResource("17_iomdx")
texture = ExtResource("16_x277j")
lifetime = 0.4
one_shot = true
explosiveness = 1.0

[node name="IntroParticles" type="GPUParticles2D" parent="Effects"]
position = Vector2(0, -8)
emitting = false
amount = 32
process_material = ExtResource("19_q4rt1")
texture = ExtResource("19_p0p6c")
lifetime = 0.5

[node name="Dash" type="GPUParticles2D" parent="Effects"]
position = Vector2(0, -8)
emitting = false
amount = 32
process_material = SubResource("ParticleProcessMaterial_j1srf")

[node name="BattleCry" type="AudioStreamPlayer2D" parent="Effects"]
stream = ExtResource("26_js7p2")
volume_db = 3.0
attenuation = 0.5

[node name="HurtSound" type="AudioStreamPlayer2D" parent="Effects"]
stream = ExtResource("9_stm0e")

[node name="Sprite" type="Sprite2D" parent="."]
y_sort_enabled = true
use_parent_material = true
position = Vector2(-0.5, 0)
texture = ExtResource("3_rs44f")
offset = Vector2(0, -8)
hframes = 17

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-0.5, -1.5)
shape = SubResource("RectangleShape2D_uict5")

[node name="Hurtbox" parent="." instance=ExtResource("7_tnve0")]
position = Vector2(0, -4)
Faction = 2

[node name="CollisionShape2D" parent="Hurtbox" index="0"]
position = Vector2(0, -3.5)
shape = SubResource("RectangleShape2D_8lxmf")

[node name="Inventory" type="Node2D" parent="."]
y_sort_enabled = true
script = ExtResource("8_r8ejq")

[node name="DocLance" parent="Inventory" instance=ExtResource("24_2es2r")]
unique_name_in_owner = true

[node name="InteractionTrigger" parent="." instance=ExtResource("33_08dyq")]

[node name="CollisionShape2D" parent="InteractionTrigger" index="0"]
position = Vector2(0, -6)
shape = SubResource("CircleShape2D_8hwat")

[node name="Popup" parent="InteractionTrigger" index="1"]
offset_top = -44.0
offset_bottom = -14.0

[node name="Label" parent="InteractionTrigger/Popup" index="0"]
text = "Duel"

[editable path="Hurtbox"]
[editable path="InteractionTrigger"]
