diff --git a/metroidvania/Levels/DoorConnections/01_99.tres b/metroidvania/Levels/DoorConnections/01_99.tres new file mode 100644 index 0000000..20af6e3 --- /dev/null +++ b/metroidvania/Levels/DoorConnections/01_99.tres @@ -0,0 +1,3 @@ +[gd_resource type="Resource" format=2] + +[resource] diff --git a/metroidvania/Levels/Level_00.tscn b/metroidvania/Levels/Level_00.tscn index 83b5141..0027c90 100644 --- a/metroidvania/Levels/Level_00.tscn +++ b/metroidvania/Levels/Level_00.tscn @@ -7,7 +7,7 @@ [node name="Level_00" instance=ExtResource( 1 )] [node name="TileMap" parent="." index="0"] -tile_data = PoolIntArray( 0, 0, 4, 1, 0, 196609, 2, 0, 196609, 3, 0, 196609, 4, 0, 196609, 5, 0, 196609, 6, 0, 196609, 7, 0, 196609, 8, 0, 196609, 9, 0, 196609, 10, 0, 196609, 11, 0, 196609, 12, 0, 196609, 13, 0, 196609, 14, 0, 196609, 15, 0, 196609, 16, 0, 196609, 17, 0, 196609, 18, 0, 196609, 19, 0, 7, 65536, 0, 65539, 65555, 0, 65539, 131072, 0, 65539, 131091, 0, 65539, 196608, 0, 65539, 196627, 0, 65539, 262144, 0, 65539, 262163, 0, 65539, 327680, 0, 65539, 327699, 0, 65539, 393216, 0, 65539, 393235, 0, 65539, 458752, 0, 65539, 458771, 0, 131075, 524288, 0, 65539, 589824, 0, 65539, 655360, 0, 196612, 655361, 0, 196609, 655362, 0, 196609, 655363, 0, 196609, 655364, 0, 196609, 655365, 0, 196609, 655366, 0, 196609, 655367, 0, 196609, 655368, 0, 196609, 655369, 0, 196609, 655370, 0, 196609, 655371, 0, 196609, 655372, 0, 196609, 655373, 0, 196609, 655374, 0, 196609, 655375, 0, 196609, 655376, 0, 196609, 655377, 0, 196609, 655378, 0, 196609, 655379, 0, 196610 ) +tile_data = PoolIntArray( 0, 0, 4, 1, 0, 196609, 2, 0, 196609, 3, 0, 196609, 4, 0, 196609, 5, 0, 196609, 6, 0, 196609, 7, 0, 196609, 8, 0, 196609, 9, 0, 196609, 10, 0, 196609, 11, 0, 196609, 12, 0, 196609, 13, 0, 196609, 14, 0, 196609, 15, 0, 196609, 16, 0, 196609, 17, 0, 196609, 18, 0, 196609, 19, 0, 7, 65536, 0, 65539, 65555, 0, 65539, 131072, 0, 65539, 131091, 0, 65539, 262142, 0, 4, 262143, 0, 196609, 196608, 0, 196615, 196627, 0, 65539, 327678, 0, 65539, 262163, 0, 65539, 393214, 0, 65539, 327699, 0, 65539, 458750, 0, 65539, 393235, 0, 65539, 524286, 0, 196612, 524287, 0, 196609, 458752, 0, 7, 458771, 0, 131075, 524288, 0, 65539, 589824, 0, 65539, 655360, 0, 196612, 655361, 0, 196609, 655362, 0, 196609, 655363, 0, 196609, 655364, 0, 196609, 655365, 0, 196609, 655366, 0, 196609, 655367, 0, 196609, 655368, 0, 196609, 655369, 0, 196609, 655370, 0, 196609, 655371, 0, 196609, 655372, 0, 196609, 655373, 0, 196609, 655374, 0, 196609, 655375, 0, 196609, 655376, 0, 196609, 655377, 0, 196609, 655378, 0, 196609, 655379, 0, 196610 ) [node name="Door" parent="." index="1" instance=ExtResource( 2 )] position = Vector2( 312, 144 ) diff --git a/metroidvania/Levels/Level_01.tscn b/metroidvania/Levels/Level_01.tscn index 21c28d5..77a0ee5 100644 --- a/metroidvania/Levels/Level_01.tscn +++ b/metroidvania/Levels/Level_01.tscn @@ -1,16 +1,26 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://Levels/Door.tscn" type="PackedScene" id=1] [ext_resource path="res://Levels/Level.tscn" type="PackedScene" id=2] [ext_resource path="res://Levels/DoorConnections/00_link_01.tres" type="Resource" id=3] +[ext_resource path="res://Levels/DoorConnections/01_99.tres" type="Resource" id=4] +[ext_resource path="res://Scenes/Player/MissilesPowerup.tscn" type="PackedScene" id=5] [node name="Level_01" instance=ExtResource( 2 )] [node name="TileMap" parent="." index="0"] tile_data = PoolIntArray( 393216, 0, 4, 393217, 0, 196609, 393218, 0, 196609, 393219, 0, 196609, 393220, 0, 196609, 393221, 0, 7, 458752, 0, 131075, 458757, 0, 131075, 655360, 0, 196608, 655361, 0, 196609, 655362, 0, 196609, 655363, 0, 196609, 655364, 0, 196609, 655365, 0, 196610 ) -[node name="InDoor" parent="." index="1" instance=ExtResource( 1 )] +[node name="OutDoor" parent="." index="1" instance=ExtResource( 1 )] +position = Vector2( 88, 144 ) +connection = ExtResource( 4 ) +new_level_path = "res://Levels/Level_99.tscn" + +[node name="InDoor" parent="." index="2" instance=ExtResource( 1 )] position = Vector2( 8, 144 ) scale = Vector2( -1, 1 ) connection = ExtResource( 3 ) new_level_path = "res://Levels/Level_00.tscn" + +[node name="MissilesPowerup" parent="." index="3" instance=ExtResource( 5 )] +position = Vector2( 47, 146 ) diff --git a/metroidvania/Levels/Level_99.tscn b/metroidvania/Levels/Level_99.tscn new file mode 100644 index 0000000..d25cecb --- /dev/null +++ b/metroidvania/Levels/Level_99.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Levels/Level.tscn" type="PackedScene" id=1] +[ext_resource path="res://Scenes/Enemies/BossEnemy.tscn" type="PackedScene" id=2] +[ext_resource path="res://Levels/Door.tscn" type="PackedScene" id=3] +[ext_resource path="res://Levels/DoorConnections/01_99.tres" type="Resource" id=4] + +[node name="Level_99" instance=ExtResource( 1 )] + +[node name="Door" parent="." index="0" instance=ExtResource( 3 )] +position = Vector2( -8, 16 ) +scale = Vector2( -1, 1 ) +connection = ExtResource( 4 ) +new_level_path = "res://Levels/Level_01.tscn" + +[node name="BossEnemy" parent="." index="1" instance=ExtResource( 2 )] +position = Vector2( 162, 23 ) + +[node name="TileMap" parent="." index="2"] +tile_data = PoolIntArray( -589821, 0, 4, -589820, 0, 196609, -589819, 0, 196609, -589818, 0, 196609, -589817, 0, 196609, -589816, 0, 196609, -589815, 0, 196609, -589814, 0, 196609, -589813, 0, 196609, -589812, 0, 196609, -589811, 0, 196609, -589810, 0, 196609, -589809, 0, 196609, -589808, 0, 196609, -589807, 0, 7, -524286, 0, 4, -524285, 0, 196615, -524271, 0, 196612, -524270, 0, 7, -458750, 0, 65539, -458734, 0, 65539, -393215, 0, 4, -393214, 0, 196615, -393198, 0, 196612, -393197, 0, 7, -327679, 0, 65539, -327661, 0, 65539, -262144, 0, 4, -262143, 0, 196615, -262125, 0, 196612, -262124, 0, 7, -196608, 0, 65539, -196588, 0, 65539, -131072, 0, 65539, -131052, 0, 65539, -1, 0, 196608, -65536, 0, 196615, -65516, 0, 65539, 20, 0, 65539, 65556, 0, 65539, 196607, 0, 196608, 131072, 0, 7, 131091, 0, 4, 131092, 0, 196615, 196608, 0, 196612, 196609, 0, 7, 196626, 0, 4, 196627, 0, 196615, 262145, 0, 196612, 262146, 0, 196609, 262147, 0, 196609, 262148, 0, 196609, 262149, 0, 196609, 262150, 0, 196609, 262151, 0, 196609, 262152, 0, 196609, 262153, 0, 196609, 262154, 0, 196609, 262155, 0, 196609, 262156, 0, 196609, 262157, 0, 196609, 262158, 0, 196609, 262159, 0, 196609, 262160, 0, 196609, 262161, 0, 196609, 262162, 0, 196615 ) diff --git a/metroidvania/Scenes/Enemies/BossEnemy.tscn b/metroidvania/Scenes/Enemies/BossEnemy.tscn index 117d111..c1fc678 100644 --- a/metroidvania/Scenes/Enemies/BossEnemy.tscn +++ b/metroidvania/Scenes/Enemies/BossEnemy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://Scenes/Enemies/Enemy.tscn" type="PackedScene" id=1] [ext_resource path="res://Assets/Enemies/BossEnemyHead.png" type="Texture" id=2] @@ -9,6 +9,812 @@ [ext_resource path="res://Assets/Enemies/BossEnemyLeg2.png" type="Texture" id=7] [ext_resource path="res://Assets/Enemies/BossEnemyLeg3.png" type="Texture" id=8] +[sub_resource type="Animation" id=1] +resource_name = "Base" +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite/RightLowerLeg/MiddleSegment:position") +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": 0, +"values": [ Vector2( 12.1781, 2.94854 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite/RightLowerLeg/MiddleSegment:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 25.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite/RightLowerLeg:position") +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": [ Vector2( 9, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite/RightLowerLeg: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": [ 15.0 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 10 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 15.0 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment/EndPoint:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 3, 5 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment/EndPoint:rotation_degrees") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -6, 10 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -9, 3 ) ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment:rotation_degrees") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/12/type = "value" +tracks/12/path = NodePath("Sprite/LeftUpperLeg:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -12, -12 ) ] +} +tracks/13/type = "value" +tracks/13/path = NodePath("Sprite/LeftUpperLeg:rotation_degrees") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/14/type = "value" +tracks/14/path = NodePath("Sprite/RightUpeerLeg:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 12, -12 ) ] +} +tracks/15/type = "value" +tracks/15/path = NodePath("Sprite/RightUpeerLeg:rotation_degrees") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/16/type = "value" +tracks/16/path = NodePath("Sprite:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/17/type = "value" +tracks/17/path = NodePath("Sprite:rotation_degrees") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/18/type = "value" +tracks/18/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 10 ) ] +} +tracks/19/type = "value" +tracks/19/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 15.0 ] +} +tracks/20/type = "value" +tracks/20/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 12, 3 ) ] +} +tracks/21/type = "value" +tracks/21/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment:rotation_degrees") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/22/type = "value" +tracks/22/path = NodePath("Sprite/RightWing:rotation_degrees") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 180.0 ] +} +tracks/23/type = "value" +tracks/23/path = NodePath("Sprite/RightWing:position") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 50, -19 ) ] +} +tracks/24/type = "value" +tracks/24/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment/EndPoint:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -3, 5 ) ] +} +tracks/25/type = "value" +tracks/25/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment/EndPoint:rotation_degrees") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/26/type = "value" +tracks/26/path = NodePath("Sprite/LeftWing:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -8, -19 ) ] +} +tracks/27/type = "value" +tracks/27/path = NodePath("Sprite/LeftWing:rotation_degrees") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/28/type = "value" +tracks/28/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment/EndPoint:position") +tracks/28/interp = 1 +tracks/28/loop_wrap = true +tracks/28/imported = false +tracks/28/enabled = true +tracks/28/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 3, 5 ) ] +} +tracks/29/type = "value" +tracks/29/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment/EndPoint:rotation_degrees") +tracks/29/interp = 1 +tracks/29/loop_wrap = true +tracks/29/imported = false +tracks/29/enabled = true +tracks/29/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/30/type = "value" +tracks/30/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment:position") +tracks/30/interp = 1 +tracks/30/loop_wrap = true +tracks/30/imported = false +tracks/30/enabled = true +tracks/30/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -6, 10 ) ] +} +tracks/31/type = "value" +tracks/31/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/31/interp = 1 +tracks/31/loop_wrap = true +tracks/31/imported = false +tracks/31/enabled = true +tracks/31/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -20.0 ] +} +tracks/32/type = "value" +tracks/32/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment:position") +tracks/32/interp = 1 +tracks/32/loop_wrap = true +tracks/32/imported = false +tracks/32/enabled = true +tracks/32/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -12, 3 ) ] +} +tracks/33/type = "value" +tracks/33/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment:rotation_degrees") +tracks/33/interp = 1 +tracks/33/loop_wrap = true +tracks/33/imported = false +tracks/33/enabled = true +tracks/33/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -25.0 ] +} +tracks/34/type = "value" +tracks/34/path = NodePath("Sprite/LeftLowerLeg:position") +tracks/34/interp = 1 +tracks/34/loop_wrap = true +tracks/34/imported = false +tracks/34/enabled = true +tracks/34/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -9, 4.76837e-07 ) ] +} +tracks/35/type = "value" +tracks/35/path = NodePath("Sprite/LeftLowerLeg:rotation_degrees") +tracks/35/interp = 1 +tracks/35/loop_wrap = true +tracks/35/imported = false +tracks/35/enabled = true +tracks/35/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ -15.0 ] +} +tracks/36/type = "value" +tracks/36/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment/EndPoint:position") +tracks/36/interp = 1 +tracks/36/loop_wrap = true +tracks/36/imported = false +tracks/36/enabled = true +tracks/36/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -3, 5 ) ] +} +tracks/37/type = "value" +tracks/37/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment/EndPoint:rotation_degrees") +tracks/37/interp = 1 +tracks/37/loop_wrap = true +tracks/37/imported = false +tracks/37/enabled = true +tracks/37/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} + +[sub_resource type="Animation" id=2] +resource_name = "Fly" +length = 0.8 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite/LeftWing:rotation_degrees") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.200945 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 45.0, -75.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite/RightWing:rotation_degrees") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.200945 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -45.0, 75.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.1, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 1 ), Vector2( 0, -2 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite/Head:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.2, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, -7.5 ), Vector2( 0, -9 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.2, 0.799098 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 6, 10 ), Vector2( 6, 10 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0.2, 0.798708 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 15.0, 23.7776 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0.2, 0.798708 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 12, 3 ), Vector2( 12, 3 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Sprite/RightUpeerLeg/MiddleSegment:rotation_degrees") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0.2, 0.798708 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 48.9747 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Sprite/RightUpeerLeg:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0.2, 0.798708 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 12, -12 ), Vector2( 12, -12 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Sprite/RightUpeerLeg:rotation_degrees") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0.2, 0.798708 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, -37.2612 ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -6, 10 ), Vector2( -6, 10 ), Vector2( -6, 10 ) ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -22.0, -22.0 ] +} +tracks/12/type = "value" +tracks/12/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -9, 3 ), Vector2( -9, 3 ), Vector2( -9, 3 ) ] +} +tracks/13/type = "value" +tracks/13/path = NodePath("Sprite/LeftUpperLeg/MiddleSegment:rotation_degrees") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -45.7629, -55.584 ] +} +tracks/14/type = "value" +tracks/14/path = NodePath("Sprite/LeftUpperLeg:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -12, -12 ), Vector2( -12, -12 ), Vector2( -12, -12 ) ] +} +tracks/15/type = "value" +tracks/15/path = NodePath("Sprite/LeftUpperLeg:rotation_degrees") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/keys = { +"times": PoolRealArray( 0.2, 0.8, 0.800658 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 45.025, 52.2154 ] +} +tracks/16/type = "value" +tracks/16/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment:position") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 6, 10 ), Vector2( 6, 10 ) ] +} +tracks/17/type = "value" +tracks/17/path = NodePath("Sprite/RightLowerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -24.9, 26.0 ] +} +tracks/18/type = "value" +tracks/18/path = NodePath("Sprite/RightLowerLeg/MiddleSegment:position") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 12.1781, 2.94854 ), Vector2( 12.1781, 2.94854 ) ] +} +tracks/19/type = "value" +tracks/19/path = NodePath("Sprite/RightLowerLeg/MiddleSegment:rotation_degrees") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -7.88142, 70.0456 ] +} +tracks/20/type = "value" +tracks/20/path = NodePath("Sprite/RightLowerLeg:position") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 9, 0 ), Vector2( 9, 0 ) ] +} +tracks/21/type = "value" +tracks/21/path = NodePath("Sprite/RightLowerLeg:rotation_degrees") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/keys = { +"times": PoolRealArray( 0.200945, 0.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 48.7326, -4.4743 ] +} +tracks/22/type = "value" +tracks/22/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment:position") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( -6, 10 ), Vector2( -6, 10 ) ] +} +tracks/23/type = "value" +tracks/23/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment/EndSegment:rotation_degrees") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 28.7639, 8.1 ] +} +tracks/24/type = "value" +tracks/24/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( -12, 3 ), Vector2( -12, 3 ) ] +} +tracks/25/type = "value" +tracks/25/path = NodePath("Sprite/LeftLowerLeg/MiddleSegment:rotation_degrees") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 5.39105, -77.5026 ] +} +tracks/26/type = "value" +tracks/26/path = NodePath("Sprite/LeftLowerLeg:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( -9, 4.76837e-07 ), Vector2( -9, 4.76837e-07 ) ] +} +tracks/27/type = "value" +tracks/27/path = NodePath("Sprite/LeftLowerLeg:rotation_degrees") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/keys = { +"times": PoolRealArray( 0.200945, 0.799878 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -49.701, 6.15604 ] +} + +[sub_resource type="CircleShape2D" id=3] +radius = 18.0 + +[sub_resource type="RayShape2D" id=4] +length = 16.0 + [node name="BossEnemy" instance=ExtResource( 1 )] [node name="OnionLayer" type="Sprite" parent="." index="0"] @@ -20,25 +826,28 @@ __meta__ = { } [node name="Sprite" parent="." index="1"] +position = Vector2( 0, 0.999149 ) texture = ExtResource( 3 ) [node name="LeftWing" type="Sprite" parent="Sprite" index="0"] show_behind_parent = true position = Vector2( -8, -19 ) +rotation = -0.179467 texture = ExtResource( 4 ) offset = Vector2( -21, -5 ) [node name="RightWing" type="Sprite" parent="Sprite" index="1"] show_behind_parent = true -position = Vector2( 50, -19 ) -rotation = 3.14159 -scale = Vector2( 1, -1 ) +position = Vector2( 10, -20 ) +rotation = 0.179467 texture = ExtResource( 4 ) offset = Vector2( 21, -5 ) +flip_h = true [node name="LeftUpperLeg" type="Sprite" parent="Sprite" index="2"] show_behind_parent = true position = Vector2( -12, -12 ) +rotation = 0.415911 texture = ExtResource( 6 ) offset = Vector2( -4, 1 ) __meta__ = { @@ -47,6 +856,7 @@ __meta__ = { [node name="MiddleSegment" type="Sprite" parent="Sprite/LeftUpperLeg" index="0"] position = Vector2( -9, 3 ) +rotation = -0.422727 texture = ExtResource( 7 ) offset = Vector2( -2, 4 ) __meta__ = { @@ -55,6 +865,7 @@ __meta__ = { [node name="EndSegment" type="Sprite" parent="Sprite/LeftUpperLeg/MiddleSegment" index="0"] position = Vector2( -6, 10 ) +rotation = -0.203221 texture = ExtResource( 8 ) offset = Vector2( 1, 2 ) __meta__ = { @@ -70,7 +881,7 @@ __meta__ = { [node name="LeftLowerLeg" type="Sprite" parent="Sprite" index="3"] show_behind_parent = true position = Vector2( -9, 4.76837e-07 ) -rotation = -0.261799 +rotation = -0.349632 texture = ExtResource( 6 ) offset = Vector2( -4, 1 ) __meta__ = { @@ -79,7 +890,7 @@ __meta__ = { [node name="MiddleSegment" type="Sprite" parent="Sprite/LeftLowerLeg" index="0"] position = Vector2( -12, 3 ) -rotation = -0.436332 +rotation = -0.67436 texture = ExtResource( 7 ) offset = Vector2( -2, 4 ) __meta__ = { @@ -88,7 +899,7 @@ __meta__ = { [node name="EndSegment" type="Sprite" parent="Sprite/LeftLowerLeg/MiddleSegment" index="0"] position = Vector2( -6, 10 ) -rotation = -0.349066 +rotation = 0.310464 texture = ExtResource( 8 ) offset = Vector2( 1, 2 ) __meta__ = { @@ -104,6 +915,7 @@ __meta__ = { [node name="RightUpeerLeg" type="Sprite" parent="Sprite" index="4"] show_behind_parent = true position = Vector2( 12, -12 ) +rotation = -0.341984 texture = ExtResource( 6 ) offset = Vector2( 5, 1 ) flip_h = true @@ -113,6 +925,7 @@ __meta__ = { [node name="MiddleSegment" type="Sprite" parent="Sprite/RightUpeerLeg" index="0"] position = Vector2( 12, 3 ) +rotation = 0.449491 texture = ExtResource( 7 ) offset = Vector2( 3, 4 ) flip_h = true @@ -122,7 +935,7 @@ __meta__ = { [node name="EndSegment" type="Sprite" parent="Sprite/RightUpeerLeg/MiddleSegment" index="0"] position = Vector2( 6, 10 ) -rotation = 0.261799 +rotation = 0.342361 texture = ExtResource( 8 ) offset = Vector2( -1, 2 ) flip_h = true @@ -139,7 +952,7 @@ __meta__ = { [node name="RightLowerLeg" type="Sprite" parent="Sprite" index="5"] show_behind_parent = true position = Vector2( 9, 0 ) -rotation = 0.261799 +rotation = 0.356999 texture = ExtResource( 6 ) offset = Vector2( 5, 1 ) flip_h = true @@ -149,7 +962,7 @@ __meta__ = { [node name="MiddleSegment" type="Sprite" parent="Sprite/RightLowerLeg" index="0"] position = Vector2( 12.1781, 2.94854 ) -rotation = 0.436332 +rotation = 0.585292 texture = ExtResource( 7 ) offset = Vector2( 3, 4 ) flip_h = true @@ -159,7 +972,7 @@ __meta__ = { [node name="EndSegment" type="Sprite" parent="Sprite/RightLowerLeg/MiddleSegment" index="0"] position = Vector2( 6, 10 ) -rotation = 0.261799 +rotation = 0.0375597 texture = ExtResource( 8 ) offset = Vector2( -1, 2 ) flip_h = true @@ -174,5 +987,23 @@ __meta__ = { } [node name="Head" type="Sprite" parent="Sprite" index="6"] -position = Vector2( 0, -7 ) +position = Vector2( 0, -7.76463 ) texture = ExtResource( 2 ) + +[node name="AnimationPlayer" parent="." index="3"] +autoplay = "Fly" +anims/Base = SubResource( 1 ) +anims/Fly = SubResource( 2 ) + +[node name="Collider" parent="Hurtbox" index="0"] +position = Vector2( 0, -7 ) +shape = SubResource( 3 ) + +[node name="Collider" parent="Hitbox" index="0"] +shape = SubResource( 4 ) + +[node name="EnemyStats" parent="." index="6"] +max_health = 100 + +[editable path="Hurtbox"] +[editable path="Hitbox"]