[gd_scene load_steps=51 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://AI/HitBox.tscn" type="PackedScene" id=3] [ext_resource path="res://Player/sword.gd" type="Script" id=4] [sub_resource type="CapsuleShape2D" id=1] radius = 3.21513 height = 3.37022 [sub_resource type="Animation" id=2] resource_name = "AttackDown" 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": "attack_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("HitBoxPosition: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("HitBoxPosition/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.4 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=3] resource_name = "AttackLeft" 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": "attack_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("HitBoxPosition: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("HitBoxPosition/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.4 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=4] resource_name = "AttackRight" 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": "attack_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("HitBoxPosition/SwordHitBox/CollisionShape2D:disabled") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0.1, 0.4 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } tracks/3/type = "value" tracks/3/path = NodePath("HitBoxPosition:rotation_degrees") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 0.0 ] } [sub_resource type="Animation" id=5] resource_name = "AttackUp" 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": "attack_finished" } ] } tracks/2/type = "value" tracks/2/path = NodePath("HitBoxPosition: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("HitBoxPosition/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.4 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] } [sub_resource type="Animation" id=6] length = 0.1 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] 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] 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] 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] resource_name = "RollDown" 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] resource_name = "RollLeft" 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] resource_name = "RollRight" 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] resource_name = "RollUp" 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": 0, "values": [ 7, 8, 9, 10, 11, 6 ] } [sub_resource type="AnimationNodeAnimation" id=18] animation = "AttackLeft" [sub_resource type="AnimationNodeAnimation" id=19] animation = "AttackDown" [sub_resource type="AnimationNodeAnimation" id=20] animation = "AttackRight" [sub_resource type="AnimationNodeAnimation" id=21] animation = "AttackUp" [sub_resource type="AnimationNodeBlendSpace2D" id=22] blend_point_0/node = SubResource( 18 ) blend_point_0/pos = Vector2( -1, 0 ) blend_point_1/node = SubResource( 19 ) blend_point_1/pos = Vector2( 0, 1.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( 0, -1.1 ) min_space = Vector2( -1, -1.1 ) max_space = Vector2( 1, 1.1 ) blend_mode = 1 [sub_resource type="AnimationNodeAnimation" id=23] animation = "IdleLeft" [sub_resource type="AnimationNodeAnimation" id=24] animation = "IdleDown" [sub_resource type="AnimationNodeAnimation" id=25] animation = "IdleRight" [sub_resource type="AnimationNodeAnimation" id=26] animation = "IdleUp" [sub_resource type="AnimationNodeBlendSpace2D" id=27] blend_point_0/node = SubResource( 23 ) blend_point_0/pos = Vector2( -1, 0 ) blend_point_1/node = SubResource( 24 ) blend_point_1/pos = Vector2( 0, 1.1 ) 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 = "RollLeft" [sub_resource type="AnimationNodeAnimation" id=29] animation = "RollDown" [sub_resource type="AnimationNodeAnimation" id=30] animation = "RollRight" [sub_resource type="AnimationNodeAnimation" id=31] animation = "RollUp" [sub_resource type="AnimationNodeBlendSpace2D" id=32] blend_point_0/node = SubResource( 28 ) blend_point_0/pos = Vector2( -1, 0 ) blend_point_1/node = SubResource( 29 ) blend_point_1/pos = Vector2( 0, 1.1 ) blend_point_2/node = SubResource( 30 ) blend_point_2/pos = Vector2( 1, 0 ) blend_point_3/node = SubResource( 31 ) 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=33] animation = "RunLeft" [sub_resource type="AnimationNodeAnimation" id=34] animation = "RunDown" [sub_resource type="AnimationNodeAnimation" id=35] animation = "RunRight" [sub_resource type="AnimationNodeAnimation" id=36] animation = "RunUp" [sub_resource type="AnimationNodeBlendSpace2D" id=37] blend_point_0/node = SubResource( 33 ) blend_point_0/pos = Vector2( -1, 0 ) 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( 0, -1.1 ) 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/Attack/node = SubResource( 22 ) states/Attack/position = Vector2( 285, 201 ) states/Idle/node = SubResource( 27 ) states/Idle/position = Vector2( 285, 91 ) states/Roll/node = SubResource( 32 ) states/Roll/position = Vector2( 75, 91 ) states/Run/node = SubResource( 37 ) states/Run/position = Vector2( 544, 91 ) transitions = [ "Idle", "Run", SubResource( 38 ), "Run", "Idle", SubResource( 39 ), "Attack", "Idle", SubResource( 40 ), "Idle", "Attack", SubResource( 41 ), "Roll", "Idle", SubResource( 42 ), "Idle", "Roll", SubResource( 43 ) ] start_node = "Idle" [sub_resource type="AnimationNodeStateMachinePlayback" id=45] [sub_resource type="CapsuleShape2D" id=46] height = 12.0 [node name="player" type="KinematicBody2D"] collision_layer = 2 script = ExtResource( 1 ) [node name="Sprite" type="Sprite" parent="."] position = Vector2( 0.5, -10 ) texture = ExtResource( 2 ) hframes = 60 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] rotation = -1.5708 shape = SubResource( 1 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/AttackDown = SubResource( 2 ) anims/AttackLeft = SubResource( 3 ) anims/AttackRight = SubResource( 4 ) anims/AttackUp = SubResource( 5 ) anims/IdleDown = SubResource( 6 ) anims/IdleLeft = SubResource( 7 ) anims/IdleRight = SubResource( 8 ) anims/IdleUp = SubResource( 9 ) anims/RollDown = SubResource( 10 ) anims/RollLeft = SubResource( 11 ) anims/RollRight = SubResource( 12 ) anims/RollUp = 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") parameters/playback = SubResource( 45 ) parameters/Attack/blend_position = Vector2( 1, 0 ) parameters/Idle/blend_position = Vector2( 1, 0 ) parameters/Roll/blend_position = Vector2( 1, 0 ) parameters/Run/blend_position = Vector2( 1, 0 ) [node name="HitBoxPosition" type="Position2D" parent="."] position = Vector2( 0, -5 ) [node name="SwordHitBox" parent="HitBoxPosition" instance=ExtResource( 3 )] position = Vector2( 16, 0 ) collision_layer = 0 collision_mask = 8 script = ExtResource( 4 ) damage = 1 [node name="CollisionShape2D" parent="HitBoxPosition/SwordHitBox" index="0"] shape = SubResource( 46 ) disabled = true [editable path="HitBoxPosition/SwordHitBox"]