diff --git a/cutscenes/fami_cutscene.gd b/cutscenes/fami_cutscene.gd new file mode 100644 index 0000000..059687d --- /dev/null +++ b/cutscenes/fami_cutscene.gd @@ -0,0 +1,3 @@ +extends Node2D + +signal cutscene_finished diff --git a/cutscenes/fami_cutscene.tscn b/cutscenes/fami_cutscene.tscn index 7842ef5..c73fb72 100644 --- a/cutscenes/fami_cutscene.tscn +++ b/cutscenes/fami_cutscene.tscn @@ -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 diff --git a/graphics/enemy/antlion_body_border.png b/graphics/enemy/antlion_body_border.png new file mode 100644 index 0000000..5d8d56d Binary files /dev/null and b/graphics/enemy/antlion_body_border.png differ diff --git a/graphics/enemy/antlion_body_border.png.import b/graphics/enemy/antlion_body_border.png.import new file mode 100644 index 0000000..7bc00eb --- /dev/null +++ b/graphics/enemy/antlion_body_border.png.import @@ -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 diff --git a/graphics/npc/fami_human_transform.png b/graphics/npc/fami_human_transform.png new file mode 100644 index 0000000..3cc4c38 Binary files /dev/null and b/graphics/npc/fami_human_transform.png differ diff --git a/graphics/npc/fami_human_transform.png.import b/graphics/npc/fami_human_transform.png.import new file mode 100644 index 0000000..63f1894 --- /dev/null +++ b/graphics/npc/fami_human_transform.png.import @@ -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 diff --git a/maps/boss/boss3_arena.gd b/maps/boss/boss3_arena.gd index 63395e0..3357b52 100644 --- a/maps/boss/boss3_arena.gd +++ b/maps/boss/boss3_arena.gd @@ -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 diff --git a/maps/boss/boss3_arena.tscn b/maps/boss/boss3_arena.tscn index fbf6264..6eb41eb 100644 --- a/maps/boss/boss3_arena.tscn +++ b/maps/boss/boss3_arena.tscn @@ -1,10 +1,12 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://objects/enemy/boss/sg2083.tscn" type="PackedScene" id=1] [ext_resource path="res://tilesets/t_laboratory.tres" type="TileSet" id=2] [ext_resource path="res://maps/boss/boss3_arena.gd" type="Script" id=3] [ext_resource path="res://objects/enemy/boss/famira.tscn" type="PackedScene" id=4] [ext_resource path="res://ui/theme.tres" type="Theme" id=5] +[ext_resource path="res://tilesets/t_station.tres" type="TileSet" id=6] +[ext_resource path="res://cutscenes/fami_cutscene.tscn" type="PackedScene" id=7] [node name="Map" type="Node2D" groups=["map"]] pause_mode = 1 @@ -70,14 +72,23 @@ margin_right = 126.0 margin_bottom = 10.0 text = "Famira" -[node name="TileMap" type="TileMap" parent="."] +[node name="TileMap2" type="TileMap" parent="."] +tile_set = ExtResource( 6 ) +cell_size = Vector2( 8, 8 ) +format = 1 +tile_data = PoolIntArray( 1507297, 0, 131073, 1507298, 0, 131073, 1507299, 0, 131073, 1507300, 0, 131073, 1507301, 0, 131073, 1507302, 0, 131073, 1507303, 0, 131073, 1507304, 0, 131073, 1507305, 0, 131073, 1507306, 0, 131073, 1507307, 0, 131073, 1507308, 0, 131073, 1507309, 0, 131073, 1507310, 0, 131073, 1507311, 0, 131073, 1507312, 0, 131073, 1507313, 0, 131073, 1507314, 0, 131073, 1507315, 0, 131073, 1507316, 0, 131073, 1507317, 0, 131073, 1507318, 0, 131073, 1507319, 0, 131073, 1507320, 0, 131073, 1507321, 0, 131073, 1507322, 0, 131073, 1507323, 0, 131073, 1507324, 0, 131073, 1507325, 0, 131073, 1507326, 0, 131073, 1507327, 0, 131073, 1441792, 0, 131073, 1441793, 0, 131073, 1441794, 0, 131073, 1441795, 0, 131073, 1441796, 0, 131073, 1441797, 0, 131073, 1441798, 0, 131073, 1441799, 0, 131073, 1441800, 0, 131073, 1441801, 0, 131073, 1441802, 0, 131073, 1441803, 0, 131073, 1441804, 0, 131073, 1441805, 0, 131073, 1441806, 0, 131073, 1441807, 0, 131073, 1441808, 0, 131073, 1441809, 0, 131073, 1441810, 0, 131073, 1441811, 0, 131073, 1441812, 0, 131073, 1441813, 0, 131073, 1441814, 0, 131073, 1441815, 0, 131073, 1441816, 0, 131073, 1441817, 0, 131073, 1441818, 0, 131073, 1441819, 0, 131073, 1441820, 0, 131073, 1441821, 0, 131073, 1441822, 0, 131073, 1441823, 0, 131073, 1441824, 0, 131073, 1441825, 0, 131073, 1441826, 0, 131073, 1441827, 0, 131073, 1441828, 0, 131073, 1441829, 0, 131073, 1441830, 0, 131073, 1441831, 0, 131073, 1441832, 0, 131073, 1441833, 0, 131073, 1441834, 0, 131073, 1441835, 0, 131073, 1441836, 0, 131073, 1441837, 0, 131073, 1441838, 0, 131073, 1441839, 0, 131073, 1441840, 0, 131073, 1441841, 0, 131073, 1441842, 0, 131073, 1441843, 0, 131073, 1441844, 0, 131073, 1441845, 0, 131073, 1441846, 0, 131073, 1441847, 0, 131073, 1441848, 0, 131073, 1441849, 0, 131073, 1441850, 0, 131073, 1441851, 0, 131073, 1441852, 0, 131073, 1441853, 0, 131073, 1441854, 0, 131073, 1441855, 0, 131073, 1441856, 0, 131073, 1441857, 0, 131073, 1441858, 0, 131073, 1441859, 0, 131073, 1441860, 0, 131073, 1441861, 0, 131073, 1441862, 0, 131073, 1441863, 0, 131073, 1441864, 0, 131073, 1441865, 0, 131073, 1441866, 0, 131073, 1441867, 0, 131073, 1441868, 0, 131073, 1441869, 0, 131073, 1441870, 0, 131073, 1441871, 0, 131073, 1441872, 0, 131073, 1441873, 0, 131073, 1441874, 0, 131073, 1441875, 0, 131073, 1441876, 0, 131073, 1441877, 0, 131073, 1441878, 0, 131073, 1441879, 0, 131073, 1441880, 0, 131073, 1441881, 0, 131073, 1441882, 0, 131073, 1441883, 0, 131073, 1441884, 0, 131073, 1441885, 0, 131073, 1441886, 0, 131073, 1441887, 0, 131073, 1638417, 0, 131073, 1638432, 0, 131073 ) + +[node name="TileMap" type="TileMap" parent="TileMap2"] tile_set = ExtResource( 2 ) cell_size = Vector2( 8, 8 ) format = 1 -tile_data = PoolIntArray( 1507297, 0, 1, 1507298, 0, 2, 1507299, 0, 2, 1507300, 0, 2, 1507301, 0, 2, 1507302, 0, 2, 1507303, 0, 2, 1507304, 0, 2, 1507305, 0, 2, 1507306, 0, 2, 1507307, 0, 2, 1507308, 0, 2, 1507309, 0, 2, 1507310, 0, 2, 1507311, 0, 2, 1507312, 0, 2, 1507313, 0, 2, 1507314, 0, 2, 1507315, 0, 2, 1507316, 0, 2, 1507317, 0, 2, 1507318, 0, 2, 1507319, 0, 2, 1507320, 0, 2, 1507321, 0, 2, 1507322, 0, 2, 1507323, 0, 2, 1507324, 0, 2, 1507325, 0, 2, 1507326, 0, 2, 1507327, 0, 2, 1441792, 0, 1, 1441793, 0, 2, 1441794, 0, 2, 1441795, 0, 2, 1441796, 0, 2, 1441797, 0, 2, 1441798, 0, 2, 1441799, 0, 2, 1441800, 0, 2, 1441801, 0, 2, 1441802, 0, 2, 1441803, 0, 2, 1441804, 0, 2, 1441805, 0, 2, 1441806, 0, 2, 1441807, 0, 2, 1441808, 0, 2, 1441809, 0, 2, 1441810, 0, 2, 1441811, 0, 2, 1441812, 0, 2, 1441813, 0, 2, 1441814, 0, 2, 1441815, 0, 2, 1441816, 0, 2, 1441817, 0, 2, 1441818, 0, 2, 1441819, 0, 2, 1441820, 0, 2, 1441821, 0, 2, 1441822, 0, 2, 1441823, 0, 3, 1441824, 0, 1, 1441825, 0, 2, 1441826, 0, 2, 1441827, 0, 2, 1441828, 0, 2, 1441829, 0, 2, 1441830, 0, 2, 1441831, 0, 2, 1441832, 0, 2, 1441833, 0, 2, 1441834, 0, 2, 1441835, 0, 2, 1441836, 0, 2, 1441837, 0, 2, 1441838, 0, 2, 1441839, 0, 2, 1441840, 0, 2, 1441841, 0, 2, 1441842, 0, 2, 1441843, 0, 2, 1441844, 0, 2, 1441845, 0, 2, 1441846, 0, 2, 1441847, 0, 2, 1441848, 0, 2, 1441849, 0, 2, 1441850, 0, 2, 1441851, 0, 2, 1441852, 0, 2, 1441853, 0, 2, 1441854, 0, 2, 1441855, 0, 3, 1441856, 0, 1, 1441857, 0, 2, 1441858, 0, 2, 1441859, 0, 2, 1441860, 0, 2, 1441861, 0, 2, 1441862, 0, 2, 1441863, 0, 2, 1441864, 0, 2, 1441865, 0, 2, 1441866, 0, 2, 1441867, 0, 2, 1441868, 0, 2, 1441869, 0, 2, 1441870, 0, 2, 1441871, 0, 2, 1441872, 0, 2, 1441873, 0, 2, 1441874, 0, 2, 1441875, 0, 2, 1441876, 0, 2, 1441877, 0, 2, 1441878, 0, 2, 1441879, 0, 2, 1441880, 0, 2, 1441881, 0, 2, 1441882, 0, 2, 1441883, 0, 2, 1441884, 0, 2, 1441885, 0, 2, 1441886, 0, 2, 1441887, 0, 3, 1572833, 3, 1, 1572834, 3, 2, 1572835, 3, 2, 1572836, 3, 2, 1572837, 3, 2, 1572838, 3, 2, 1572839, 3, 2, 1572840, 3, 2, 1572841, 3, 2, 1572842, 3, 2, 1572843, 3, 2, 1572844, 3, 2, 1572845, 3, 2, 1572846, 3, 2, 1572847, 3, 2, 1572848, 3, 2, 1572849, 3, 2, 1572850, 3, 2, 1572851, 3, 2, 1572852, 3, 2, 1572853, 3, 2, 1572854, 3, 2, 1572855, 3, 2, 1572856, 3, 2, 1572857, 3, 2, 1572858, 3, 2, 1572859, 3, 2, 1572860, 3, 2, 1572861, 3, 2, 1572862, 3, 2, 1572863, 3, 2, 1507328, 3, 1, 1507329, 3, 2, 1507330, 3, 2, 1507331, 3, 2, 1507332, 3, 2, 1507333, 3, 2, 1507334, 3, 2, 1507335, 3, 2, 1507336, 3, 2, 1507337, 3, 2, 1507338, 3, 2, 1507339, 3, 2, 1507340, 3, 2, 1507341, 3, 2, 1507342, 3, 2, 1507343, 3, 2, 1507344, 3, 2, 1507345, 3, 2, 1507346, 3, 2, 1507347, 3, 2, 1507348, 3, 2, 1507349, 3, 2, 1507350, 3, 2, 1507351, 3, 2, 1507352, 3, 2, 1507353, 3, 2, 1507354, 3, 2, 1507355, 3, 2, 1507356, 3, 2, 1507357, 3, 2, 1507358, 3, 2, 1507359, 3, 3, 1507360, 3, 1, 1507361, 3, 2, 1507362, 3, 2, 1507363, 3, 2, 1507364, 3, 2, 1507365, 3, 2, 1507366, 3, 2, 1507367, 3, 2, 1507368, 3, 2, 1507369, 3, 2, 1507370, 3, 2, 1507371, 3, 2, 1507372, 3, 2, 1507373, 3, 2, 1507374, 3, 2, 1507375, 3, 2, 1507376, 3, 2, 1507377, 3, 2, 1507378, 3, 2, 1507379, 3, 2, 1507380, 3, 2, 1507381, 3, 2, 1507382, 3, 2, 1507383, 3, 2, 1507384, 3, 2, 1507385, 3, 2, 1507386, 3, 2, 1507387, 3, 2, 1507388, 3, 2, 1507389, 3, 2, 1507390, 3, 2, 1507391, 3, 3, 1507392, 3, 1, 1507393, 3, 2, 1507394, 3, 2, 1507395, 3, 2, 1507396, 3, 2, 1507397, 3, 2, 1507398, 3, 2, 1507399, 3, 2, 1507400, 3, 2, 1507401, 3, 2, 1507402, 3, 2, 1507403, 3, 2, 1507404, 3, 2, 1507405, 3, 2, 1507406, 3, 2, 1507407, 3, 2, 1507408, 3, 2, 1507409, 3, 2, 1507410, 3, 2, 1507411, 3, 2, 1507412, 3, 2, 1507413, 3, 2, 1507414, 3, 2, 1507415, 3, 2, 1507416, 3, 2, 1507417, 3, 2, 1507418, 3, 2, 1507419, 3, 2, 1507420, 3, 2, 1507421, 3, 2, 1507422, 3, 2, 1507423, 3, 3, 1638369, 3, 131073, 1638370, 3, 131074, 1638371, 3, 131074, 1638372, 3, 131074, 1638373, 3, 131074, 1638374, 3, 131074, 1638375, 3, 131074, 1638376, 3, 131074, 1638377, 3, 131074, 1638378, 3, 131074, 1638379, 3, 131074, 1638380, 3, 131074, 1638381, 3, 131074, 1638382, 3, 131074, 1638383, 3, 131074, 1638384, 3, 131074, 1638385, 3, 131074, 1638386, 3, 131074, 1638387, 3, 131074, 1638388, 3, 131074, 1638389, 3, 131074, 1638390, 3, 131074, 1638391, 3, 131074, 1638392, 3, 131074, 1638393, 3, 131074, 1638394, 3, 131074, 1638395, 3, 131074, 1638396, 3, 131074, 1638397, 3, 131074, 1638398, 3, 131074, 1638399, 3, 131074, 1572864, 3, 131073, 1572865, 3, 131074, 1572866, 3, 131074, 1572867, 3, 131074, 1572868, 3, 131074, 1572869, 3, 131074, 1572870, 3, 131074, 1572871, 3, 131074, 1572872, 3, 131074, 1572873, 3, 131074, 1572874, 3, 131074, 1572875, 3, 131074, 1572876, 3, 131074, 1572877, 3, 131074, 1572878, 3, 131074, 1572879, 3, 131074, 1572880, 3, 131074, 1572881, 3, 131074, 1572882, 3, 131074, 1572883, 3, 131074, 1572884, 3, 131074, 1572885, 3, 131074, 1572886, 3, 131074, 1572887, 3, 131074, 1572888, 3, 131074, 1572889, 3, 131074, 1572890, 3, 131074, 1572891, 3, 131074, 1572892, 3, 131074, 1572893, 3, 131074, 1572894, 3, 131074, 1572895, 3, 131075, 1572896, 3, 131073, 1572897, 3, 131074, 1572898, 3, 131074, 1572899, 3, 131074, 1572900, 3, 131074, 1572901, 3, 131074, 1572902, 3, 131074, 1572903, 3, 131074, 1572904, 3, 131074, 1572905, 3, 131074, 1572906, 3, 131074, 1572907, 3, 131074, 1572908, 3, 131074, 1572909, 3, 131074, 1572910, 3, 131074, 1572911, 3, 131074, 1572912, 3, 131074, 1572913, 3, 131074, 1572914, 3, 131074, 1572915, 3, 131074, 1572916, 3, 131074, 1572917, 3, 131074, 1572918, 3, 131074, 1572919, 3, 131074, 1572920, 3, 131074, 1572921, 3, 131074, 1572922, 3, 131074, 1572923, 3, 131074, 1572924, 3, 131074, 1572925, 3, 131074, 1572926, 3, 131074, 1572927, 3, 131075, 1572928, 3, 131073, 1572929, 3, 131074, 1572930, 3, 131074, 1572931, 3, 131074, 1572932, 3, 131074, 1572933, 3, 131074, 1572934, 3, 131074, 1572935, 3, 131074, 1572936, 3, 131074, 1572937, 3, 131074, 1572938, 3, 131074, 1572939, 3, 131074, 1572940, 3, 131074, 1572941, 3, 131074, 1572942, 3, 131074, 1572943, 3, 131074, 1572944, 3, 131074, 1572945, 3, 131074, 1572946, 3, 131074, 1572947, 3, 131074, 1572948, 3, 131074, 1572949, 3, 131074, 1572950, 3, 131074, 1572951, 3, 131074, 1572952, 3, 131074, 1572953, 3, 131074, 1572954, 3, 131074, 1572955, 3, 131074, 1572956, 3, 131074, 1572957, 3, 131074, 1572958, 3, 131074, 1572959, 3, 131075 ) +tile_data = PoolIntArray( 1572833, 1, 1, 1572834, 1, 2, 1572835, 1, 2, 1572836, 1, 2, 1572837, 1, 2, 1572838, 1, 2, 1572839, 1, 2, 1572840, 1, 2, 1572841, 1, 2, 1572842, 1, 2, 1572843, 1, 2, 1572844, 1, 2, 1572845, 1, 2, 1572846, 1, 2, 1572847, 1, 2, 1572848, 1, 2, 1572849, 1, 2, 1572850, 1, 2, 1572851, 1, 2, 1572852, 1, 2, 1572853, 1, 2, 1572854, 1, 2, 1572855, 1, 2, 1572856, 1, 2, 1572857, 1, 2, 1572858, 1, 2, 1572859, 1, 2, 1572860, 1, 2, 1572861, 1, 2, 1572862, 1, 2, 1572863, 1, 2, 1507328, 1, 2, 1507329, 1, 2, 1507330, 1, 2, 1507331, 1, 2, 1507332, 1, 2, 1507333, 1, 2, 1507334, 1, 2, 1507335, 1, 2, 1507336, 1, 2, 1507337, 1, 2, 1507338, 1, 2, 1507339, 1, 2, 1507340, 1, 2, 1507341, 1, 2, 1507342, 1, 2, 1507343, 1, 2, 1507344, 1, 2, 1507345, 1, 2, 1507346, 1, 2, 1507347, 1, 2, 1507348, 1, 2, 1507349, 1, 2, 1507350, 1, 2, 1507351, 1, 2, 1507352, 1, 2, 1507353, 1, 2, 1507354, 1, 2, 1507355, 1, 2, 1507356, 1, 2, 1507357, 1, 2, 1507358, 1, 2, 1507359, 1, 2, 1507360, 1, 2, 1507361, 1, 2, 1507362, 1, 2, 1507363, 1, 2, 1507364, 1, 2, 1507365, 1, 2, 1507366, 1, 2, 1507367, 1, 2, 1507368, 1, 2, 1507369, 1, 2, 1507370, 1, 2, 1507371, 1, 2, 1507372, 1, 2, 1507373, 1, 2, 1507374, 1, 2, 1507375, 1, 2, 1507376, 1, 2, 1507377, 1, 2, 1507378, 1, 2, 1507379, 1, 2, 1507380, 1, 2, 1507381, 1, 2, 1507382, 1, 2, 1507383, 1, 2, 1507384, 1, 2, 1507385, 1, 2, 1507386, 1, 2, 1507387, 1, 2, 1507388, 1, 2, 1507389, 1, 2, 1507390, 1, 2, 1507391, 1, 2, 1507392, 1, 2, 1507393, 1, 2, 1507394, 1, 2, 1507395, 1, 2, 1507396, 1, 2, 1507397, 1, 2, 1507398, 1, 2, 1507399, 1, 2, 1507400, 1, 2, 1507401, 1, 2, 1507402, 1, 2, 1507403, 1, 2, 1507404, 1, 2, 1507405, 1, 2, 1507406, 1, 2, 1507407, 1, 2, 1507408, 1, 2, 1507409, 1, 2, 1507410, 1, 2, 1507411, 1, 2, 1507412, 1, 2, 1507413, 1, 2, 1507414, 1, 2, 1507415, 1, 2, 1507416, 1, 2, 1507417, 1, 2, 1507418, 1, 2, 1507419, 1, 2, 1507420, 1, 2, 1507421, 1, 2, 1507422, 1, 2, 1507423, 1, 3, 1638369, 1, 65537, 1638370, 1, 65538, 1638371, 1, 65538, 1638372, 1, 65538, 1638373, 1, 65538, 1638374, 1, 65538, 1638375, 1, 65538, 1638376, 1, 65538, 1638377, 1, 65538, 1638378, 1, 65538, 1638379, 1, 65538, 1638380, 1, 65538, 1638381, 1, 65538, 1638382, 1, 65538, 1638383, 1, 65538, 1638384, 1, 65538, 1638385, 1, 65538, 1638386, 1, 65538, 1638387, 1, 65538, 1638388, 1, 65538, 1638389, 1, 65538, 1638390, 1, 65538, 1638391, 1, 65538, 1638392, 1, 65538, 1638393, 1, 65538, 1638394, 1, 65538, 1638395, 1, 65538, 1638396, 1, 65538, 1638397, 1, 65538, 1638398, 1, 65538, 1638399, 1, 65538, 1572864, 1, 65538, 1572865, 1, 65538, 1572866, 1, 65538, 1572867, 1, 65538, 1572868, 1, 65538, 1572869, 1, 65538, 1572870, 1, 65538, 1572871, 1, 65538, 1572872, 1, 65538, 1572873, 1, 65538, 1572874, 1, 65538, 1572875, 1, 65538, 1572876, 1, 65538, 1572877, 1, 65538, 1572878, 1, 65538, 1572879, 1, 65538, 1572880, 1, 65538, 1572881, 1, 65538, 1572882, 1, 65538, 1572883, 1, 65538, 1572884, 1, 65538, 1572885, 1, 65538, 1572886, 1, 65538, 1572887, 1, 65538, 1572888, 1, 65538, 1572889, 1, 65538, 1572890, 1, 65538, 1572891, 1, 65538, 1572892, 1, 65538, 1572893, 1, 65538, 1572894, 1, 65538, 1572895, 1, 65538, 1572896, 1, 65538, 1572897, 1, 65538, 1572898, 1, 65538, 1572899, 1, 65538, 1572900, 1, 65538, 1572901, 1, 65538, 1572902, 1, 65538, 1572903, 1, 65538, 1572904, 1, 65538, 1572905, 1, 65538, 1572906, 1, 65538, 1572907, 1, 65538, 1572908, 1, 65538, 1572909, 1, 65538, 1572910, 1, 65538, 1572911, 1, 65538, 1572912, 1, 65538, 1572913, 1, 65538, 1572914, 1, 65538, 1572915, 1, 65538, 1572916, 1, 65538, 1572917, 1, 65538, 1572918, 1, 65538, 1572919, 1, 65538, 1572920, 1, 65538, 1572921, 1, 65538, 1572922, 1, 65538, 1572923, 1, 65538, 1572924, 1, 65538, 1572925, 1, 65538, 1572926, 1, 65538, 1572927, 1, 65538, 1572928, 1, 65538, 1572929, 1, 65538, 1572930, 1, 65538, 1572931, 1, 65538, 1572932, 1, 65538, 1572933, 1, 65538, 1572934, 1, 65538, 1572935, 1, 65538, 1572936, 1, 65538, 1572937, 1, 65538, 1572938, 1, 65538, 1572939, 1, 65538, 1572940, 1, 65538, 1572941, 1, 65538, 1572942, 1, 65538, 1572943, 1, 65538, 1572944, 1, 65538, 1572945, 1, 65538, 1572946, 1, 65538, 1572947, 1, 65538, 1572948, 1, 65538, 1572949, 1, 65538, 1572950, 1, 65538, 1572951, 1, 65538, 1572952, 1, 65538, 1572953, 1, 65538, 1572954, 1, 65538, 1572955, 1, 65538, 1572956, 1, 65538, 1572957, 1, 65538, 1572958, 1, 65538, 1572959, 1, 65539, 1703905, 1, 131073, 1703906, 1, 131074, 1703907, 1, 131074, 1703908, 1, 131074, 1703909, 1, 131074, 1703910, 1, 131074, 1703911, 1, 131074, 1703912, 1, 131074, 1703913, 1, 131074, 1703914, 1, 131074, 1703915, 1, 131074, 1703916, 1, 131074, 1703917, 1, 131074, 1703918, 1, 131074, 1703919, 1, 131074, 1703920, 1, 131074, 1703921, 1, 131074, 1703922, 1, 131074, 1703923, 1, 131074, 1703924, 1, 131074, 1703925, 1, 131074, 1703926, 1, 131074, 1703927, 1, 131074, 1703928, 1, 131074, 1703929, 1, 131074, 1703930, 1, 131074, 1703931, 1, 131074, 1703932, 1, 131074, 1703933, 1, 131074, 1703934, 1, 131074, 1703935, 1, 131074, 1638400, 1, 131074, 1638401, 1, 131074, 1638402, 1, 131074, 1638403, 1, 131074, 1638404, 1, 131074, 1638405, 1, 131074, 1638406, 1, 131074, 1638407, 1, 131074, 1638408, 1, 131074, 1638409, 1, 131074, 1638410, 1, 131074, 1638411, 1, 131074, 1638412, 1, 131074, 1638413, 1, 131074, 1638414, 1, 131074, 1638415, 1, 131074, 1638416, 1, 131074, 1638417, 1, 131074, 1638418, 1, 131074, 1638419, 1, 131074, 1638420, 1, 131074, 1638421, 1, 131074, 1638422, 1, 131074, 1638423, 1, 131074, 1638424, 1, 131074, 1638425, 1, 131074, 1638426, 1, 131074, 1638427, 1, 131074, 1638428, 1, 131074, 1638429, 1, 131074, 1638430, 1, 131074, 1638431, 1, 131074, 1638432, 1, 131074, 1638433, 1, 131074, 1638434, 1, 131074, 1638435, 1, 131074, 1638436, 1, 131074, 1638437, 1, 131074, 1638438, 1, 131074, 1638439, 1, 131074, 1638440, 1, 131074, 1638441, 1, 131074, 1638442, 1, 131074, 1638443, 1, 131074, 1638444, 1, 131074, 1638445, 1, 131074, 1638446, 1, 131074, 1638447, 1, 131074, 1638448, 1, 131074, 1638449, 1, 131074, 1638450, 1, 131074, 1638451, 1, 131074, 1638452, 1, 131074, 1638453, 1, 131074, 1638454, 1, 131074, 1638455, 1, 131074, 1638456, 1, 131074, 1638457, 1, 131074, 1638458, 1, 131074, 1638459, 1, 131074, 1638460, 1, 131074, 1638461, 1, 131074, 1638462, 1, 131074, 1638463, 1, 131074, 1638464, 1, 131074, 1638465, 1, 131074, 1638466, 1, 131074, 1638467, 1, 131074, 1638468, 1, 131074, 1638469, 1, 131074, 1638470, 1, 131074, 1638471, 1, 131074, 1638472, 1, 131074, 1638473, 1, 131074, 1638474, 1, 131074, 1638475, 1, 131074, 1638476, 1, 131074, 1638477, 1, 131074, 1638478, 1, 131074, 1638479, 1, 131074, 1638480, 1, 131074, 1638481, 1, 131074, 1638482, 1, 131074, 1638483, 1, 131074, 1638484, 1, 131074, 1638485, 1, 131074, 1638486, 1, 131074, 1638487, 1, 131074, 1638488, 1, 131074, 1638489, 1, 131074, 1638490, 1, 131074, 1638491, 1, 131074, 1638492, 1, 131074, 1638493, 1, 131074, 1638494, 1, 131074, 1638495, 1, 131075 ) + +[node name="FamiCutscene" parent="." instance=ExtResource( 7 )] [node name="2083" parent="." instance=ExtResource( 1 )] -position = Vector2( 0, 8 ) +visible = false +position = Vector2( 0, 12 ) famira_path = NodePath("../Famira") [node name="Camera2D" type="Camera2D" parent="2083"] @@ -86,8 +97,10 @@ anchor_mode = 0 current = true [node name="Famira" parent="." instance=ExtResource( 4 )] -position = Vector2( 185, 176 ) +visible = false +position = Vector2( 160, 179 ) sg2083_path = NodePath("../2083") +[connection signal="cutscene_finished" from="FamiCutscene" to="." method="_on_cutscene_finished"] [connection signal="health_changed" from="2083" to="." method="_on_2083_health_changed"] [connection signal="health_changed" from="Famira" to="." method="_on_Famira_health_changed"] diff --git a/maps/lab.tscn b/maps/lab.tscn index 4c2dabc..786ae9a 100644 --- a/maps/lab.tscn +++ b/maps/lab.tscn @@ -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 ) diff --git a/objects/enemy/boss/fami_transform.material b/objects/enemy/boss/fami_transform.material new file mode 100644 index 0000000..913442d Binary files /dev/null and b/objects/enemy/boss/fami_transform.material differ diff --git a/objects/enemy/boss/famira.tscn b/objects/enemy/boss/famira.tscn index 52e2efe..7626a8a 100644 --- a/objects/enemy/boss/famira.tscn +++ b/objects/enemy/boss/famira.tscn @@ -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 ) diff --git a/objects/enemy/boss/sg2083.gd b/objects/enemy/boss/sg2083.gd index 64540d4..02568cd 100644 --- a/objects/enemy/boss/sg2083.gd +++ b/objects/enemy/boss/sg2083.gd @@ -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")