initial work on proper famira sprites

This commit is contained in:
Haze Weathers 2024-06-16 01:03:50 -04:00
parent 342e925f6b
commit cd7653fdbb
14 changed files with 424 additions and 47 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=55 format=2]
[gd_scene load_steps=58 format=2]
[ext_resource path="res://objects/enemy/boss/famira.gd" type="Script" id=1]
[ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=2]
@ -25,9 +25,12 @@
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_back.png" type="Texture" id=23]
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_lower.png" type="Texture" id=24]
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_upper.png" type="Texture" id=25]
[ext_resource path="res://graphics/enemy/boss/fami_parts/eye.png" type="Texture" id=26]
[ext_resource path="res://graphics/enemy/boss/fami_parts/mouth_tendril.png" type="Texture" id=26]
[ext_resource path="res://audio/sounds/fami_grumble.ogg" type="AudioStream" id=27]
[ext_resource path="res://graphics/enemy/boss/famira_fire.png" type="Texture" id=28]
[ext_resource path="res://graphics/enemy/boss/fami_parts/leg_lower.png" type="Texture" id=29]
[ext_resource path="res://graphics/enemy/boss/fami_parts/hand.png" type="Texture" id=30]
[ext_resource path="res://graphics/enemy/boss/fami_parts/arm_segment.png" type="Texture" id=31]
[sub_resource type="RectangleShape2D" id=11]
extents = Vector2( 28, 64 )
@ -1760,7 +1763,7 @@ shader = ExtResource( 2 )
shader_param/pixel_scale = 1.0
[sub_resource type="Curve" id=8]
_data = [ Vector2( 0, 0.5 ), 0.0, 0.890696, 0, 0, Vector2( 0.79703, 0.718182 ), 0.0, 0.0, 0, 0, Vector2( 0.985149, 0 ), -13.2988, 0.0, 0, 0 ]
_data = [ Vector2( 0, 0.5 ), 0.0, 0.890696, 0, 0, Vector2( 0.814474, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), -13.2988, 0.0, 0, 0 ]
[sub_resource type="Gradient" id=9]
offsets = PoolRealArray( 0, 0.163743, 0.432749, 0.596491, 0.853801, 1 )
@ -1850,7 +1853,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 22.2642 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -1862,7 +1865,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 34.9602 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -2092,6 +2095,30 @@ tracks/26/keys = {
"update": 0,
"values": [ Vector2( 24, 0 ) ]
}
tracks/27/type = "value"
tracks/27/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -35.4461 ]
}
tracks/28/type = "value"
tracks/28/path = NodePath("Hip/LegBack/LegBackLower:rotation_degrees")
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": [ -40.649 ]
}
[sub_resource type="Animation" id=21]
resource_name = "chasing"
@ -2339,7 +2366,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 32.3323 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -2351,7 +2378,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 51.3821 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -2509,6 +2536,30 @@ tracks/20/keys = {
"update": 0,
"values": [ Vector2( 24, 0 ), Vector2( 24, 0 ), Vector2( 48, 0 ), Vector2( 48, 0 ), Vector2( 16, 0 ), Vector2( 64, 0 ), Vector2( 24, 0 ), Vector2( 16, 0 ) ]
}
tracks/21/type = "value"
tracks/21/path = NodePath("Hip/LegBack/LegBackLower: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": [ -63.39 ]
}
tracks/22/type = "value"
tracks/22/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -63.3081 ]
}
[sub_resource type="Animation" id=23]
resource_name = "grow"
@ -2595,7 +2646,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 0.727525 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -2607,7 +2658,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 26.7185 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -2741,6 +2792,30 @@ tracks/18/keys = {
"update": 0,
"values": [ Vector2( 1e-05, 1e-05 ), Vector2( 1, 1 ) ]
}
tracks/19/type = "value"
tracks/19/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -9.94518 ]
}
tracks/20/type = "value"
tracks/20/path = NodePath("Hip/LegBack/LegBackLower:rotation_degrees")
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": [ -32.355 ]
}
[sub_resource type="Animation" id=24]
resource_name = "punching"
@ -2827,7 +2902,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 22.2642 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -2839,7 +2914,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 34.9602 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -2918,6 +2993,30 @@ tracks/13/keys = {
"update": 1,
"values": [ false ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("Hip/LegFront/LegFrontLower:rotation_degrees")
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": [ -35.4461 ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("Hip/LegBack/LegBackLower: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": [ -40.649 ]
}
[sub_resource type="Animation" id=25]
resource_name = "pushed"
@ -3005,7 +3104,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -37.6956 ]
"values": [ -12.995 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -3017,7 +3116,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ 32.9738 ]
"values": [ 45.9935 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -3091,6 +3190,30 @@ tracks/13/keys = {
"update": 1,
"values": [ false ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("Hip/LegBack/LegBackLower:rotation_degrees")
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": [ -75.1433 ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -47.8909 ]
}
[sub_resource type="Animation" id=26]
resource_name = "roar"
@ -3178,7 +3301,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 22.2642 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -3190,7 +3313,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 34.9602 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -3280,6 +3403,30 @@ tracks/14/keys = {
"method": "_roar"
} ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -35.4461 ]
}
tracks/16/type = "value"
tracks/16/path = NodePath("Hip/LegBack/LegBackLower:rotation_degrees")
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": [ -40.649 ]
}
[sub_resource type="Animation" id=27]
resource_name = "shooting"
@ -3366,7 +3513,7 @@ tracks/6/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 22.2642 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack:rotation_degrees")
@ -3378,7 +3525,7 @@ tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ -0.657538 ]
"values": [ 34.9602 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck:position")
@ -3390,7 +3537,7 @@ tracks/8/keys = {
"times": PoolRealArray( 0, 0.4, 2.7, 3 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( -25.8929, -8.09683 ), Vector2( -25.8929, -8.09683 ), Vector2( -25.8929, -8.09683 ), Vector2( -25.8929, -8.09683 ) ]
"values": [ Vector2( -25.8929, -8.09683 ), Vector2( -31.8378, -8.41777 ), Vector2( -31.8378, -8.41777 ), Vector2( -25.8929, -8.09683 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("Hip/Body/BackArm/HandBack:rotation_degrees")
@ -3466,6 +3613,30 @@ tracks/14/keys = {
"update": 1,
"values": [ false, true, false ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("Hip/LegFront/LegFrontLower: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": [ -35.4461 ]
}
tracks/16/type = "value"
tracks/16/path = NodePath("Hip/LegBack/LegBackLower:rotation_degrees")
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": [ -40.649 ]
}
[sub_resource type="CapsuleShape2D" id=13]
radius = 24.0
@ -3486,6 +3657,7 @@ height = 55.8645
[node name="Famira" type="Node2D"]
script = ExtResource( 1 )
__meta__ = {
"_edit_horizontal_guides_": [ -211.0 ],
"_edit_vertical_guides_": [ ]
}
@ -3775,17 +3947,23 @@ position = Vector2( 8, 39 )
[node name="LegBack" type="Node2D" parent="Graphics/Hip"]
light_mask = 33
use_parent_material = true
position = Vector2( -9.49483, 5.9499 )
rotation = -0.0114762
scale = Vector2( 2.33905, 2.82204 )
position = Vector2( -15, -9 )
rotation = 0.61017
[node name="LegSprite" type="Sprite" parent="Graphics/Hip/LegBack"]
light_mask = 33
use_parent_material = true
position = Vector2( -4.16465, -9.34782 )
scale = Vector2( 0.427524, 0.354354 )
texture = ExtResource( 21 )
offset = Vector2( -6.66188, -13.4386 )
[node name="LegBackLower" type="Node2D" parent="Graphics/Hip/LegBack"]
use_parent_material = true
position = Vector2( 0.540121, 33.0107 )
rotation = -0.709459
[node name="LegBackSprite" type="Sprite" parent="Graphics/Hip/LegBack/LegBackLower"]
use_parent_material = true
z_index = -1
texture = ExtResource( 29 )
[node name="Body" type="Node2D" parent="Graphics/Hip"]
light_mask = 33
@ -3800,6 +3978,7 @@ use_parent_material = true
position = Vector2( -15.5869, -11.0406 )
scale = Vector2( 0.427524, 0.428792 )
texture = ExtResource( 22 )
offset = Vector2( 32, 0 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="Graphics/Hip/Body"]
light_mask = 33
@ -3811,13 +3990,13 @@ update_scale = false
[node name="BackArm" type="Node2D" parent="Graphics/Hip/Body"]
light_mask = 33
use_parent_material = true
position = Vector2( -15.0905, 7.09585 )
position = Vector2( -20.2307, 6.609 )
rotation = -1.55929
scale = Vector2( 0.427524, 0.428792 )
z_index = -2
script = ExtResource( 12 )
texture = ExtResource( 13 )
segments = 4
texture = ExtResource( 31 )
segments = 6
target = NodePath("HandBack")
[node name="HandBack" type="Sprite" parent="Graphics/Hip/Body/BackArm"]
@ -3826,10 +4005,10 @@ material = SubResource( 1 )
use_parent_material = true
position = Vector2( -34, 6 )
rotation = -1.7931
texture = ExtResource( 14 )
texture = ExtResource( 30 )
offset = Vector2( 0, -6 )
region_enabled = true
region_rect = Rect2( 0, 0, 16, 12 )
region_rect = Rect2( 0, 0, 16, 16 )
[node name="BackArmBorder" type="Node2D" parent="Graphics/Hip/Body/BackArm"]
show_behind_parent = true
@ -3837,19 +4016,19 @@ light_mask = 33
use_parent_material = true
script = ExtResource( 12 )
texture = ExtResource( 16 )
segments = 4
segments = 6
target = NodePath("../HandBack")
[node name="FrontArm" type="Node2D" parent="Graphics/Hip/Body"]
light_mask = 33
use_parent_material = true
position = Vector2( -15.3626, -6.5891 )
position = Vector2( -20.4922, -7.93076 )
rotation = -1.55929
scale = Vector2( 0.427524, 0.428792 )
z_index = 2
script = ExtResource( 12 )
texture = ExtResource( 13 )
segments = 4
texture = ExtResource( 31 )
segments = 6
target = NodePath("HandFront")
[node name="HandFront" type="Sprite" parent="Graphics/Hip/Body/FrontArm"]
@ -3858,10 +4037,10 @@ material = SubResource( 1 )
use_parent_material = true
position = Vector2( -31.9996, 22.0018 )
rotation = -2.09213
texture = ExtResource( 14 )
texture = ExtResource( 30 )
offset = Vector2( 0, -6 )
region_enabled = true
region_rect = Rect2( 0, 0, 16, 12 )
region_rect = Rect2( 0, 0, 16, 16 )
[node name="FrontArmBorder" type="Node2D" parent="Graphics/Hip/Body/FrontArm"]
show_behind_parent = true
@ -3869,7 +4048,7 @@ light_mask = 33
use_parent_material = true
script = ExtResource( 12 )
texture = ExtResource( 16 )
segments = 4
segments = 6
target = NodePath("../HandFront")
[node name="Neck" type="Node2D" parent="Graphics/Hip/Body"]
@ -3884,8 +4063,9 @@ z_index = 1
[node name="NeckSprite" type="Sprite" parent="Graphics/Hip/Body/Neck"]
light_mask = 33
use_parent_material = true
position = Vector2( -12.839, -4.09958 )
rotation = 0.898541
scale = Vector2( 0.308458, 0.311881 )
z_index = -2
texture = ExtResource( 23 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="Graphics/Hip/Body/Neck"]
@ -3949,6 +4129,18 @@ rotation = 1.57678
remote_path = NodePath("../../../../../../Hitbox/LowerJaw")
update_scale = false
[node name="TendrilEnd1" type="Node2D" parent="Graphics/Hip/Body/Neck/Headlower"]
position = Vector2( -30.5343, 9.51069 )
[node name="TendrilEnd2" type="Node2D" parent="Graphics/Hip/Body/Neck/Headlower"]
position = Vector2( -25.9981, 10.4675 )
[node name="TendrilEnd3" type="Node2D" parent="Graphics/Hip/Body/Neck/Headlower"]
position = Vector2( -22.5259, 9.9095 )
[node name="TendrilEnd4" type="Node2D" parent="Graphics/Hip/Body/Neck/Headlower"]
position = Vector2( -17.1706, 10.3132 )
[node name="Headupper" type="Node2D" parent="Graphics/Hip/Body/Neck"]
light_mask = 33
use_parent_material = true
@ -3963,6 +4155,8 @@ use_parent_material = true
position = Vector2( -21.2833, 1.46694 )
scale = Vector2( 0.427229, 0.625891 )
texture = ExtResource( 25 )
centered = false
offset = Vector2( -45, -72 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="Graphics/Hip/Body/Neck/Headupper"]
light_mask = 33
@ -3971,28 +4165,71 @@ rotation = -1.57994
remote_path = NodePath("../../../../../../Hitbox/UpperJaw")
update_scale = false
[node name="Eye" type="Sprite" parent="Graphics/Hip/Body/Neck/Headupper"]
[node name="MouthTendril1" type="Node2D" parent="Graphics/Hip/Body/Neck/Headupper"]
light_mask = 33
use_parent_material = true
position = Vector2( -2.00037, 3.20502 )
rotation = 0.0167827
scale = Vector2( 0.427229, 0.625891 )
position = Vector2( -31.9772, -4.35265 )
scale = Vector2( 0.214, 0.626 )
z_index = -1
script = ExtResource( 12 )
texture = ExtResource( 26 )
segments = 10
target = NodePath("../../Headlower/TendrilEnd1")
[node name="MouthTendril2" type="Node2D" parent="Graphics/Hip/Body/Neck/Headupper"]
light_mask = 33
use_parent_material = true
position = Vector2( -28.5394, -4.15707 )
scale = Vector2( 0.214, 0.626 )
z_index = -1
script = ExtResource( 12 )
texture = ExtResource( 26 )
segments = 10
target = NodePath("../../Headlower/TendrilEnd2")
[node name="MouthTendril3" type="Node2D" parent="Graphics/Hip/Body/Neck/Headupper"]
light_mask = 33
use_parent_material = true
position = Vector2( -24.8826, -4.80403 )
scale = Vector2( 0.214, 0.626 )
z_index = -1
script = ExtResource( 12 )
texture = ExtResource( 26 )
segments = 10
target = NodePath("../../Headlower/TendrilEnd3")
[node name="MouthTendril4" type="Node2D" parent="Graphics/Hip/Body/Neck/Headupper"]
light_mask = 33
use_parent_material = true
position = Vector2( -20.0951, -4.9203 )
scale = Vector2( 0.214, 0.626 )
z_index = -1
script = ExtResource( 12 )
texture = ExtResource( 26 )
segments = 10
target = NodePath("../../Headlower/TendrilEnd4")
[node name="LegFront" type="Node2D" parent="Graphics/Hip"]
light_mask = 33
use_parent_material = true
position = Vector2( 12.9916, 6.2433 )
rotation = -0.0114762
scale = Vector2( 2.33905, 2.82204 )
position = Vector2( 12, -8 )
rotation = 0.388583
z_index = 1
[node name="LegSprite" type="Sprite" parent="Graphics/Hip/LegFront"]
light_mask = 33
use_parent_material = true
position = Vector2( -4.16465, -9.34782 )
scale = Vector2( 0.427524, 0.354354 )
texture = ExtResource( 21 )
offset = Vector2( -6.66188, -13.4386 )
[node name="LegFrontLower" type="Node2D" parent="Graphics/Hip/LegFront"]
use_parent_material = true
position = Vector2( -0.355755, 30.998 )
rotation = -0.618652
[node name="Sprite" type="Sprite" parent="Graphics/Hip/LegFront/LegFrontLower"]
use_parent_material = true
z_index = -1
texture = ExtResource( 29 )
[node name="Hitbox" type="Area2D" parent="."]
position = Vector2( 8, -56 )