diff --git a/graphics/enemy/boss/stg_2600/head_broken.png b/graphics/enemy/boss/stg_2600/head_broken.png index 8eb45d6..324b525 100644 Binary files a/graphics/enemy/boss/stg_2600/head_broken.png and b/graphics/enemy/boss/stg_2600/head_broken.png differ diff --git a/graphics/enemy/boss/stg_2600/head_cracked.png b/graphics/enemy/boss/stg_2600/head_cracked.png index 98549b3..5eef83c 100644 Binary files a/graphics/enemy/boss/stg_2600/head_cracked.png and b/graphics/enemy/boss/stg_2600/head_cracked.png differ diff --git a/graphics/enemy/boss/stg_2600/head_intact.png b/graphics/enemy/boss/stg_2600/head_intact.png index 5e3ce15..e219ab2 100644 Binary files a/graphics/enemy/boss/stg_2600/head_intact.png and b/graphics/enemy/boss/stg_2600/head_intact.png differ diff --git a/graphics/enemy/boss/stg_2600/mech_body.xcf b/graphics/enemy/boss/stg_2600/mech_body.xcf deleted file mode 100644 index 558504f..0000000 Binary files a/graphics/enemy/boss/stg_2600/mech_body.xcf and /dev/null differ diff --git a/graphics/enemy/boss/stg_2600/tailpipes.png b/graphics/enemy/boss/stg_2600/tailpipes.png new file mode 100644 index 0000000..a384fd5 Binary files /dev/null and b/graphics/enemy/boss/stg_2600/tailpipes.png differ diff --git a/graphics/enemy/boss/stg_2600/tailpipes.png.import b/graphics/enemy/boss/stg_2600/tailpipes.png.import new file mode 100644 index 0000000..af2089d --- /dev/null +++ b/graphics/enemy/boss/stg_2600/tailpipes.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tailpipes.png-f2cc21241c48e1d5a125f73c2b7a9f85.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemy/boss/stg_2600/tailpipes.png" +dest_files=[ "res://.import/tailpipes.png-f2cc21241c48e1d5a125f73c2b7a9f85.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/objects/enemy/boss/2600.gd b/objects/enemy/boss/2600.gd index eb3d8c8..e236b35 100644 --- a/objects/enemy/boss/2600.gd +++ b/objects/enemy/boss/2600.gd @@ -34,6 +34,7 @@ func _play_laser_sound(play: bool): Audio.play_sound(Audio.a_rainbow_laser,Audio.ac_boss) else: Audio.ac_boss.playing = false + func die(): diff --git a/objects/enemy/boss/2600.tscn b/objects/enemy/boss/2600.tscn index 4a6bf1b..06f5295 100644 --- a/objects/enemy/boss/2600.tscn +++ b/objects/enemy/boss/2600.tscn @@ -1,6 +1,8 @@ -[gd_scene load_steps=21 format=2] +[gd_scene load_steps=27 format=2] [ext_resource path="res://objects/enemy/boss/2600.gd" type="Script" id=1] +[ext_resource path="res://graphics/enemy/boss/stg_2600/tailpipes.png" type="Texture" id=2] +[ext_resource path="res://shaders/wibble_wobble.gdshader" type="Shader" id=3] [ext_resource path="res://graphics/enemy/boss/stg_2600/beam.png" type="Texture" id=4] [ext_resource path="res://graphics/npc/intelli_idle.png" type="Texture" id=5] [ext_resource path="res://graphics/enemy/boss/stg_2600/head_intact.png" type="Texture" id=6] @@ -12,6 +14,17 @@ [ext_resource path="res://graphics/enemy/boss/stg_2600/foot.png" type="Texture" id=12] [ext_resource path="res://graphics/enemy/boss/stg_2600/beam_gradient.png" type="Texture" id=13] [ext_resource path="res://shaders/beam_cycle.gdshader" type="Shader" id=14] +[ext_resource path="res://graphics/particles/dust.png" type="Texture" id=15] + +[sub_resource type="ShaderMaterial" id=11] +shader = ExtResource( 3 ) +shader_param/speed = Vector2( 16, 32 ) +shader_param/ammount = Vector2( 0.6, 0.6 ) +shader_param/offset = Vector2( 0, 0 ) +shader_param/delay = Vector2( 0, 0 ) + +[sub_resource type="Curve" id=12] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.130639, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.348684, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] [sub_resource type="ShaderMaterial" id=10] shader = ExtResource( 14 ) @@ -21,6 +34,9 @@ shader_param/gradient = ExtResource( 13 ) [sub_resource type="RectangleShape2D" id=6] extents = Vector2( 128, 8 ) +[sub_resource type="Curve" id=13] +_data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.803571, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + [sub_resource type="ShaderMaterial" id=8] shader = ExtResource( 11 ) shader_param/pixel_scale = 1.0 @@ -44,7 +60,7 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 3.5 ), +"times": PoolRealArray( 0, 3.7 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -56,7 +72,7 @@ tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { -"times": PoolRealArray( 1.4, 3.2 ), +"times": PoolRealArray( 1.6, 3.4 ), "transitions": PoolRealArray( 1, 1 ), "values": [ { "args": [ true ], @@ -73,7 +89,7 @@ tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { -"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2 ), +"times": PoolRealArray( 0, 1.5, 1.6, 3.3, 3.4 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ Vector2( 1, 1e-05 ), Vector2( 1, 1e-05 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1e-05 ) ] @@ -85,10 +101,10 @@ tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { -"times": PoolRealArray( 0, 1.3, 3.1, 3.2 ), -"transitions": PoolRealArray( 1, 1, 1, 1 ), +"times": PoolRealArray( 0, 1.3, 1.5, 3.3, 3.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, -"values": [ Vector2( 1e-05, 1 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1e-05 ) ] +"values": [ Vector2( 1e-05, 1 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1e-05 ) ] } tracks/4/type = "value" tracks/4/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled") @@ -97,7 +113,7 @@ tracks/4/loop_wrap = true tracks/4/imported = false tracks/4/enabled = true tracks/4/keys = { -"times": PoolRealArray( 0, 1.4, 3.2 ), +"times": PoolRealArray( 0, 1.6, 3.4 ), "transitions": PoolRealArray( 1, 1, 1 ), "update": 1, "values": [ true, false, true ] @@ -109,11 +125,23 @@ tracks/5/loop_wrap = true tracks/5/imported = false tracks/5/enabled = true tracks/5/keys = { -"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2, 3.5 ), +"times": PoolRealArray( 0, 1.3, 1.6, 3.3, 3.4, 3.7 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), "update": 0, "values": [ 0.0, 15.0, 15.0, -15.0, -15.0, 0.0 ] } +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/Head/BeamChargeParticles:emitting") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 1.1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} [sub_resource type="Animation" id=5] length = 0.001 @@ -189,6 +217,18 @@ tracks/5/keys = { "update": 0, "values": [ true ] } +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/Head/BeamChargeParticles:emitting") +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": [ false ] +} [node name="2600" type="Node2D"] position = Vector2( 0, -16 ) @@ -291,6 +331,59 @@ margin_right = -32.0 margin_bottom = -2.0 color = Color( 0.266667, 0.266667, 0.305882, 1 ) +[node name="Tailpipes" type="Sprite" parent="Axle/Head"] +show_behind_parent = true +material = SubResource( 11 ) +position = Vector2( 21, -36 ) +texture = ExtResource( 2 ) + +[node name="SmokeParticles" type="CPUParticles2D" parent="Axle/Head/Tailpipes"] +position = Vector2( 10, -10 ) +amount = 12 +texture = ExtResource( 15 ) +direction = Vector2( 1, -1 ) +gravity = Vector2( 0, -30 ) +initial_velocity = 20.0 +initial_velocity_random = 1.0 +angular_velocity = 180.0 +angular_velocity_random = 1.0 +angle = 720.0 +angle_random = 1.0 +scale_amount = 0.5 +scale_amount_random = 1.0 +scale_amount_curve = SubResource( 12 ) +color = Color( 0.0666667, 0.0666667, 0.0666667, 1 ) + +[node name="SmokeParticles2" type="CPUParticles2D" parent="Axle/Head/Tailpipes"] +position = Vector2( 8, 0 ) +amount = 12 +texture = ExtResource( 15 ) +direction = Vector2( 1, -1 ) +gravity = Vector2( 0, -30 ) +initial_velocity = 20.0 +initial_velocity_random = 1.0 +angle = 720.0 +angle_random = 1.0 +scale_amount = 0.5 +scale_amount_random = 1.0 +scale_amount_curve = SubResource( 12 ) +color = Color( 0.0666667, 0.0666667, 0.0666667, 1 ) + +[node name="SmokeParticles3" type="CPUParticles2D" parent="Axle/Head/Tailpipes"] +position = Vector2( 5, -9 ) +amount = 12 +texture = ExtResource( 15 ) +direction = Vector2( 1, -1 ) +gravity = Vector2( 0, -30 ) +initial_velocity = 20.0 +initial_velocity_random = 1.0 +angle = 720.0 +angle_random = 1.0 +scale_amount = 0.5 +scale_amount_random = 1.0 +scale_amount_curve = SubResource( 12 ) +color = Color( 0.0666667, 0.0666667, 0.0666667, 1 ) + [node name="Intelli" type="Sprite" parent="Axle/Head"] show_behind_parent = true position = Vector2( -37, -32 ) @@ -324,6 +417,27 @@ offset = Vector2( -12, 0 ) region_enabled = true region_rect = Rect2( 0, 0, 24, 16 ) +[node name="BeamChargeParticles" type="CPUParticles2D" parent="Axle/Head"] +show_behind_parent = true +material = SubResource( 10 ) +position = Vector2( -62, -10 ) +scale = Vector2( 1, 0.987022 ) +emitting = false +amount = 12 +lifetime = 1.5 +speed_scale = 3.0 +texture = ExtResource( 15 ) +emission_shape = 3 +emission_points = PoolVector2Array( -32, 0, -28, -12, -28, 12, -24, -16, -24, 16, -30, -8, -30, 8, -32, -4, -32, 4 ) +emission_colors = PoolColorArray( ) +gravity = Vector2( 0, 0 ) +radial_accel = -32.0 +angle = 720.0 +angle_random = 1.0 +scale_amount = 0.5 +scale_amount_random = 0.5 +scale_amount_curve = SubResource( 13 ) + [node name="JointFront" type="Sprite" parent="Axle"] position = Vector2( 11, -4 ) texture = ExtResource( 7 )