[gd_scene load_steps=64 format=2] [ext_resource path="res://Player/Player.gd" type="Script" id=1] [ext_resource path="res://Player/player.png" type="Texture" id=2] [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.tscn" type="PackedScene" id=3] [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=4] [ext_resource path="res://Overlap/Stats/Stats.tscn" type="PackedScene" id=5] [ext_resource path="res://Fonts/Harmonic/Harmonic.ttf" type="DynamicFontData" id=6] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=7] [ext_resource path="res://Effects/Heal/HealEffect.tscn" type="PackedScene" id=8] [ext_resource path="res://Player/States/Idle.gd" type="Script" id=12] [ext_resource path="res://Player/States/Run.gd" type="Script" id=13] [ext_resource path="res://Player/States/Attack.gd" type="Script" id=14] [ext_resource path="res://Player/PlayerStateMachine.gd" type="Script" id=15] [ext_resource path="res://Player/States/Roll.gd" type="Script" id=16] [sub_resource type="CircleShape2D" id=1] radius = 3.0 [sub_resource type="Animation" id=2] resource_name = "HitDown" length = 0.4 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), "update": 1, "values": [ 36, 37, 38, 39 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.4 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "hit_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("Pivot:rotation_degrees") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 90.0 ] } tracks/3/type = "value" tracks/3/path = NodePath("Pivot/SwordHitbox/CollisionShape2D:disabled") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0.1, 0.3 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=3] resource_name = "HitLeft" length = 0.4 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), "update": 1, "values": [ 32, 33, 34, 35 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.4 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "hit_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("Pivot:rotation_degrees") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 180.0 ] } tracks/3/type = "value" tracks/3/path = NodePath("Pivot/SwordHitbox/CollisionShape2D:disabled") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0.1, 0.3 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=4] resource_name = "HitRight" length = 0.4 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), "update": 1, "values": [ 24, 25, 26, 27 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.4 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "hit_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("Pivot:rotation_degrees") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 0.0 ] } tracks/3/type = "value" tracks/3/path = NodePath("Pivot/SwordHitbox/CollisionShape2D:disabled") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0.1, 0.3 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=5] resource_name = "HitTop" length = 0.4 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), "update": 1, "values": [ 28, 29, 30, 31 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.4 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "hit_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("Pivot:rotation_degrees") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 270.0 ] } tracks/3/type = "value" tracks/3/path = NodePath("Pivot/SwordHitbox/CollisionShape2D:disabled") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0.1, 0.3 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=6] resource_name = "IdleDown" length = 0.1 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ 18 ] } [sub_resource type="Animation" id=7] resource_name = "IdleLeft" length = 0.1 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ 12 ] } [sub_resource type="Animation" id=8] resource_name = "IdleRight" length = 0.1 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ 0 ] } [sub_resource type="Animation" id=9] resource_name = "IdleTop" length = 0.1 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 1, "values": [ 6 ] } [sub_resource type="Animation" id=10] length = 0.5 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 1, "values": [ 55, 56, 57, 58, 59 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.5 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "roll_finished" } ] } [sub_resource type="Animation" id=11] length = 0.5 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 1, "values": [ 50, 51, 52, 53, 54 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.5 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "roll_finished" } ] } [sub_resource type="Animation" id=12] length = 0.5 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 1, "values": [ 40, 41, 42, 43, 44 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.5 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "roll_finished" } ] } [sub_resource type="Animation" id=13] length = 0.5 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 1, "values": [ 45, 46, 47, 48, 49 ] } tracks/1/type = "method" tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0.5 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "roll_finished" } ] } [sub_resource type="Animation" id=14] length = 0.6 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), "update": 1, "values": [ 19, 20, 21, 22, 23, 18 ] } [sub_resource type="Animation" id=15] length = 0.6 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), "update": 1, "values": [ 13, 14, 15, 16, 17, 12 ] } [sub_resource type="Animation" id=16] length = 0.6 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), "update": 1, "values": [ 1, 2, 3, 4, 5, 0 ] } [sub_resource type="Animation" id=17] length = 0.6 loop = true tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), "update": 1, "values": [ 7, 8, 9, 10, 11, 6 ] } [sub_resource type="AnimationNodeAnimation" id=18] animation = "HitDown" [sub_resource type="AnimationNodeAnimation" id=19] animation = "HitTop" [sub_resource type="AnimationNodeAnimation" id=20] animation = "HitRight" [sub_resource type="AnimationNodeAnimation" id=21] animation = "HitLeft" [sub_resource type="AnimationNodeBlendSpace2D" id=22] blend_point_0/node = SubResource( 18 ) blend_point_0/pos = Vector2( 0, 1 ) blend_point_1/node = SubResource( 19 ) blend_point_1/pos = Vector2( 0, -1 ) blend_point_2/node = SubResource( 20 ) blend_point_2/pos = Vector2( 1, 0 ) blend_point_3/node = SubResource( 21 ) blend_point_3/pos = Vector2( -1, 0 ) blend_mode = 1 [sub_resource type="AnimationNodeAnimation" id=23] animation = "IdleDown" [sub_resource type="AnimationNodeAnimation" id=24] animation = "IdleRight" [sub_resource type="AnimationNodeAnimation" id=25] animation = "IdleLeft" [sub_resource type="AnimationNodeAnimation" id=26] animation = "IdleTop" [sub_resource type="AnimationNodeBlendSpace2D" id=27] blend_point_0/node = SubResource( 23 ) blend_point_0/pos = Vector2( 0, 1.1 ) blend_point_1/node = SubResource( 24 ) blend_point_1/pos = Vector2( 1, 0 ) blend_point_2/node = SubResource( 25 ) blend_point_2/pos = Vector2( -1, 0 ) blend_point_3/node = SubResource( 26 ) blend_point_3/pos = Vector2( 0, -1.1 ) min_space = Vector2( -1, -1.1 ) max_space = Vector2( 1, 1.1 ) blend_mode = 1 [sub_resource type="AnimationNodeAnimation" id=28] animation = "RollDown" [sub_resource type="AnimationNodeAnimation" id=29] animation = "RollRight" [sub_resource type="AnimationNodeAnimation" id=30] animation = "RollTop" [sub_resource type="AnimationNodeAnimation" id=31] animation = "RollLeft" [sub_resource type="AnimationNodeBlendSpace2D" id=32] resource_name = " " blend_point_0/node = SubResource( 28 ) blend_point_0/pos = Vector2( 0, 1.1 ) blend_point_1/node = SubResource( 29 ) blend_point_1/pos = Vector2( 1, 0 ) blend_point_2/node = SubResource( 30 ) blend_point_2/pos = Vector2( 0, -1.1 ) blend_point_3/node = SubResource( 31 ) blend_point_3/pos = Vector2( -1, 0 ) min_space = Vector2( -1, -1.1 ) max_space = Vector2( 1, 1.1 ) blend_mode = 1 [sub_resource type="AnimationNodeAnimation" id=33] animation = "RunDown" [sub_resource type="AnimationNodeAnimation" id=34] animation = "RunUp" [sub_resource type="AnimationNodeAnimation" id=35] animation = "RunRight" [sub_resource type="AnimationNodeAnimation" id=36] animation = "RunLeft" [sub_resource type="AnimationNodeBlendSpace2D" id=37] blend_point_0/node = SubResource( 33 ) blend_point_0/pos = Vector2( 0, 1.1 ) blend_point_1/node = SubResource( 34 ) blend_point_1/pos = Vector2( 0, -1.1 ) blend_point_2/node = SubResource( 35 ) blend_point_2/pos = Vector2( 1, 0 ) blend_point_3/node = SubResource( 36 ) blend_point_3/pos = Vector2( -1, 0 ) min_space = Vector2( -1, -1.1 ) max_space = Vector2( 1, 1.1 ) blend_mode = 1 [sub_resource type="AnimationNodeStateMachineTransition" id=38] [sub_resource type="AnimationNodeStateMachineTransition" id=39] [sub_resource type="AnimationNodeStateMachineTransition" id=40] [sub_resource type="AnimationNodeStateMachineTransition" id=41] [sub_resource type="AnimationNodeStateMachineTransition" id=42] [sub_resource type="AnimationNodeStateMachineTransition" id=43] [sub_resource type="AnimationNodeStateMachine" id=44] states/hit/node = SubResource( 22 ) states/hit/position = Vector2( 511, 196 ) states/idle/node = SubResource( 27 ) states/idle/position = Vector2( 202, 196 ) states/roll/node = SubResource( 32 ) states/roll/position = Vector2( 511, 90 ) states/run/node = SubResource( 37 ) states/run/position = Vector2( 511, 271 ) transitions = [ "idle", "hit", SubResource( 38 ), "hit", "idle", SubResource( 39 ), "idle", "run", SubResource( 40 ), "run", "idle", SubResource( 41 ), "idle", "roll", SubResource( 42 ), "roll", "idle", SubResource( 43 ) ] start_node = "idle" graph_offset = Vector2( 12, 66 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=45] [sub_resource type="CapsuleShape2D" id=46] radius = 4.5 height = 0.2 [sub_resource type="CapsuleShape2D" id=47] radius = 4.5 height = 0.2 [sub_resource type="CapsuleShape2D" id=48] radius = 4.03497 height = 9.42006 [sub_resource type="CircleShape2D" id=49] radius = 13.3924 [sub_resource type="DynamicFont" id=50] size = 12 font_data = ExtResource( 6 ) [node name="Player" type="KinematicBody2D" groups=[ "hero", ]] collision_mask = 14 script = ExtResource( 1 ) ROLL_SPEED = 120 FRICTION = 270 [node name="Kind" parent="." instance=ExtResource( 7 )] general = 4 kind = 1 [node name="Sprite" type="Sprite" parent="."] position = Vector2( 0.273621, 3.88423 ) scale = Vector2( 0.5, 0.5 ) texture = ExtResource( 2 ) offset = Vector2( 0, -18 ) hframes = 60 frame = 12 [node name="Body" type="CollisionShape2D" parent="."] position = Vector2( 0.0107212, 0.0456073 ) rotation = 1.5708 shape = SubResource( 1 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/HitDown = SubResource( 2 ) anims/HitLeft = SubResource( 3 ) anims/HitRight = SubResource( 4 ) anims/HitTop = SubResource( 5 ) anims/IdleDown = SubResource( 6 ) anims/IdleLeft = SubResource( 7 ) anims/IdleRight = SubResource( 8 ) anims/IdleTop = SubResource( 9 ) anims/RollDown = SubResource( 10 ) anims/RollLeft = SubResource( 11 ) anims/RollRight = SubResource( 12 ) anims/RollTop = SubResource( 13 ) anims/RunDown = SubResource( 14 ) anims/RunLeft = SubResource( 15 ) anims/RunRight = SubResource( 16 ) anims/RunUp = SubResource( 17 ) [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource( 44 ) anim_player = NodePath("../AnimationPlayer") active = true parameters/playback = SubResource( 45 ) parameters/hit/blend_position = Vector2( 0.032258, -0.777778 ) parameters/idle/blend_position = Vector2( -0.646202, 0.122222 ) parameters/roll/blend_position = Vector2( 0.0166494, -0.387619 ) parameters/run/blend_position = Vector2( -0.0104058, -1.05259 ) [node name="Hitbox" parent="." instance=ExtResource( 4 )] position = Vector2( 0, 0.0375252 ) collision_layer = 0 collision_mask = 32 [node name="CollisionShape2D" parent="Hitbox" index="0"] position = Vector2( -0.0192623, 0.000833511 ) shape = SubResource( 46 ) [node name="Hurtbox" parent="." instance=ExtResource( 3 )] position = Vector2( 0, 0.0375252 ) collision_mask = 0 [node name="CollisionShape2D" parent="Hurtbox" index="0"] position = Vector2( 1.90735e-06, 0.000833988 ) shape = SubResource( 47 ) [node name="Pivot" type="Position2D" parent="."] position = Vector2( 0, -4 ) rotation = 3.14159 __meta__ = { "_gizmo_extents_": 20.0 } [node name="SwordHitbox" parent="Pivot" instance=ExtResource( 4 )] collision_layer = 0 collision_mask = 76 [node name="CollisionShape2D" parent="Pivot/SwordHitbox" index="0"] position = Vector2( 8.43416, 0.0698299 ) shape = SubResource( 48 ) disabled = true [node name="SwordRange" parent="Pivot" instance=ExtResource( 4 )] position = Vector2( 1.15451e-05, -4.16248 ) rotation = -3.14159 scale = Vector2( 0.909091, 0.909091 ) collision_layer = 128 collision_mask = 0 damage = 0.0 [node name="CollisionShape2D" parent="Pivot/SwordRange" index="0"] position = Vector2( 0, -4.56405 ) shape = SubResource( 49 ) [node name="DebugLabel" type="Label" parent="."] margin_left = -8.12021 margin_top = -21.9801 margin_right = 12.8798 margin_bottom = -9.98004 custom_fonts/font = SubResource( 50 ) text = "Held" __meta__ = { "_edit_use_anchors_": false } [node name="Stats" parent="." instance=ExtResource( 5 )] max_health = 999999 [node name="AnimationStates" type="Node" parent="."] script = ExtResource( 15 ) START_STATE = NodePath("Idle") [node name="Run" type="Node" parent="AnimationStates"] script = ExtResource( 13 ) SoundLibary = PoolStringArray( "res://Player/Sounds/hero_walk_1.ogg", "res://Player/Sounds/hero_walk_2.ogg", "res://Player/Sounds/hero_walk_3.ogg", "res://Player/Sounds/hero_walk_4.ogg", "res://Player/Sounds/hero_walk_5.ogg" ) Delay = 0.25 [node name="Idle" type="Node" parent="AnimationStates"] script = ExtResource( 12 ) [node name="Attack" type="Node" parent="AnimationStates"] script = ExtResource( 14 ) [node name="Roll" type="Node" parent="AnimationStates"] script = ExtResource( 16 ) [node name="Effects" type="Node2D" parent="."] [node name="HealEffect" parent="Effects" instance=ExtResource( 8 )] emitting = false [connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] [connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] [connection signal="area_exited" from="Hurtbox" to="." method="_on_Hurtbox_area_exited"] [connection signal="area_entered" from="Pivot/SwordRange" to="." method="_on_SwordRange_area_entered"] [connection signal="area_exited" from="Pivot/SwordRange" to="." method="_on_SwordRange_area_exited"] [connection signal="no_health" from="Stats" to="." method="_on_Stats_no_health"] [editable path="Hitbox"] [editable path="Hurtbox"] [editable path="Pivot/SwordHitbox"] [editable path="Pivot/SwordRange"]