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

View file

@ -0,0 +1,3 @@
extends Node2D
signal cutscene_finished

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=2]
[gd_scene load_steps=42 format=2]
[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=1]
[ext_resource path="res://graphics/player/palettes/default.png" type="Texture" id=2]
@ -9,7 +9,7 @@
[ext_resource path="res://tilesets/t_station.tres" type="TileSet" id=7]
[ext_resource path="res://tilesets/t_laboratory.tres" type="TileSet" id=8]
[ext_resource path="res://graphics/npc/fami_human.png" type="Texture" id=9]
[ext_resource path="res://graphics/backgrounds/fami_rooftop.png" type="Texture" id=10]
[ext_resource path="res://cutscenes/fami_cutscene.gd" type="Script" id=10]
[ext_resource path="res://audio/sounds/fami_voice.ogg" type="AudioStream" id=11]
[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=12]
[ext_resource path="res://graphics/collectibles/shard.png" type="Texture" id=13]
@ -17,6 +17,8 @@
[ext_resource path="res://graphics/enemy/cop/cop_shoot.png" type="Texture" id=15]
[ext_resource path="res://graphics/npc/fami_human_walk.png" type="Texture" id=16]
[ext_resource path="res://graphics/npc/fami_human_punch.png" type="Texture" id=17]
[ext_resource path="res://graphics/npc/fami_human_transform.png" type="Texture" id=18]
[ext_resource path="res://objects/enemy/boss/fami_transform.material" type="Material" id=19]
[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 1 )
@ -24,6 +26,30 @@ shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = true
shader_param/palette = ExtResource( 2 )
[sub_resource type="AtlasTexture" id=17]
atlas = ExtResource( 18 )
region = Rect2( 42, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=18]
atlas = ExtResource( 18 )
region = Rect2( 56, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=19]
atlas = ExtResource( 18 )
region = Rect2( 70, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=20]
atlas = ExtResource( 18 )
region = Rect2( 0, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=21]
atlas = ExtResource( 18 )
region = Rect2( 14, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=22]
atlas = ExtResource( 18 )
region = Rect2( 28, 0, 14, 24 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 16 )
region = Rect2( 0, 0, 14, 24 )
@ -47,11 +73,21 @@ animations = [ {
"name": "idle",
"speed": 5.0
}, {
"frames": [ SubResource( 17 ), SubResource( 18 ), SubResource( 19 ) ],
"loop": true,
"name": "orb",
"speed": 8.0
}, {
"frames": [ ExtResource( 17 ) ],
"loop": true,
"name": "punch",
"speed": 5.0
}, {
"frames": [ SubResource( 20 ), SubResource( 21 ), SubResource( 22 ) ],
"loop": false,
"name": "shrink",
"speed": 8.0
}, {
"frames": [ SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ) ],
"loop": true,
"name": "walk",
@ -96,11 +132,35 @@ tracks/2/keys = {
"update": 1,
"values": [ false ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("FamiHuman:material:shader_param/background_color")
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": [ Color( 0.396078, 1, 1, 0 ) ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("FamiHuman:material:shader_param/arc_color")
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": [ Color( 0.345098, 0.74902, 0.878431, 0 ) ]
}
[sub_resource type="Animation" id=2]
resource_name = "cutscene"
length = 100.0
step = 1.0
length = 92.0
step = 0.5
tracks/0/type = "value"
tracks/0/path = NodePath("Label:text")
tracks/0/interp = 1
@ -110,7 +170,7 @@ tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0.1, 4.95088, 14.1874, 20.9397, 30.797, 40.2982, 49.7601, 59.7868, 64.7672, 71.5391, 72.2 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"update": 2,
"values": [ "Aha so you've made it this far, however your efforts are all in vain.
", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, and ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society could never work!", "I will defend my status quo as fiercly as possible! It was not by my hand that our society was erected, but it will be by mine that it is upheld!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "" ]
@ -134,10 +194,10 @@ tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 72.3, 74 ),
"transitions": PoolRealArray( 1, 1 ),
"times": PoolRealArray( 0, 72.3, 74 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Vector2( -8, 169 ), Vector2( 72, 169 ) ]
"values": [ Vector2( -8, 169 ), Vector2( -8, 169 ), Vector2( 72, 169 ) ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Cop:animation")
@ -158,10 +218,10 @@ tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0, 75, 77, 77.4, 83, 85 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
"times": PoolRealArray( 0, 75, 77, 77.4, 83, 85, 89, 89.375 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ "idle", "walk", "idle", "punch", "walk", "idle" ]
"values": [ "idle", "walk", "idle", "punch", "walk", "idle", "shrink", "orb" ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("FamiHuman:position")
@ -170,10 +230,10 @@ tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 75, 77, 83, 85 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"times": PoolRealArray( 75, 77, 83, 85, 89, 91, 92 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 160, 167 ), Vector2( 105, 167 ), Vector2( 105, 167 ), Vector2( 160, 167 ) ]
"values": [ Vector2( 160, 167 ), Vector2( 105, 167 ), Vector2( 105, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 83 ) ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("ShardParticles:emitting")
@ -199,6 +259,44 @@ tracks/7/keys = {
"update": 1,
"values": [ false, true, false ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("FamiHuman:material:shader_param/background_color")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0, 88, 89 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 1 ) ]
}
tracks/9/type = "value"
tracks/9/path = NodePath("FamiHuman:material:shader_param/arc_color")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0, 88, 89 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 1 ) ]
}
tracks/10/type = "method"
tracks/10/path = NodePath(".")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/keys = {
"times": PoolRealArray( 92 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "cutscene_finished" ],
"method": "emit_signal"
} ]
}
[sub_resource type="ShaderMaterial" id=8]
shader = ExtResource( 12 )
@ -245,13 +343,7 @@ shader_param/border_color = Color( 0, 0, 0, 1 )
shader_param/border_corners = false
[node name="FamiCutscene" type="Node2D"]
[node name="Sprite" type="Sprite" parent="."]
position = Vector2( 0, 96 )
texture = ExtResource( 10 )
__meta__ = {
"_edit_lock_": true
}
script = ExtResource( 10 )
[node name="TileMap" type="TileMap" parent="."]
tile_set = ExtResource( 7 )
@ -272,8 +364,8 @@ margin_top = 48.0
margin_right = 240.0
margin_bottom = 136.0
theme = ExtResource( 3 )
text = "Aha so you've made it this far, however your efforts are all in vain.
"
text = "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. "
align = 1
valign = 1
autowrap = true
@ -285,6 +377,7 @@ texture = ExtResource( 6 )
script = ExtResource( 5 )
[node name="FamiHuman" type="AnimatedSprite" parent="."]
material = ExtResource( 19 )
position = Vector2( 160, 167 )
scale = Vector2( -1, 1 )
frames = SubResource( 7 )
@ -296,12 +389,13 @@ stream = ExtResource( 11 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "cutscene"
playback_process_mode = 0
anims/RESET = SubResource( 16 )
anims/cutscene = SubResource( 2 )
[node name="Cop" type="AnimatedSprite" parent="."]
material = SubResource( 8 )
position = Vector2( 72, 169 )
position = Vector2( -8, 169 )
frames = SubResource( 13 )
animation = "gun"
playing = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/antlion_body_border.png-eedaa961c8d23661449fab8f5d3562f5.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/enemy/antlion_body_border.png"
dest_files=[ "res://.import/antlion_body_border.png-eedaa961c8d23661449fab8f5d3562f5.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/fami_human_transform.png-2f2a884b33decf15ad67d39c6798c5de.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/npc/fami_human_transform.png"
dest_files=[ "res://.import/fami_human_transform.png-2f2a884b33decf15ad67d39c6798c5de.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -3,8 +3,14 @@ extends "res://maps/map.gd"
onready var sg_health: HSlider = $"%SGHealth"
onready var fami_health: HSlider = $"%FamiHealth"
onready var sg2083: KinematicBody2D = $"2083"
onready var famira: Node2D = $Famira
func _ready() -> void:
sg2083.state = sg2083.State.INACTIVE
famira.animation_player.play("grow", -1.0, 0.0)
func _on_2083_health_changed(amount) -> void:
sg_health.value = amount
@ -12,3 +18,12 @@ func _on_2083_health_changed(amount) -> void:
func _on_Famira_health_changed(amount) -> void:
fami_health.value = -amount
func _on_cutscene_finished() -> void:
sg2083.visible = true
sg2083.state = sg2083.State.STAND
famira.visible = true
famira.animation_player.play("grow")
yield(get_tree().create_timer(0.5), "timeout")
$FamiCutscene/FamiHuman.visible = false

File diff suppressed because one or more lines are too long

View file

@ -50,6 +50,7 @@ shader_param/arc_color = Color( 1, 0.93, 0, 1 )
shader_param/gamma = 2.0
shader_param/flash_rate = 3.0
shader_param/flash_intensity = 0.2
shader_param/background_color = Color( 0, 0, 0, 0 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 16.9355, 4.03226 )

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")