diff --git a/graphics/enemy/boss/stg_2600/sg_2083.png b/graphics/enemy/boss/stg_2600/sg_2083.png new file mode 100644 index 0000000..d11f0bf Binary files /dev/null and b/graphics/enemy/boss/stg_2600/sg_2083.png differ diff --git a/graphics/enemy/boss/stg_2600/sg_2083.png.import b/graphics/enemy/boss/stg_2600/sg_2083.png.import new file mode 100644 index 0000000..d00ec58 --- /dev/null +++ b/graphics/enemy/boss/stg_2600/sg_2083.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/sg_2083.png-e75cfae4b8483550759568a2ca940538.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemy/boss/stg_2600/sg_2083.png" +dest_files=[ "res://.import/sg_2083.png-e75cfae4b8483550759568a2ca940538.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.tscn b/maps/boss/boss3_arena.tscn new file mode 100644 index 0000000..1f7ad9a --- /dev/null +++ b/maps/boss/boss3_arena.tscn @@ -0,0 +1,76 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://objects/enemy/boss/sg2083.tscn" type="PackedScene" id=1] +[ext_resource path="res://graphics/backgrounds/factory.png" type="Texture" id=4] +[ext_resource path="res://maps/boss/boss2_arena.gd" type="Script" id=5] +[ext_resource path="res://objects/hud/hud.tscn" type="PackedScene" id=6] +[ext_resource path="res://audio/music/klystron_vip.ogg" type="AudioStream" id=7] +[ext_resource path="res://objects/lore/boss/dr_intelli.tscn" type="PackedScene" id=11] +[ext_resource path="res://objects/delayed_instance.tscn" type="PackedScene" id=12] +[ext_resource path="res://objects/environment/death tile/death_tile.tscn" type="PackedScene" id=13] +[ext_resource path="res://objects/lore/boss/2600.tscn" type="PackedScene" id=17] + +[node name="Map" type="Node2D" groups=["map"]] +pause_mode = 1 +script = ExtResource( 5 ) +music = ExtResource( 7 ) +lore_entries = [ ExtResource( 17 ), ExtResource( 11 ) ] + +[node name="HUD" parent="." instance=ExtResource( 6 )] +song_name = "♫Klystron VIP" + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 128, 96 ) +z_index = -2 +texture = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="DelayedArrow" parent="." instance=ExtResource( 12 )] +delay = 0.1 +autostart = true + +[node name="DelayedArrow2" parent="." instance=ExtResource( 12 )] +delay = 0.1 + +[node name="DelayedArrow3" parent="." instance=ExtResource( 12 )] +delay = 0.1 + +[node name="DeathTile" parent="." instance=ExtResource( 13 )] +position = Vector2( 0, 192 ) +scale = Vector2( 32, 1 ) + +[node name="ExitTimer" type="Timer" parent="."] +wait_time = 5.0 +one_shot = true + +[node name="Enemies" type="Node2D" parent="."] + +[node name="ColorRect" type="ColorRect" parent="."] +visible = false +margin_left = 155.0 +margin_top = 75.0 +margin_right = 163.0 +margin_bottom = 228.0 +rect_rotation = 45.0 + +[node name="ColorRect3" type="ColorRect" parent="."] +visible = false +margin_left = 152.0 +margin_top = 67.0 +margin_right = 160.0 +margin_bottom = 220.0 +rect_rotation = 70.0 + +[node name="ColorRect2" type="ColorRect" parent="."] +visible = false +margin_left = 8.0 +margin_top = 59.0 +margin_right = 152.0 +margin_bottom = 67.0 + +[node name="2600" parent="." instance=ExtResource( 1 )] +position = Vector2( 146, 11 ) + +[connection signal="timeout" from="ExitTimer" to="." method="_on_ExitTimer_timeout"] diff --git a/objects/enemy/boss/sg2083.gd b/objects/enemy/boss/sg2083.gd new file mode 100644 index 0000000..9474402 --- /dev/null +++ b/objects/enemy/boss/sg2083.gd @@ -0,0 +1,25 @@ +extends Node2D + +const Bullet = preload("res://objects/enemy/2600_bullet.tscn") + +export var shot_speed: float = 50 +export var fire_rate: float = 1 + +onready var bullet_positions = $"%BulletPositions" +onready var shoot_timer = $ShootTimer +onready var anims = $AnimationPlayer +onready var head_sprite = $"%Head" + +func _input(event): + if Input.is_action_pressed("shoot"): + shoot() + +func shoot(): + Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_boss) + for pos in bullet_positions.get_children(): + var bullet = Bullet.instance() + bullet.global_position = pos.global_position + bullet.direction = Vector2.LEFT.rotated(pos.rotation) + bullet.speed = shot_speed + get_parent().add_child(bullet) + shoot_timer.wait_time = fire_rate diff --git a/objects/enemy/boss/sg2083.tscn b/objects/enemy/boss/sg2083.tscn new file mode 100644 index 0000000..2d7550c --- /dev/null +++ b/objects/enemy/boss/sg2083.tscn @@ -0,0 +1,1397 @@ +[gd_scene load_steps=38 format=2] + +[ext_resource path="res://shaders/color_noise.gdshader" type="Shader" 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/sg_2083.png" type="Texture" id=6] +[ext_resource path="res://graphics/enemy/boss/stg_2600/bolt_large.png" type="Texture" id=7] +[ext_resource path="res://graphics/enemy/boss/stg_2600/bolt_medium.png" type="Texture" id=8] +[ext_resource path="res://graphics/enemy/boss/stg_2600/leg.png" type="Texture" id=9] +[ext_resource path="res://scripts/sprite_ext.gd" type="Script" id=10] +[ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=11] +[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] +[ext_resource path="res://graphics/particles/smoke.png" type="Texture" id=16] +[ext_resource path="res://shaders/fade.gdshader" type="Shader" id=17] +[ext_resource path="res://graphics/fade_patterns/stg_explosion.png" type="Texture" id=18] +[ext_resource path="res://objects/enemy/boss/sg2083.gd" type="Script" id=19] + +[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 ) +shader_param/cycle_speed = 1.0 +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=22] +shader = ExtResource( 1 ) +shader_param/animate_noise = true +shader_param/noise_intensity = 1.0 + +[sub_resource type="ShaderMaterial" id=8] +shader = ExtResource( 11 ) +shader_param/pixel_scale = 1.0 + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 20.5, 15.5 ) + +[sub_resource type="RectangleShape2D" id=19] +extents = Vector2( 5.5, 5.5 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 23, 13 ) + +[sub_resource type="ShaderMaterial" id=20] +resource_local_to_scene = true +shader = ExtResource( 17 ) +shader_param/color = Color( 1, 1, 1, 1 ) +shader_param/smooth_mode = true +shader_param/reverse = true +shader_param/opacity = 0.0 + +[sub_resource type="Animation" id=17] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("ExplosionRect:material:shader_param/opacity") +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": [ 0.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ExplosionRect:material:shader_param/reverse") +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": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ExplosionRect:modulate") +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": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=18] +resource_name = "explode" +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("ExplosionRect:material:shader_param/opacity") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 1.0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ExplosionRect:modulate") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0.833333 ), Color( 1, 1, 1, 0.666667 ), Color( 1, 1, 1, 0.5 ), Color( 1, 1, 1, 0.333333 ), Color( 1, 1, 1, 0.166667 ), Color( 1, 1, 1, 0 ) ] +} + +[sub_resource type="Animation" id=4] +resource_name = "Beam" +length = 4.0 +tracks/0/type = "value" +tracks/0/path = NodePath(".:can_shoot") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 3.7 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1.6, 3.4 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"values": [ { +"args": [ true ], +"method": "_play_charge_sound" +}, { +"args": [ true ], +"method": "_play_laser_sound" +}, { +"args": [ false ], +"method": "_play_laser_sound" +} ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Axle/Head/Beam:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"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 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Axle/Head/InternalBeam:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"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, 1 ), Vector2( 1, 1e-05 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.6, 3.4 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 1, +"values": [ true, false, true ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Axle/Head/BeamChargeParticles:emitting") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1.1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack: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.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -25.1199, -25.1199 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack: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.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 51.0254, 51.0254 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0 ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Axle/JointBack/LegBack: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.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -26.8344, -26.8344 ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront: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.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -25.1199, -25.1199 ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 51.0254, 51.0254 ] +} +tracks/12/type = "value" +tracks/12/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/keys = { +"times": PoolRealArray( 0.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -26.8344, -26.8344 ] +} + +[sub_resource type="Animation" id=21] +resource_name = "Duck" +length = 0.5 +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("Axle:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 66, 78 ), Vector2( 66, 117 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Axle:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0.00983047, 47.8521 ), Vector2( 0.00786438, 47.8817 ), Vector2( 0.00491524, 47.926 ), Vector2( 0.00294914, 47.9556 ), Vector2( 0, 48 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront: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, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -25.1199, -42.8239, -52.5731 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Axle/JointFront/LegFront/ShinFront:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 3.8147e-06, 36 ), Vector2( 3.8147e-06, 36 ), Vector2( 3.8147e-06, 36 ), Vector2( 3.8147e-06, 36 ), Vector2( 3.8147e-06, 36 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Axle/JointFront/LegFront/ShinFront: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, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 51.0254, 71.6413, 96.9236, 110.502, 129.974 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/JointFront/LegFront:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Axle/JointFront/LegFront: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, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -26.8344, -38.9649, -54.4339, -63.1815, -77.3026 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0.00983047, 47.8521 ), Vector2( 0.00589828, 47.9113 ), Vector2( 0, 48 ), Vector2( 0.004, 48 ), Vector2( 0.01, 48 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack: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, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -25.1199, -42.6063, -52.1914 ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:position") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 51.0254, -5939.68, -82.9, 2.5, 130.023 ] +} +tracks/12/type = "value" +tracks/12/path = NodePath("Axle/JointBack/LegBack/KneeBack:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 36 ), Vector2( 0, 36 ), Vector2( 0, 36 ), Vector2( 0, 36 ), Vector2( 0, 36 ) ] +} +tracks/13/type = "value" +tracks/13/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 6012.0, 180.0, 108.0, 0.0 ] +} +tracks/14/type = "value" +tracks/14/path = NodePath("Axle/JointBack/LegBack:position") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ), Vector2( 0, 0 ) ] +} +tracks/15/type = "value" +tracks/15/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/keys = { +"times": PoolRealArray( 0, 0.1, 0.25, 0.35, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -26.8344, -39.4117, -54.688, -63.5339, -77.4075 ] +} + +[sub_resource type="Animation" id=5] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:can_shoot") +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": 1, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Axle/Head/Beam:scale") +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( 1, 1e-05 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Axle/Head/InternalBeam:scale") +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( 0, 1 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled") +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": [ true ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Axle/Head: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": [ 0.0 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Axle/Head/Beam:visible") +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": [ 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 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront: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": [ -25.1199 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") +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": [ 51.0254 ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Axle/JointFront/LegFront: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": [ -26.8344 ] +} +tracks/10/type = "value" +tracks/10/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack: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": [ -25.1199 ] +} +tracks/11/type = "value" +tracks/11/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") +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": [ 51.0254 ] +} +tracks/12/type = "value" +tracks/12/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") +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": 0, +"values": [ 0.0 ] +} +tracks/13/type = "value" +tracks/13/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") +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": [ -26.8344 ] +} +tracks/14/type = "value" +tracks/14/path = NodePath("Axle:position") +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": [ Vector2( 66, 78 ) ] +} +tracks/15/type = "value" +tracks/15/path = NodePath("Axle/Head/Intelli:visible") +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": [ true ] +} +tracks/16/type = "value" +tracks/16/path = NodePath(".:make_explosions") +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": [ true ] +} +tracks/17/type = "value" +tracks/17/path = NodePath("Axle:visible") +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": [ true ] +} +tracks/18/type = "value" +tracks/18/path = NodePath("Hitbox:monitoring") +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": [ true ] +} +tracks/19/type = "value" +tracks/19/path = NodePath("Hitbox:monitorable") +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": [ true ] +} +tracks/20/type = "value" +tracks/20/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:position") +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( 0.00983047, 47.8521 ) ] +} +tracks/21/type = "value" +tracks/21/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:position") +tracks/21/interp = 1 +tracks/21/loop_wrap = true +tracks/21/imported = false +tracks/21/enabled = true +tracks/21/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0.00983047, 47.8521 ) ] +} +tracks/22/type = "value" +tracks/22/path = NodePath("Axle:rotation_degrees") +tracks/22/interp = 1 +tracks/22/loop_wrap = true +tracks/22/imported = false +tracks/22/enabled = true +tracks/22/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} +tracks/23/type = "value" +tracks/23/path = NodePath("Axle/JointFront/LegFront/ShinFront:position") +tracks/23/interp = 1 +tracks/23/loop_wrap = true +tracks/23/imported = false +tracks/23/enabled = true +tracks/23/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 3.8147e-06, 36 ) ] +} +tracks/24/type = "value" +tracks/24/path = NodePath("Axle/JointFront/LegFront:position") +tracks/24/interp = 1 +tracks/24/loop_wrap = true +tracks/24/imported = false +tracks/24/enabled = true +tracks/24/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/25/type = "value" +tracks/25/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:position") +tracks/25/interp = 1 +tracks/25/loop_wrap = true +tracks/25/imported = false +tracks/25/enabled = true +tracks/25/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/26/type = "value" +tracks/26/path = NodePath("Axle/JointBack/LegBack/KneeBack:position") +tracks/26/interp = 1 +tracks/26/loop_wrap = true +tracks/26/imported = false +tracks/26/enabled = true +tracks/26/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 36 ) ] +} +tracks/27/type = "value" +tracks/27/path = NodePath("Axle/JointBack/LegBack:position") +tracks/27/interp = 1 +tracks/27/loop_wrap = true +tracks/27/imported = false +tracks/27/enabled = true +tracks/27/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} + +[sub_resource type="Animation" id=15] +resource_name = "die" +length = 3.0 +tracks/0/type = "value" +tracks/0/path = NodePath("Axle:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ), Vector2( 67, 78 ), Vector2( 65, 78 ) ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +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 ), +"values": [ { +"args": [ ], +"method": "_spawn_explosions" +} ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Axle/Head/Intelli:visible") +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": 1, +"values": [ false ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:can_shoot") +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": 1, +"values": [ false ] +} +tracks/4/type = "animation" +tracks/4/path = NodePath("BigExplosion/ExplosionAnimation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"clips": PoolStringArray( "explode" ), +"times": PoolRealArray( 2 ) +} +tracks/5/type = "value" +tracks/5/path = NodePath(".:make_explosions") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Axle:visible") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 2.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Hitbox:monitoring") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0, 2.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Hitbox:monitorable") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0, 2.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + +[sub_resource type="Animation" id=14] +resource_name = "stomping" +length = 5.0 +loop = true +tracks/0/type = "bezier" +tracks/0/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( -25.1199, -0.25, 0, 0, -2.10696, -33.4027, -0.7, 0.0638618, 0.25, 0, -33.4027, -0.25, 0, 0.25, 0, -25.1199, 0, -0.968742, 0, -2.10696 ), +"times": PoolRealArray( 0, 1.2, 1.5, 1.8 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 51.0254, -0.25, 0, 0, 6.18464, 84.1092, -0.5, 0.233734, 0.25, 0, 84.1092, -0.25, 0, 0.25, 0, 51.0254, 0, 5.17889, 0, 6.18464 ), +"times": PoolRealArray( 0, 1.2, 1.5, 1.8 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -26.8344, -0.25, 0, 0, -5.79777, -51.6355, -0.6, 0.20406, 0.25, 0, -51.6355, -0.25, 0, 0.25, 0, -26.8344, 0, -5.58774, 0, -5.79777 ), +"times": PoolRealArray( 0, 1.2, 1.5, 1.8 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( -25.1199, -0.25, 0, 0.25, 0, -25.1199, -0.25, 0, 0, -2.10696, -33.4027, -0.7, 0.0638618, 0.25, 0, -33.4027, -0.25, 0, 0.25, 0, -25.1199, 0, -0.968742, 0, -2.10696 ), +"times": PoolRealArray( 0, 2.5, 3.7, 4, 4.3 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 51.0254, -0.25, 0, 0.25, 0, 51.0254, -0.25, 0, 0, 6.18464, 84.1092, -0.5, 0.233734, 0.25, 0, 84.1092, -0.25, 0, 0.25, 0, 51.0254, 0, 5.17889, 0, 6.18464 ), +"times": PoolRealArray( 0, 2.5, 3.7, 4, 4.3 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( -26.8344, -0.25, 0, 0.25, 0, -26.8344, -0.25, 0, 0, -5.79777, -51.6355, -0.6, 0.20406, 0.25, 0, -51.6355, -0.25, 0, 0.25, 0, -26.8344, 0, -5.58774, 0, -5.79777 ), +"times": PoolRealArray( 0, 2.5, 3.7, 4, 4.3 ) +} +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/JointBack/LegBack/KneeBack: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.0 ] +} + +[node name="2600" type="Node2D"] +position = Vector2( 104.683, 0.44545 ) +script = ExtResource( 19 ) +__meta__ = { +"_edit_horizontal_guides_": [ 168.0, 128.0 ], +"_edit_vertical_guides_": [ 88.0, 67.0, 21.0, 42.0 ] +} + +[node name="Axle" type="Node2D" parent="."] +position = Vector2( 66, 78 ) + +[node name="JointBack" type="Sprite" parent="Axle"] +modulate = Color( 0.75, 0.75, 0.75, 1 ) +position = Vector2( -10, -4 ) +z_index = -1 +texture = ExtResource( 7 ) +__meta__ = { +"_edit_bone_": true +} + +[node name="LegBack" type="Sprite" parent="Axle/JointBack"] +show_behind_parent = true +rotation = -0.468349 +texture = ExtResource( 9 ) +offset = Vector2( 0, 18 ) +region_enabled = true +region_rect = Rect2( 0, 0, 12, 36 ) +__meta__ = { +"_edit_bone_": true, +"_edit_ik_": true +} + +[node name="KneeBack" type="Node2D" parent="Axle/JointBack/LegBack"] +position = Vector2( 0, 36 ) +__meta__ = { +"_edit_bone_": true +} + +[node name="ShinBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack"] +rotation = 0.890561 +texture = ExtResource( 9 ) +offset = Vector2( 0, 24 ) +region_enabled = true +region_rect = Rect2( 0, 0, 12, 48 ) +__meta__ = { +"_edit_bone_": true +} + +[node name="FootBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack/ShinBack"] +position = Vector2( 0.00983047, 47.8521 ) +rotation = -0.438425 +texture = ExtResource( 12 ) +offset = Vector2( -11.6527, 2.61113 ) +script = ExtResource( 10 ) +__meta__ = { +"_edit_bone_": true +} +rotation_lock = 0.0 + +[node name="Endpoint" type="Position2D" parent="Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack"] +position = Vector2( -17, 0 ) +__meta__ = { +"_edit_bone_": true, +"_gizmo_extents_": 4.0 +} + +[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack"] +position = Vector2( -8.99999, 5 ) +remote_path = NodePath("../../../../../../../Hitbox/FootShapeBack") + +[node name="KneeBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack"] +texture = ExtResource( 8 ) +hframes = 8 +script = ExtResource( 10 ) +fps = 4.0 +rotation_lock = 0.0 + +[node name="Head" type="Sprite" parent="Axle"] +unique_name_in_owner = true +position = Vector2( 0, -4 ) +texture = ExtResource( 6 ) +offset = Vector2( -13, -25 ) +__meta__ = { +"_edit_bone_": true +} + +[node name="End" type="Position2D" parent="Axle/Head"] +position = Vector2( -20, -28 ) +__meta__ = { +"_edit_bone_": true, +"_gizmo_extents_": 4.0 +} + +[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/Head"] +position = Vector2( -18, -10 ) +remote_path = NodePath("../../../Hitbox/HeadShape") + +[node name="CannonBG" type="ColorRect" parent="Axle/Head"] +show_behind_parent = true +margin_left = -64.0 +margin_top = -18.0 +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"] +visible = false +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( 16 ) +direction = Vector2( 1.25, -1 ) +spread = 0.0 +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( 16 ) +direction = Vector2( 1.25, -1 ) +spread = 0.0 +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( 16 ) +direction = Vector2( 1.25, -1 ) +spread = 0.0 +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 ) +texture = ExtResource( 5 ) +flip_h = true + +[node name="IntelliHeadPos" type="Position2D" parent="Axle/Head/Intelli"] +unique_name_in_owner = true +position = Vector2( 0, -4 ) + +[node name="Beam" type="Sprite" parent="Axle/Head"] +show_behind_parent = true +material = SubResource( 10 ) +position = Vector2( -58, -10 ) +scale = Vector2( 1, 1e-05 ) +texture = ExtResource( 4 ) +offset = Vector2( -128, 0 ) +region_enabled = true +region_rect = Rect2( 0, 0, 256, 16 ) + +[node name="Hitbox" type="Area2D" parent="Axle/Head/Beam" groups=["blocks arrow", "enemy_hitbox"]] + +[node name="BeamShape" type="CollisionShape2D" parent="Axle/Head/Beam/Hitbox"] +position = Vector2( -128, 0 ) +shape = SubResource( 6 ) +disabled = true + +[node name="InternalBeam" type="Sprite" parent="Axle/Head"] +show_behind_parent = true +material = SubResource( 10 ) +position = Vector2( -33, -10 ) +scale = Vector2( 1e-05, 1 ) +texture = ExtResource( 4 ) +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="Static" type="ColorRect" parent="Axle/Head"] +material = SubResource( 22 ) +margin_left = -28.0 +margin_top = -15.0 +margin_right = -14.0 +margin_bottom = -4.0 + +[node name="JointFront" type="Sprite" parent="Axle"] +position = Vector2( 11, -4 ) +texture = ExtResource( 7 ) +__meta__ = { +"_edit_bone_": true, +"_edit_ik_": true +} + +[node name="LegFront" type="Sprite" parent="Axle/JointFront"] +show_behind_parent = true +rotation = -0.468349 +texture = ExtResource( 9 ) +offset = Vector2( 0, 18 ) +region_enabled = true +region_rect = Rect2( 0, 0, 12, 36 ) +__meta__ = { +"_edit_bone_": true, +"_edit_ik_": true +} + +[node name="ShinFront" type="Sprite" parent="Axle/JointFront/LegFront"] +material = SubResource( 8 ) +position = Vector2( 3.8147e-06, 36 ) +rotation = 0.890561 +texture = ExtResource( 9 ) +offset = Vector2( 0, 24 ) +region_enabled = true +region_rect = Rect2( 0, 0, 12, 48 ) +__meta__ = { +"_edit_bone_": true +} + +[node name="FootFront" type="Sprite" parent="Axle/JointFront/LegFront/ShinFront"] +position = Vector2( 0.00983047, 47.8521 ) +rotation = -0.438425 +texture = ExtResource( 12 ) +offset = Vector2( -11.6527, 2.61113 ) +script = ExtResource( 10 ) +__meta__ = { +"_edit_bone_": true +} +rotation_lock = 0.0 + +[node name="Endpoint" type="Position2D" parent="Axle/JointFront/LegFront/ShinFront/FootFront"] +position = Vector2( -17, 0 ) +__meta__ = { +"_edit_bone_": true, +"_gizmo_extents_": 4.0 +} + +[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/JointFront/LegFront/ShinFront/FootFront"] +position = Vector2( -8.99999, 5 ) +remote_path = NodePath("../../../../../../Hitbox/FootShapeFront") + +[node name="KneeFront" type="Sprite" parent="Axle/JointFront/LegFront"] +position = Vector2( 3.8147e-06, 36 ) +texture = ExtResource( 8 ) +hframes = 8 +script = ExtResource( 10 ) +fps = 4.0 +rotation_lock = 0.0 + +[node name="BulletPositions" type="Node2D" parent="."] +unique_name_in_owner = true +position = Vector2( -153, -24 ) + +[node name="Position1" type="Position2D" parent="BulletPositions"] +position = Vector2( 152, 80 ) + +[node name="Position2" type="Position2D" parent="BulletPositions"] +position = Vector2( 152, 88 ) +rotation = -0.436332 + +[node name="Position3" type="Position2D" parent="BulletPositions"] +position = Vector2( 152, 96 ) +rotation = -0.872665 + +[node name="ShootTimer" type="Timer" parent="."] +unique_name_in_owner = true +autostart = true + +[node name="WeakSpot" type="Area2D" parent="." groups=["boss_weakspot", "enemy_hitbox"]] +position = Vector2( 1, 0 ) + +[node name="GlassShape" type="CollisionShape2D" parent="WeakSpot"] +unique_name_in_owner = true +position = Vector2( 26.5, 32.5 ) +shape = SubResource( 1 ) + +[node name="IntelliShape" type="CollisionShape2D" parent="WeakSpot"] +position = Vector2( 27.5, 37.5 ) +shape = SubResource( 19 ) + +[node name="Hitbox" type="Area2D" parent="." groups=["blocks_arrow", "enemy_hitbox"]] +position = Vector2( 1, 0 ) + +[node name="HeadShape" type="CollisionPolygon2D" parent="Hitbox"] +position = Vector2( 47, 103 ) +polygon = PoolVector2Array( -1, -48, 25, -48, 37, -36, 47, 8, 39, 17, -42, 17, -47, 6, -47, -6, -42, -17, -1, -17 ) + +[node name="FootShapeFront" type="CollisionShape2D" parent="Hitbox"] +position = Vector2( 63.9427, 155.004 ) +rotation = 0.00171962 +shape = SubResource( 3 ) + +[node name="FootShapeBack" type="CollisionShape2D" parent="Hitbox"] +position = Vector2( 42.9633, 154.933 ) +rotation = 0.00740958 +shape = SubResource( 3 ) +disabled = true + +[node name="BigExplosion" type="CanvasLayer" parent="."] +layer = 101 + +[node name="ExplosionRect" type="TextureRect" parent="BigExplosion"] +material = SubResource( 20 ) +anchor_right = 1.0 +anchor_bottom = 1.0 +texture = ExtResource( 18 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="ExplosionAnimation" type="AnimationPlayer" parent="BigExplosion"] +anims/RESET = SubResource( 17 ) +anims/explode = SubResource( 18 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "Duck" +playback_default_blend_time = 0.5 +anims/Beam = SubResource( 4 ) +anims/Duck = SubResource( 21 ) +anims/RESET = SubResource( 5 ) +anims/die = SubResource( 15 ) +anims/stomping = SubResource( 14 ) + +[connection signal="area_entered" from="Axle/Head/Beam/Hitbox" to="." method="_on_Hitbox_area_entered"] +[connection signal="timeout" from="ShootTimer" to="." method="_on_ShootTimer_timeout"] +[connection signal="area_entered" from="WeakSpot" to="." method="_on_WeakSpot_area_entered"] +[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_finished"]