tie fami cutscene into boss3 level

This commit is contained in:
Haze Weathers 2024-02-26 18:34:58 -05:00
parent 7cf99cb510
commit 87973f77e0
12 changed files with 568 additions and 60 deletions

Binary file not shown.

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=33 format=2]
[gd_scene load_steps=34 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]
@ -15,15 +15,12 @@
[ext_resource path="res://graphics/enemy/antlion_body.png" type="Texture" id=13]
[ext_resource path="res://graphics/enemy/tentacle.png" type="Texture" id=14]
[ext_resource path="res://graphics/particles/dust.png" type="Texture" id=15]
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=16]
[ext_resource path="res://graphics/enemy/antlion_body_border.png" type="Texture" id=16]
[ext_resource path="res://objects/enemy/boss/fami_transform.material" type="Material" id=17]
[sub_resource type="RectangleShape2D" id=11]
extents = Vector2( 28, 64 )
[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 2 )
shader_param/pixel_scale = 1.0
[sub_resource type="Animation" id=2]
length = 0.001
tracks/0/type = "value"
@ -168,7 +165,7 @@ tracks/11/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 8, -57 ) ]
"values": [ Vector2( 8, 39 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -218,6 +215,66 @@ tracks/15/keys = {
"update": 0,
"values": [ false ]
}
tracks/16/type = "value"
tracks/16/path = NodePath("Hip:scale")
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( 1, 1 ) ]
}
tracks/17/type = "value"
tracks/17/path = NodePath("Hip: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(".:material:shader_param/background_color")
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": [ Color( 0.396078, 1, 1, 0 ) ]
}
tracks/19/type = "value"
tracks/19/path = NodePath(".:material:shader_param/arc_color")
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": [ Color( 0.345098, 0.74902, 0.878431, 0 ) ]
}
tracks/20/type = "value"
tracks/20/path = NodePath(".:scale")
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( 1, 1 ) ]
}
[sub_resource type="Animation" id=4]
resource_name = "chasing"
@ -365,7 +422,7 @@ tracks/11/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 8, -57 ) ]
"values": [ Vector2( 8, 39 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -526,7 +583,7 @@ tracks/11/keys = {
"times": PoolRealArray( 0, 0.1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector2( 4, -57 ), Vector2( 12, -57 ) ]
"values": [ Vector2( 4, 39 ), Vector2( 12, 39 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -541,6 +598,252 @@ tracks/12/keys = {
"values": [ false ]
}
[sub_resource type="Animation" id=17]
resource_name = "grow"
length = 3.0
tracks/0/type = "value"
tracks/0/path = NodePath("Hip/Body:rotation_degrees")
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": [ 89.3425 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Hip/Body/BackArm/HandBack:position")
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": [ Vector2( -34, 6 ) ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Hip/Body/FrontArm/HandFront: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( -31.9996, 22.0018 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Hip/Body/Neck: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": [ -137.823 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("Hip/Body/Neck/Headlower:rotation_degrees")
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": [ 55.2621 ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("Hip/Body/Neck/Headupper: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": [ 45.9167 ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("Hip/LegFront:rotation_degrees")
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": [ -0.657538 ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Hip/LegBack: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.657538 ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("Hip/Body/Neck: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( -25.8929, -8.09683 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("Hip/Body/BackArm/HandBack: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": [ -102.737 ]
}
tracks/10/type = "value"
tracks/10/path = NodePath("Hip/Body/FrontArm/HandFront:rotation_degrees")
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": [ -119.87 ]
}
tracks/11/type = "value"
tracks/11/path = NodePath("Hip:position")
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": [ Vector2( 8, 39 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
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": 1,
"values": [ false ]
}
tracks/13/type = "value"
tracks/13/path = NodePath("Hip/Body/Neck/BreathParticles:initial_velocity")
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": [ 230.0 ]
}
tracks/14/type = "value"
tracks/14/path = NodePath("Hip/Body/Neck/BreathParticles:lifetime")
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": [ 2.0 ]
}
tracks/15/type = "value"
tracks/15/path = NodePath("..:hurting")
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": [ false ]
}
tracks/16/type = "value"
tracks/16/path = NodePath(".:material:shader_param/background_color")
tracks/16/interp = 1
tracks/16/loop_wrap = true
tracks/16/imported = false
tracks/16/enabled = true
tracks/16/keys = {
"times": PoolRealArray( 0, 2, 3 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.396078, 1, 1, 1 ), Color( 0.396078, 1, 1, 1 ), Color( 0.396078, 1, 1, 0 ) ]
}
tracks/17/type = "value"
tracks/17/path = NodePath(".:material:shader_param/arc_color")
tracks/17/interp = 1
tracks/17/loop_wrap = true
tracks/17/imported = false
tracks/17/enabled = true
tracks/17/keys = {
"times": PoolRealArray( 0, 2, 3 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.345098, 0.74902, 0.878431, 1 ), Color( 0.345098, 0.74902, 0.878431, 1 ), Color( 0.345098, 0.74902, 0.878431, 0 ) ]
}
tracks/18/type = "value"
tracks/18/path = NodePath(".:scale")
tracks/18/interp = 2
tracks/18/loop_wrap = true
tracks/18/imported = false
tracks/18/enabled = true
tracks/18/keys = {
"times": PoolRealArray( 0, 2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector2( 1e-05, 1e-05 ), Vector2( 1, 1 ) ]
}
tracks/19/type = "method"
tracks/19/path = NodePath("../StateChart")
tracks/19/interp = 1
tracks/19/loop_wrap = true
tracks/19/imported = false
tracks/19/enabled = true
tracks/19/keys = {
"times": PoolRealArray( 2.9 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "transformed" ],
"method": "send_event"
} ]
}
[sub_resource type="Animation" id=5]
resource_name = "punching"
loop = true
@ -703,7 +1006,7 @@ tracks/12/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 8, -57 ) ]
"values": [ Vector2( 8, 39 ) ]
}
tracks/13/type = "value"
tracks/13/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -864,7 +1167,7 @@ tracks/11/keys = {
"times": PoolRealArray( 0, 0.1 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector2( 12, -43 ), Vector2( 4, -43 ) ]
"values": [ Vector2( 12, 53 ), Vector2( 4, 53 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -1051,7 +1354,7 @@ tracks/12/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 8, -57 ) ]
"values": [ Vector2( 8, 39 ) ]
}
tracks/13/type = "value"
tracks/13/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -1225,7 +1528,7 @@ tracks/11/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 8, -57 ) ]
"values": [ Vector2( 8, 39 ) ]
}
tracks/12/type = "value"
tracks/12/path = NodePath("Hip/Body/Neck/BreathParticles:emitting")
@ -1266,10 +1569,9 @@ tracks/14/keys = {
"values": [ false, true, false ]
}
[sub_resource type="ShaderMaterial" id=10]
shader = ExtResource( 16 )
shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = false
[sub_resource type="ShaderMaterial" id=1]
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.814474, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), -13.2988, 0.0, 0, 0 ]
@ -1309,20 +1611,23 @@ position = Vector2( 12, -64 )
shape = SubResource( 11 )
[node name="ChickenMan" type="Node2D" parent="."]
material = SubResource( 1 )
material = ExtResource( 17 )
position = Vector2( 0, -96 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="ChickenMan"]
unique_name_in_owner = true
anims/RESET = SubResource( 2 )
anims/chasing = SubResource( 4 )
anims/die = SubResource( 12 )
anims/grow = SubResource( 17 )
anims/punching = SubResource( 5 )
anims/pushed = SubResource( 6 )
anims/roar = SubResource( 3 )
anims/shooting = SubResource( 7 )
[node name="Hip" type="Node2D" parent="ChickenMan"]
position = Vector2( 8, -57 )
use_parent_material = true
position = Vector2( 8, 39 )
[node name="LegBack" type="Sprite" parent="ChickenMan/Hip"]
use_parent_material = true
@ -1359,6 +1664,7 @@ segments = 4
target = NodePath("HandBack")
[node name="HandBack" type="Sprite" parent="ChickenMan/Hip/Body/BackArm"]
material = SubResource( 1 )
use_parent_material = true
position = Vector2( -34, 6 )
rotation = -1.7931
@ -1369,9 +1675,9 @@ region_rect = Rect2( 0, 0, 16, 12 )
[node name="BackArmBorder" type="Node2D" parent="ChickenMan/Hip/Body/BackArm"]
show_behind_parent = true
material = SubResource( 10 )
use_parent_material = true
script = ExtResource( 12 )
texture = ExtResource( 13 )
texture = ExtResource( 16 )
segments = 4
target = NodePath("../HandBack")
@ -1387,6 +1693,7 @@ segments = 4
target = NodePath("HandFront")
[node name="HandFront" type="Sprite" parent="ChickenMan/Hip/Body/FrontArm"]
material = SubResource( 1 )
use_parent_material = true
position = Vector2( -31.9996, 22.0018 )
rotation = -2.09213
@ -1397,9 +1704,9 @@ region_rect = Rect2( 0, 0, 16, 12 )
[node name="FrontArmBorder" type="Node2D" parent="ChickenMan/Hip/Body/FrontArm"]
show_behind_parent = true
material = SubResource( 10 )
use_parent_material = true
script = ExtResource( 12 )
texture = ExtResource( 13 )
texture = ExtResource( 16 )
segments = 4
target = NodePath("../HandFront")
@ -1416,7 +1723,6 @@ offset = Vector2( -12.5338, -3.19571 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="ChickenMan/Hip/Body/Neck"]
position = Vector2( 7.47667, -8.4856 )
rotation = -2.96856
scale = Vector2( 1, 1 )
remote_path = NodePath("../../../../../Hitbox/Brain")
update_scale = false
@ -1463,7 +1769,6 @@ offset = Vector2( -23.6288, 1.97347 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="ChickenMan/Hip/Body/Neck/Headlower"]
position = Vector2( -15.6932, 6.83872 )
rotation = -4.70641
scale = Vector2( 1, 1 )
remote_path = NodePath("../../../../../../Hitbox/LowerJaw")
update_scale = false
@ -1479,7 +1784,6 @@ offset = Vector2( -21.4816, 1.20875 )
[node name="HitboxTransform" type="RemoteTransform2D" parent="ChickenMan/Hip/Body/Neck/Headupper"]
position = Vector2( -15.711, -8.80663 )
rotation = -1.57994
scale = Vector2( 1, 1 )
remote_path = NodePath("../../../../../../Hitbox/UpperJaw")
update_scale = false
@ -1504,8 +1808,8 @@ collision_mask = 128
monitorable = false
[node name="Body" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( 0.0046196, -23.9291 )
rotation = -0.0114733
position = Vector2( 0.00461769, -23.9291 )
rotation = -0.0114693
shape = SubResource( 13 )
[node name="Brain" type="CollisionShape2D" parent="Hitbox"]
@ -1516,7 +1820,7 @@ shape = SubResource( 14 )
[node name="LowerJaw" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( -21.3082, -76.1166 )
rotation = 1.66396
rotation = 1.66395
z_index = 100
shape = SubResource( 15 )
@ -1531,7 +1835,7 @@ script = ExtResource( 3 )
[node name="Root" type="Node" parent="StateChart"]
script = ExtResource( 4 )
initial_state = NodePath("Roar")
initial_state = NodePath("Growing")
[node name="On StartPush" type="Node" parent="StateChart/Root"]
script = ExtResource( 6 )
@ -1548,6 +1852,14 @@ script = ExtResource( 6 )
to = NodePath("../Dying")
event = "die"
[node name="Growing" type="Node" parent="StateChart/Root"]
script = ExtResource( 5 )
[node name="On Transformed" type="Node" parent="StateChart/Root/Growing"]
script = ExtResource( 6 )
to = NodePath("../../Roar")
event = "transformed"
[node name="Roar" type="Node" parent="StateChart/Root"]
script = ExtResource( 5 )

View file

@ -5,7 +5,7 @@ signal died()
signal health_changed(amount)
enum State {DEAD, STAND, FORWARD, BACK, DUCK, BEAM}
enum State {DEAD, STAND, FORWARD, BACK, DUCK, BEAM, INACTIVE}
const Bullet = preload("res://objects/enemy/2083_bullet.tscn")
const SmallExplosion = preload("res://objects/enemy/boss/2600_small_explosion.tscn")