[gd_scene load_steps=76 format=3 uid="uid://bwrwh5of0jw4a"]

[ext_resource type="Script" path="res://Scripts/hiro_ai.gd" id="1_yavbv"]
[ext_resource type="PackedScene" uid="uid://dexgmkojd8tpt" path="res://Effects/energy_blast.tscn" id="2_xodg4"]
[ext_resource type="Shader" uid="uid://bcnip762rd6yj" path="res://Shaders/character.tres" id="2_y6nd7"]
[ext_resource type="Texture2D" uid="uid://pittqsk5eskq" path="res://Reed/Reed Walk Sprite Cycle Line Up.png" id="3_2rpco"]
[ext_resource type="AnimationLibrary" uid="uid://bhg3cnhjeq85r" path="res://Reed/reed_animation.tres" id="4_nk4o6"]
[ext_resource type="Script" path="res://addons/godot_state_charts/state_chart.gd" id="5_pgbft"]
[ext_resource type="Script" path="res://addons/godot_state_charts/compound_state.gd" id="6_a7x4q"]
[ext_resource type="Script" path="res://addons/godot_state_charts/atomic_state.gd" id="7_jc1pg"]
[ext_resource type="Script" path="res://addons/godot_state_charts/transition.gd" id="8_713tw"]
[ext_resource type="Script" path="res://addons/godot_state_charts/expression_guard.gd" id="9_nipdn"]

[sub_resource type="ShaderMaterial" id="ShaderMaterial_7ckhc"]
shader = ExtResource("2_y6nd7")
shader_parameter/FlashColor = Color(1, 0, 0, 0)

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_oay50"]
animation = &"idle_south"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_62pxx"]
animation = &"idle_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_66fxj"]
animation = &"idle_east"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_d3ndd"]
animation = &"idle_north"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_7lb65"]
blend_point_0/node = SubResource("AnimationNodeAnimation_oay50")
blend_point_0/pos = Vector2(0, 1)
blend_point_1/node = SubResource("AnimationNodeAnimation_62pxx")
blend_point_1/pos = Vector2(-1, 0)
blend_point_2/node = SubResource("AnimationNodeAnimation_66fxj")
blend_point_2/pos = Vector2(1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_d3ndd")
blend_point_3/pos = Vector2(0, -1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vk5j3"]
animation = &"walking_south"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_87pv0"]
animation = &"walking_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4xdsu"]
animation = &"walking_east"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tmboi"]
animation = &"walking_north"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_h2456"]
blend_point_0/node = SubResource("AnimationNodeAnimation_vk5j3")
blend_point_0/pos = Vector2(0, 1)
blend_point_1/node = SubResource("AnimationNodeAnimation_87pv0")
blend_point_1/pos = Vector2(-1, 0)
blend_point_2/node = SubResource("AnimationNodeAnimation_4xdsu")
blend_point_2/pos = Vector2(1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_tmboi")
blend_point_3/pos = Vector2(0, -1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kgin3"]
animation = &"ai_defeated_start"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0ny5g"]
animation = &"ai_defeated"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tyc74"]
animation = &"hurt_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0vb6l"]
animation = &"hurt_south"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_rm4rl"]
animation = &"hurt_east"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ob16h"]
animation = &"hurt_north"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_h2vkc"]
blend_point_0/node = SubResource("AnimationNodeAnimation_tyc74")
blend_point_0/pos = Vector2(-1, 0)
blend_point_1/node = SubResource("AnimationNodeAnimation_0vb6l")
blend_point_1/pos = Vector2(0, 1)
blend_point_2/node = SubResource("AnimationNodeAnimation_rm4rl")
blend_point_2/pos = Vector2(1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_ob16h")
blend_point_3/pos = Vector2(0, -1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6ohpw"]
animation = &"idle_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_330gg"]
animation = &"idle_east"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lsntm"]
animation = &"idle_north"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g1i0e"]
animation = &"idle_south"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_bd8j1"]
blend_point_0/node = SubResource("AnimationNodeAnimation_6ohpw")
blend_point_0/pos = Vector2(-1, 0)
blend_point_1/node = SubResource("AnimationNodeAnimation_330gg")
blend_point_1/pos = Vector2(1, 0)
blend_point_2/node = SubResource("AnimationNodeAnimation_lsntm")
blend_point_2/pos = Vector2(0, -1)
blend_point_3/node = SubResource("AnimationNodeAnimation_g1i0e")
blend_point_3/pos = Vector2(0, 1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f740i"]
animation = &"punch_south_rigth"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bwovr"]
animation = &"punch_west_rigth"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qqbt6"]
animation = &"punch_east_rigth"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_y3tw5"]
animation = &"punch_north_rigth"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_2orb0"]
blend_point_0/node = SubResource("AnimationNodeAnimation_f740i")
blend_point_0/pos = Vector2(0, 1)
blend_point_1/node = SubResource("AnimationNodeAnimation_bwovr")
blend_point_1/pos = Vector2(-1, 0)
blend_point_2/node = SubResource("AnimationNodeAnimation_qqbt6")
blend_point_2/pos = Vector2(1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_y3tw5")
blend_point_3/pos = Vector2(0, -1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ruw2d"]
animation = &"punch_west_left"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_iu52b"]
animation = &"punch_north_left"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_sotly"]
animation = &"punch_east_left"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ryihd"]
animation = &"punch_south_left"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_dd6tw"]
blend_point_0/node = SubResource("AnimationNodeAnimation_ruw2d")
blend_point_0/pos = Vector2(-1, 0)
blend_point_1/node = SubResource("AnimationNodeAnimation_iu52b")
blend_point_1/pos = Vector2(0, -1)
blend_point_2/node = SubResource("AnimationNodeAnimation_sotly")
blend_point_2/pos = Vector2(1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_ryihd")
blend_point_3/pos = Vector2(0, 1)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p4b5o"]
animation = &"kick_east"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vay80"]
animation = &"kick_north"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1svn8"]
animation = &"kick_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_awga0"]
animation = &"kick_south"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_mr7t3"]
blend_point_0/node = SubResource("AnimationNodeAnimation_p4b5o")
blend_point_0/pos = Vector2(1, 0)
blend_point_1/node = SubResource("AnimationNodeAnimation_vay80")
blend_point_1/pos = Vector2(0, -1)
blend_point_2/node = SubResource("AnimationNodeAnimation_1svn8")
blend_point_2/pos = Vector2(-1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_awga0")
blend_point_3/pos = Vector2(0, 1)
blend_mode = 1

[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_dc3kp"]
blend_point_0/node = SubResource("AnimationNodeBlendSpace2D_2orb0")
blend_point_0/pos = 0.0
blend_point_1/node = SubResource("AnimationNodeBlendSpace2D_dd6tw")
blend_point_1/pos = 0.5
blend_point_2/node = SubResource("AnimationNodeBlendSpace2D_mr7t3")
blend_point_2/pos = 1.0
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_taa1v"]
animation = &"range_south"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_sxqbg"]
animation = &"range_north"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ld7s8"]
animation = &"range_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_csipv"]
animation = &"range_east"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_ywu4e"]
blend_point_0/node = SubResource("AnimationNodeAnimation_taa1v")
blend_point_0/pos = Vector2(0, 1)
blend_point_1/node = SubResource("AnimationNodeAnimation_sxqbg")
blend_point_1/pos = Vector2(0, -1)
blend_point_2/node = SubResource("AnimationNodeAnimation_ld7s8")
blend_point_2/pos = Vector2(-1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_csipv")
blend_point_3/pos = Vector2(1, 0)
blend_mode = 1

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_17wsb"]
animation = &"walking_north"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_j520c"]
animation = &"walking_south"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_srrrs"]
animation = &"walking_west"

[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4ypsn"]
animation = &"walking_east"

[sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_vunsg"]
blend_point_0/node = SubResource("AnimationNodeAnimation_17wsb")
blend_point_0/pos = Vector2(0, -1)
blend_point_1/node = SubResource("AnimationNodeAnimation_j520c")
blend_point_1/pos = Vector2(0, 1)
blend_point_2/node = SubResource("AnimationNodeAnimation_srrrs")
blend_point_2/pos = Vector2(-1, 0)
blend_point_3/node = SubResource("AnimationNodeAnimation_4ypsn")
blend_point_3/pos = Vector2(1, 0)
blend_mode = 1

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

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_sn1tm"]
advance_mode = 2
advance_condition = &"is_moving"

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5i3fu"]
advance_mode = 2
advance_expression = "get(\"parameters/conditions/is_moving\") == false"

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y8p74"]
advance_mode = 2
advance_condition = &"melee"

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_l17k0"]
switch_mode = 2
advance_mode = 2

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ln3pc"]
switch_mode = 2
advance_mode = 2

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_l5ng5"]
switch_mode = 2
advance_mode = 2

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ufuqv"]
switch_mode = 2
advance_mode = 2

[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_w4gie"]
advance_mode = 2
advance_condition = &"range"

[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_b0avg"]
allow_transition_to_self = true
states/End/position = Vector2(1026, 108)
states/Start/position = Vector2(197, 108)
states/cut_idle/node = SubResource("AnimationNodeBlendSpace2D_7lb65")
states/cut_idle/position = Vector2(750, 400)
states/cut_walk/node = SubResource("AnimationNodeBlendSpace2D_h2456")
states/cut_walk/position = Vector2(563, 400)
states/defeated/node = SubResource("AnimationNodeAnimation_kgin3")
states/defeated/position = Vector2(734, 202)
states/defeated_loop/node = SubResource("AnimationNodeAnimation_0ny5g")
states/defeated_loop/position = Vector2(895, 202)
states/hurt/node = SubResource("AnimationNodeBlendSpace2D_h2vkc")
states/hurt/position = Vector2(329, -9)
states/idle/node = SubResource("AnimationNodeBlendSpace2D_bd8j1")
states/idle/position = Vector2(329, 108)
states/melee/node = SubResource("AnimationNodeBlendSpace1D_dc3kp")
states/melee/position = Vector2(257, 226)
states/range_attack/node = SubResource("AnimationNodeBlendSpace2D_ywu4e")
states/range_attack/position = Vector2(424, 226)
states/walk/node = SubResource("AnimationNodeBlendSpace2D_vunsg")
states/walk/position = Vector2(519, 108)
transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_akmuq"), "idle", "walk", SubResource("AnimationNodeStateMachineTransition_sn1tm"), "walk", "idle", SubResource("AnimationNodeStateMachineTransition_5i3fu"), "idle", "melee", SubResource("AnimationNodeStateMachineTransition_y8p74"), "melee", "idle", SubResource("AnimationNodeStateMachineTransition_l17k0"), "hurt", "idle", SubResource("AnimationNodeStateMachineTransition_ln3pc"), "defeated", "defeated_loop", SubResource("AnimationNodeStateMachineTransition_l5ng5"), "range_attack", "idle", SubResource("AnimationNodeStateMachineTransition_ufuqv"), "idle", "range_attack", SubResource("AnimationNodeStateMachineTransition_w4gie")]
graph_offset = Vector2(215, 263)

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vm050"]
radius = 9.0
height = 36.0

[sub_resource type="RectangleShape2D" id="RectangleShape2D_bdqvd"]
size = Vector2(13, 8)

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_m3ug4"]
height = 20.0

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_hxosv"]
radius = 13.0
height = 36.0

[sub_resource type="Resource" id="Resource_ri8lv"]
script = ExtResource("9_nipdn")
expression = "melee_stage == 0"

[sub_resource type="Resource" id="Resource_gtfv8"]
script = ExtResource("9_nipdn")
expression = "melee_stage == 1"

[node name="ReedAI" type="CharacterBody2D"]
y_sort_enabled = true
collision_layer = 5
motion_mode = 1
script = ExtResource("1_yavbv")
projectile = ExtResource("2_xodg4")

[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
material = SubResource("ShaderMaterial_7ckhc")
position = Vector2(0, -13)
texture = ExtResource("3_2rpco")
hframes = 20

[node name="AnimationTree" type="AnimationTree" parent="."]
libraries = {
"": ExtResource("4_nk4o6")
}
tree_root = SubResource("AnimationNodeStateMachine_b0avg")
parameters/conditions/is_moving = false
parameters/conditions/melee = false
parameters/conditions/range = false
parameters/cut_idle/blend_position = Vector2(0.102908, -0.492064)
parameters/cut_walk/blend_position = Vector2(0.116751, -1.05556)
parameters/hurt/blend_position = Vector2(0, -0.873016)
parameters/idle/blend_position = Vector2(-0.183445, 0.227513)
parameters/melee/blend_position = 0.0
parameters/melee/0/blend_position = Vector2(0.000877976, 0.862434)
parameters/melee/1/blend_position = Vector2(-0.218698, 0.0434783)
parameters/melee/2/blend_position = Vector2(0, 0)
parameters/range_attack/blend_position = Vector2(-0.00894856, 0.94709)
parameters/walk/blend_position = Vector2(-0.30916, 0.693122)

[node name="Hitbox" type="Area2D" parent="."]
position = Vector2(0, 1)
collision_layer = 2
collision_mask = 10
metadata/_edit_lock_ = true

[node name="Collider" type="CollisionShape2D" parent="Hitbox"]
position = Vector2(0, -13)
shape = SubResource("CapsuleShape2D_vm050")
debug_color = Color(1, 0.133333, 0.321569, 0.419608)

[node name="MovementCollider" type="CollisionShape2D" parent="."]
position = Vector2(-0.5, -1)
shape = SubResource("RectangleShape2D_bdqvd")

[node name="Attackbox" type="Area2D" parent="."]
position = Vector2(0, 1)
collision_layer = 8
collision_mask = 2
input_pickable = false

[node name="Collider" type="CollisionShape2D" parent="Attackbox"]
position = Vector2(0, -10)
shape = SubResource("CapsuleShape2D_m3ug4")
disabled = true
debug_color = Color(0.745098, 0.462745, 0, 0.419608)

[node name="Meleebox" type="Area2D" parent="."]
collision_layer = 4

[node name="DetectionArea" type="CollisionShape2D" parent="Meleebox"]
position = Vector2(0, -12)
shape = SubResource("CapsuleShape2D_hxosv")
debug_color = Color(0.784314, 0.423529, 0.27451, 0.419608)

[node name="StateMachine" type="Node" parent="."]
script = ExtResource("5_pgbft")

[node name="Root" type="Node" parent="StateMachine"]
script = ExtResource("6_a7x4q")
initial_state = NodePath("Think")

[node name="Think" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToMelee" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../Melee")
event = &"will_melee"
delay_in_seconds = "0.0"

[node name="ToAlign" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../AlignForRange")
event = &"wants_torange"
delay_in_seconds = "0.0"

[node name="ToApproach" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../Approach")
event = &"wants_tomelee"
guard = SubResource("Resource_ri8lv")
delay_in_seconds = "0.0"

[node name="ToChase" type="Node" parent="StateMachine/Root/Think"]
script = ExtResource("8_713tw")
to = NodePath("../../Chase")
event = &"wants_tomelee"
guard = SubResource("Resource_gtfv8")
delay_in_seconds = "0.0"

[node name="Approach" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/Approach"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/Approach"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToMelee" type="Node" parent="StateMachine/Root/Approach"]
script = ExtResource("8_713tw")
to = NodePath("../../Melee")
event = &"will_melee"
delay_in_seconds = "0.0"

[node name="ToAlign" type="Node" parent="StateMachine/Root/Approach"]
script = ExtResource("8_713tw")
to = NodePath("../../AlignForRange")
event = &"will_range"
delay_in_seconds = "0.0"

[node name="ToThink" type="Node" parent="StateMachine/Root/Approach"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"approach_complete"
delay_in_seconds = "0.0"

[node name="Chase" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/Chase"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/Chase"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToMelee" type="Node" parent="StateMachine/Root/Chase"]
script = ExtResource("8_713tw")
to = NodePath("../../Melee")
event = &"will_melee"
delay_in_seconds = "0.0"

[node name="ToAlign" type="Node" parent="StateMachine/Root/Chase"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"melee_aborted"
delay_in_seconds = "0.0"

[node name="Melee" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/Melee"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/Melee"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToThink" type="Node" parent="StateMachine/Root/Melee"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"melee_complete"
delay_in_seconds = "0.0"

[node name="Hurt" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToDefeat" type="Node" parent="StateMachine/Root/Hurt"]
script = ExtResource("8_713tw")
to = NodePath("../../Defeat")
event = &"been_defeated"
delay_in_seconds = "0.0"

[node name="ToThink" type="Node" parent="StateMachine/Root/Hurt"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"hurt_complete"
delay_in_seconds = "0.0"

[node name="ToHurtReposition" type="Node" parent="StateMachine/Root/Hurt"]
script = ExtResource("8_713tw")
to = NodePath("../../HurtReposition")
event = &"will_reposition"
delay_in_seconds = "0.0"

[node name="HurtReposition" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToThink" type="Node" parent="StateMachine/Root/HurtReposition"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"hurt_complete"
delay_in_seconds = "0.0"

[node name="AlignForRange" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/AlignForRange"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/AlignForRange"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToRange" type="Node" parent="StateMachine/Root/AlignForRange"]
script = ExtResource("8_713tw")
to = NodePath("../../Range")
event = &"will_range"
delay_in_seconds = "0.0"

[node name="ToApproach" type="Node" parent="StateMachine/Root/AlignForRange"]
script = ExtResource("8_713tw")
to = NodePath("../../Approach")
event = &"will_melee"
delay_in_seconds = "0.0"

[node name="ToThink" type="Node" parent="StateMachine/Root/AlignForRange"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"range_aborted"
delay_in_seconds = "0.0"

[node name="Range" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="ToVictory" type="Node" parent="StateMachine/Root/Range"]
script = ExtResource("8_713tw")
to = NodePath("../../Victory")
event = &"has_won"
delay_in_seconds = "0.0"

[node name="ToHurt" type="Node" parent="StateMachine/Root/Range"]
script = ExtResource("8_713tw")
to = NodePath("../../Hurt")
event = &"been_hurt"
delay_in_seconds = "0.0"

[node name="ToThink" type="Node" parent="StateMachine/Root/Range"]
script = ExtResource("8_713tw")
to = NodePath("../../Think")
event = &"range_complete"
delay_in_seconds = "0.0"

[node name="Defeat" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

[node name="Victory" type="Node" parent="StateMachine/Root"]
script = ExtResource("7_jc1pg")

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

[node name="East" type="Marker2D" parent="RangeSpawners"]
position = Vector2(19, -14)

[node name="West" type="Marker2D" parent="RangeSpawners"]
position = Vector2(-21, -15)

[node name="South" type="Marker2D" parent="RangeSpawners"]
position = Vector2(-2, 15)

[node name="North" type="Marker2D" parent="RangeSpawners"]
position = Vector2(-4, -40)

[connection signal="animation_finished" from="AnimationTree" to="." method="_on_animation_tree_animation_finished"]
[connection signal="area_entered" from="Attackbox" to="." method="_on_attackbox_area_entered"]
[connection signal="body_entered" from="Meleebox" to="." method="_on_meleebox_body_entered"]
[connection signal="body_exited" from="Meleebox" to="." method="_on_meleebox_body_exited"]
[connection signal="state_entered" from="StateMachine/Root/Think" to="." method="_on_think_state_entered"]
[connection signal="state_processing" from="StateMachine/Root/Think" to="." method="_on_think_state_processing"]
[connection signal="state_entered" from="StateMachine/Root/Approach" to="." method="_on_approach_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/Approach" to="." method="_on_approach_state_exited"]
[connection signal="state_processing" from="StateMachine/Root/Approach" to="." method="_on_approach_state_processing"]
[connection signal="taken" from="StateMachine/Root/Approach/ToThink" to="." method="_on_approach_to_think_taken"]
[connection signal="state_entered" from="StateMachine/Root/Chase" to="." method="_on_chase_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/Chase" to="." method="_on_chase_state_exited"]
[connection signal="state_processing" from="StateMachine/Root/Chase" to="." method="_on_chase_state_processing"]
[connection signal="taken" from="StateMachine/Root/Chase/ToAlign" to="." method="_on_chase_to_range_taken"]
[connection signal="state_entered" from="StateMachine/Root/Melee" to="." method="_on_melee_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/Melee" to="." method="_on_melee_state_exited"]
[connection signal="state_processing" from="StateMachine/Root/Melee" to="." method="_on_melee_state_processing"]
[connection signal="state_entered" from="StateMachine/Root/Hurt" to="." method="_on_hurt_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/Hurt" to="." method="_on_hurt_state_exited"]
[connection signal="state_entered" from="StateMachine/Root/HurtReposition" to="." method="_on_hurt_reposition_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/HurtReposition" to="." method="_on_hurt_reposition_state_exited"]
[connection signal="state_entered" from="StateMachine/Root/AlignForRange" to="." method="_on_align_for_range_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/AlignForRange" to="." method="_on_align_for_range_state_exited"]
[connection signal="state_processing" from="StateMachine/Root/AlignForRange" to="." method="_on_align_for_range_state_processing"]
[connection signal="state_entered" from="StateMachine/Root/Range" to="." method="_on_range_state_entered"]
[connection signal="state_exited" from="StateMachine/Root/Range" to="." method="_on_range_state_exited"]
[connection signal="state_entered" from="StateMachine/Root/Defeat" to="." method="_on_defeat_state_entered"]
[connection signal="state_entered" from="StateMachine/Root/Victory" to="." method="_on_victory_state_entered"]
