diff --git a/objects/enemy/boss/sg2083.gd b/objects/enemy/boss/sg2083.gd index 9474402..afac272 100644 --- a/objects/enemy/boss/sg2083.gd +++ b/objects/enemy/boss/sg2083.gd @@ -1,20 +1,59 @@ extends Node2D -const Bullet = preload("res://objects/enemy/2600_bullet.tscn") -export var shot_speed: float = 50 -export var fire_rate: float = 1 +enum State {STAND, FORWARD, BACK, DUCK, BEAM} + +const Bullet = preload("res://objects/enemy/2600_bullet.tscn") +const SmallExplosion = preload("res://objects/enemy/boss/2600_small_explosion.tscn") + + +export var shot_speed: float = 50.0 +export var move_speed: float = 30.0 +export var safe_from_breath: bool = false +export var make_explosions: bool = false +export var explosion_rect: Rect2 + + +var state: int = State.STAND + onready var bullet_positions = $"%BulletPositions" -onready var shoot_timer = $ShootTimer -onready var anims = $AnimationPlayer +onready var anims: AnimationPlayer = $"%AnimationPlayer" onready var head_sprite = $"%Head" -func _input(event): - if Input.is_action_pressed("shoot"): - shoot() -func shoot(): +func _physics_process(delta: float) -> void: + match state: + State.STAND: + if Input.is_action_pressed("move_down"): + state = State.DUCK + anims.play("Duck") + elif Input.is_action_pressed("move_right"): + state = State.FORWARD + anims.play("Walk") + elif Input.is_action_pressed("move_left"): + state = State.BACK + anims.play("Walk", -1.0, -1.0, true) + State.DUCK: + if not Input.is_action_pressed("move_down") and anims.current_animation.empty(): + anims.play("UnDuck") + State.FORWARD: + position.x += move_speed * delta + State.BACK: + position.x -= move_speed * delta + + +func _input(event: InputEvent) -> void: + + if event.is_action_pressed("shoot") and (state == State.STAND or state == State.FORWARD or state == State.BACK): + shoot() + if event.is_action_pressed("jump") and state == State.STAND: + beam() + if event.is_action_pressed("move_up"): + anims.play("die") + + +func shoot() -> void: Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_boss) for pos in bullet_positions.get_children(): var bullet = Bullet.instance() @@ -22,4 +61,48 @@ func shoot(): bullet.direction = Vector2.LEFT.rotated(pos.rotation) bullet.speed = shot_speed get_parent().add_child(bullet) - shoot_timer.wait_time = fire_rate + + +func beam() -> void: + state = State.BEAM + anims.play("Beam") + + +func _play_laser_sound(play: bool): + if play: + Audio.play_sound(Audio.a_rainbow_laser,Audio.ac_boss) + else: + Audio.ac_boss.playing = false + + +func _play_charge_sound(play: bool): + if play: + Audio.play_sound(Audio.a_2600_charge,Audio.ac_boss) + else: + Audio.ac_boss.playing = false + + +func _spawn_explosions() -> void: + while make_explosions: + yield(get_tree().create_timer(randf() * 0.5, false), "timeout") + var explosion = SmallExplosion.instance() + explosion.position = Vector2( + rand_range(explosion_rect.position.x, explosion_rect.end.x), + rand_range(explosion_rect.position.y, explosion_rect.end.y) + ) + add_child(explosion) + + +func _on_animation_finished(anim_name: String) -> void: + match anim_name: + "UnDuck": + state = State.STAND + "Walk": + if state == State.FORWARD and Input.is_action_pressed("move_right"): + anims.play("Walk") + elif state == State.BACK and Input.is_action_pressed("move_left"): + anims.play("Walk", -1.0, -1.0, true) + else: + state = State.STAND + "Beam": + state = State.STAND diff --git a/objects/enemy/boss/sg2083.tscn b/objects/enemy/boss/sg2083.tscn index 2d7550c..c576f33 100644 --- a/objects/enemy/boss/sg2083.tscn +++ b/objects/enemy/boss/sg2083.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=38 format=2] +[gd_scene load_steps=37 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] @@ -20,142 +20,16 @@ [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/type = "method" +tracks/0/path = NodePath(".") 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": [ { @@ -169,56 +43,68 @@ tracks/1/keys = { "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 = { +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, 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 = { +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, 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 = { +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, 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 = { +tracks/4/type = "value" +tracks/4/path = NodePath("Axle/Head/BeamChargeParticles:emitting") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { "times": PoolRealArray( 0, 1.1 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ true, false ] } +tracks/5/type = "value" +tracks/5/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack: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.5, 4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -25.1199, -25.1199 ] +} tracks/6/type = "value" -tracks/6/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:rotation_degrees") +tracks/6/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/imported = false @@ -227,10 +113,10 @@ tracks/6/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ -25.1199, -25.1199 ] +"values": [ 51.0254, 51.0254 ] } tracks/7/type = "value" -tracks/7/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") +tracks/7/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/imported = false @@ -239,10 +125,10 @@ tracks/7/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ 51.0254, 51.0254 ] +"values": [ 0.0, 0.0 ] } tracks/8/type = "value" -tracks/8/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") +tracks/8/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/imported = false @@ -251,10 +137,10 @@ tracks/8/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ 0.0, 0.0 ] +"values": [ -26.8344, -26.8344 ] } tracks/9/type = "value" -tracks/9/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") +tracks/9/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/imported = false @@ -263,10 +149,10 @@ tracks/9/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ -26.8344, -26.8344 ] +"values": [ -25.1199, -25.1199 ] } tracks/10/type = "value" -tracks/10/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") +tracks/10/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/imported = false @@ -275,10 +161,10 @@ tracks/10/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ -25.1199, -25.1199 ] +"values": [ 51.0254, 51.0254 ] } tracks/11/type = "value" -tracks/11/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") +tracks/11/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/imported = false @@ -287,24 +173,24 @@ tracks/11/keys = { "times": PoolRealArray( 0.5, 4 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, -"values": [ 51.0254, 51.0254 ] +"values": [ -26.8344, -26.8344 ] } tracks/12/type = "value" -tracks/12/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") +tracks/12/path = NodePath("Axle/Head/Beam:visible") 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 ] +"times": PoolRealArray( 0, 1.5, 3.4 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 1, +"values": [ false, true, false ] } [sub_resource type="Animation" id=21] resource_name = "Duck" -length = 0.5 +length = 0.2 step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath("Axle:position") @@ -313,10 +199,10 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, -"values": [ Vector2( 66, 78 ), Vector2( 66, 117 ) ] +"values": [ Vector2( 42, 78 ), Vector2( 42, 87.5 ), Vector2( 42, 97 ), Vector2( 42, 106.5 ), Vector2( 42, 116 ) ] } tracks/1/type = "value" tracks/1/path = NodePath("Axle:rotation_degrees") @@ -325,7 +211,7 @@ tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { -"times": PoolRealArray( 0, 0.5 ), +"times": PoolRealArray( 0, 0.2 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ 0.0, 0.0 ] @@ -337,10 +223,10 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] +"values": [ Vector2( 0.00983047, 47.8521 ), Vector2( 0.00786438, 47.8817 ), Vector2( 0.005, 47.75 ), Vector2( 0.00294914, 47.9556 ), Vector2( 0, 48 ) ] } tracks/3/type = "value" tracks/3/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") @@ -349,7 +235,7 @@ tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { -"times": PoolRealArray( 0, 0.25, 0.5 ), +"times": PoolRealArray( 0, 0.1, 0.2 ), "transitions": PoolRealArray( 1, 1, 1 ), "update": 0, "values": [ -25.1199, -42.8239, -52.5731 ] @@ -361,7 +247,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] @@ -373,7 +259,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ 51.0254, 71.6413, 96.9236, 110.502, 129.974 ] @@ -385,7 +271,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] @@ -397,7 +283,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ -26.8344, -38.9649, -54.4339, -63.1815, -77.3026 ] @@ -409,10 +295,10 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] +"values": [ Vector2( 0.00983047, 47.8521 ), Vector2( 0.00589828, 47.9113 ), Vector2( 0, 47.75 ), Vector2( 0.004, 48 ), Vector2( 0.01, 48 ) ] } tracks/9/type = "value" tracks/9/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:rotation_degrees") @@ -421,7 +307,7 @@ tracks/9/loop_wrap = true tracks/9/imported = false tracks/9/enabled = true tracks/9/keys = { -"times": PoolRealArray( 0, 0.25, 0.5 ), +"times": PoolRealArray( 0, 0.1, 0.2 ), "transitions": PoolRealArray( 1, 1, 1 ), "update": 0, "values": [ -25.1199, -42.6063, -52.1914 ] @@ -433,7 +319,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] @@ -445,7 +331,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ 51.0254, -5939.68, -82.9, 2.5, 130.023 ] @@ -457,7 +343,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] @@ -469,7 +355,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ 0.0, 6012.0, 180.0, 108.0, 0.0 ] @@ -481,7 +367,7 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "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 ) ] @@ -493,16 +379,28 @@ 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 ), +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, "values": [ -26.8344, -39.4117, -54.688, -63.5339, -77.4075 ] } +tracks/16/type = "value" +tracks/16/path = NodePath(".:safe_from_breath") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/keys = { +"times": PoolRealArray( 0, 0.15 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} [sub_resource type="Animation" id=5] length = 0.001 tracks/0/type = "value" -tracks/0/path = NodePath(".:can_shoot") +tracks/0/path = NodePath("Axle/Head/Beam:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false @@ -510,11 +408,11 @@ tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 1, -"values": [ true ] +"update": 0, +"values": [ Vector2( 1, 1e-05 ) ] } tracks/1/type = "value" -tracks/1/path = NodePath("Axle/Head/Beam:scale") +tracks/1/path = NodePath("Axle/Head/InternalBeam:scale") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false @@ -523,10 +421,10 @@ tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 1, 1e-05 ) ] +"values": [ Vector2( 0, 1 ) ] } tracks/2/type = "value" -tracks/2/path = NodePath("Axle/Head/InternalBeam:scale") +tracks/2/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false @@ -535,10 +433,10 @@ tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0, 1 ) ] +"values": [ true ] } tracks/3/type = "value" -tracks/3/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled") +tracks/3/path = NodePath("Axle/Head:rotation_degrees") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false @@ -547,10 +445,10 @@ tracks/3/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ 0.0 ] } tracks/4/type = "value" -tracks/4/path = NodePath("Axle/Head:rotation_degrees") +tracks/4/path = NodePath("Axle/Head/Beam:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -559,10 +457,10 @@ tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ 0.0 ] +"values": [ false ] } tracks/5/type = "value" -tracks/5/path = NodePath("Axle/Head/Beam:visible") +tracks/5/path = NodePath("Axle/Head/BeamChargeParticles:emitting") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/imported = false @@ -571,10 +469,10 @@ tracks/5/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ false ] } tracks/6/type = "value" -tracks/6/path = NodePath("Axle/Head/BeamChargeParticles:emitting") +tracks/6/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/imported = false @@ -583,10 +481,10 @@ tracks/6/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ false ] +"values": [ -25.1199 ] } tracks/7/type = "value" -tracks/7/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") +tracks/7/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/imported = false @@ -595,10 +493,10 @@ tracks/7/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ -25.1199 ] +"values": [ 51.0254 ] } tracks/8/type = "value" -tracks/8/path = NodePath("Axle/JointFront/LegFront/ShinFront:rotation_degrees") +tracks/8/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/imported = false @@ -607,10 +505,10 @@ tracks/8/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ 51.0254 ] +"values": [ -26.8344 ] } tracks/9/type = "value" -tracks/9/path = NodePath("Axle/JointFront/LegFront:rotation_degrees") +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 @@ -619,10 +517,10 @@ tracks/9/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ -26.8344 ] +"values": [ -25.1199 ] } tracks/10/type = "value" -tracks/10/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:rotation_degrees") +tracks/10/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/imported = false @@ -631,10 +529,10 @@ tracks/10/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ -25.1199 ] +"values": [ 51.0254 ] } tracks/11/type = "value" -tracks/11/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:rotation_degrees") +tracks/11/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/imported = false @@ -643,10 +541,10 @@ tracks/11/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ 51.0254 ] +"values": [ 0.0 ] } tracks/12/type = "value" -tracks/12/path = NodePath("Axle/JointBack/LegBack/KneeBack:rotation_degrees") +tracks/12/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") tracks/12/interp = 1 tracks/12/loop_wrap = true tracks/12/imported = false @@ -655,10 +553,10 @@ tracks/12/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ 0.0 ] +"values": [ -26.8344 ] } tracks/13/type = "value" -tracks/13/path = NodePath("Axle/JointBack/LegBack:rotation_degrees") +tracks/13/path = NodePath("Axle:position") tracks/13/interp = 1 tracks/13/loop_wrap = true tracks/13/imported = false @@ -667,10 +565,10 @@ tracks/13/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ -26.8344 ] +"values": [ Vector2( 42, 78 ) ] } tracks/14/type = "value" -tracks/14/path = NodePath("Axle:position") +tracks/14/path = NodePath("Axle/Head/Intelli:visible") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/imported = false @@ -679,10 +577,10 @@ tracks/14/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 66, 78 ) ] +"values": [ true ] } tracks/15/type = "value" -tracks/15/path = NodePath("Axle/Head/Intelli:visible") +tracks/15/path = NodePath("Axle:visible") tracks/15/interp = 1 tracks/15/loop_wrap = true tracks/15/imported = false @@ -694,7 +592,7 @@ tracks/15/keys = { "values": [ true ] } tracks/16/type = "value" -tracks/16/path = NodePath(".:make_explosions") +tracks/16/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:position") tracks/16/interp = 1 tracks/16/loop_wrap = true tracks/16/imported = false @@ -703,10 +601,10 @@ tracks/16/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ Vector2( 0.00983047, 47.8521 ) ] } tracks/17/type = "value" -tracks/17/path = NodePath("Axle:visible") +tracks/17/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:position") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/imported = false @@ -715,10 +613,10 @@ tracks/17/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ Vector2( 0.00983047, 47.8521 ) ] } tracks/18/type = "value" -tracks/18/path = NodePath("Hitbox:monitoring") +tracks/18/path = NodePath("Axle:rotation_degrees") tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/imported = false @@ -727,10 +625,10 @@ tracks/18/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ 0.0 ] } tracks/19/type = "value" -tracks/19/path = NodePath("Hitbox:monitorable") +tracks/19/path = NodePath("Axle/JointFront/LegFront/ShinFront:position") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/imported = false @@ -739,10 +637,10 @@ tracks/19/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ true ] +"values": [ Vector2( 3.8147e-06, 36 ) ] } tracks/20/type = "value" -tracks/20/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:position") +tracks/20/path = NodePath("Axle/JointFront/LegFront:position") tracks/20/interp = 1 tracks/20/loop_wrap = true tracks/20/imported = false @@ -751,10 +649,10 @@ tracks/20/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0.00983047, 47.8521 ) ] +"values": [ Vector2( 0, 0 ) ] } tracks/21/type = "value" -tracks/21/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:position") +tracks/21/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:position") tracks/21/interp = 1 tracks/21/loop_wrap = true tracks/21/imported = false @@ -763,10 +661,10 @@ tracks/21/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0.00983047, 47.8521 ) ] +"values": [ Vector2( 0, 0 ) ] } tracks/22/type = "value" -tracks/22/path = NodePath("Axle:rotation_degrees") +tracks/22/path = NodePath("Axle/JointBack/LegBack/KneeBack:position") tracks/22/interp = 1 tracks/22/loop_wrap = true tracks/22/imported = false @@ -775,10 +673,10 @@ tracks/22/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ 0.0 ] +"values": [ Vector2( 0, 36 ) ] } tracks/23/type = "value" -tracks/23/path = NodePath("Axle/JointFront/LegFront/ShinFront:position") +tracks/23/path = NodePath("Axle/JointBack/LegBack:position") tracks/23/interp = 1 tracks/23/loop_wrap = true tracks/23/imported = false @@ -787,10 +685,10 @@ tracks/23/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 3.8147e-06, 36 ) ] +"values": [ Vector2( 0, 0 ) ] } tracks/24/type = "value" -tracks/24/path = NodePath("Axle/JointFront/LegFront:position") +tracks/24/path = NodePath("Axle/JointFront:position") tracks/24/interp = 1 tracks/24/loop_wrap = true tracks/24/imported = false @@ -799,10 +697,10 @@ tracks/24/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0, 0 ) ] +"values": [ Vector2( 11, -4 ) ] } tracks/25/type = "value" -tracks/25/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:position") +tracks/25/path = NodePath("Axle/JointFront:rotation_degrees") tracks/25/interp = 1 tracks/25/loop_wrap = true tracks/25/imported = false @@ -811,10 +709,10 @@ tracks/25/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0, 0 ) ] +"values": [ 0.0 ] } tracks/26/type = "value" -tracks/26/path = NodePath("Axle/JointBack/LegBack/KneeBack:position") +tracks/26/path = NodePath(".:make_explosions") tracks/26/interp = 1 tracks/26/loop_wrap = true tracks/26/imported = false @@ -823,19 +721,328 @@ tracks/26/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Vector2( 0, 36 ) ] +"values": [ false ] } -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 ), + +[sub_resource type="Animation" id=24] +resource_name = "UnDuck" +length = 0.2 +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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), "update": 0, -"values": [ Vector2( 0, 0 ) ] +"values": [ Vector2( 42, 116 ), Vector2( 42, 106.5 ), Vector2( 42, 97 ), Vector2( 42, 87.5 ), Vector2( 42, 78 ) ] +} +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.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 48 ), Vector2( 0.00294914, 47.9556 ), Vector2( 0.005, 47.75 ), Vector2( 0.00786438, 47.8817 ), Vector2( 0.00983047, 47.8521 ) ] +} +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.1, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -52.5731, -42.8239, -25.1199 ] +} +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.05, 0.1, 0.15, 0.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 129.974, 110.502, 96.9236, 71.6413, 51.0254 ] +} +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.05, 0.1, 0.15, 0.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -77.3026, -63.1815, -54.4339, -38.9649, -26.8344 ] +} +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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0.01, 48 ), Vector2( 0.004, 48 ), Vector2( 0, 47.75 ), Vector2( 0.00589828, 47.9113 ), Vector2( 0.00983047, 47.8521 ) ] +} +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.1, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ -52.1914, -42.6063, -25.1199 ] +} +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.05, 0.1, 0.15, 0.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 130.023, 2.5, -82.9, -5939.68, 51.0254 ] +} +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.05, 0.1, 0.15, 0.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 108.0, 180.0, 6012.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.05, 0.1, 0.15, 0.2 ), +"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.05, 0.1, 0.15, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -77.4075, -63.5339, -54.688, -39.4117, -26.8344 ] +} +tracks/16/type = "value" +tracks/16/path = NodePath(".:safe_from_breath") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/keys = { +"times": PoolRealArray( 0.05 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=25] +resource_name = "Walk" +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.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 42, 78 ), Vector2( 42, 72 ), Vector2( 42, 78 ), Vector2( 42, 72 ), Vector2( 42, 78 ) ] +} +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.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, 0.0, 0.0, 0.0, 0.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Axle/JointFront/LegFront/ShinFront/FootFront:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -25.1199, -43.1593, -34.7251, -0.87926, -25.1199 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Axle/JointFront/LegFront/ShinFront: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, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 51.0254, 55.362, 37.1965, -18.9988, 51.0254 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Axle/JointFront/LegFront: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, 0.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -26.8344, -13.4621, -3.40035, 19.2038, -26.8344 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack: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.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -25.1199, -4.6348, -6.27576, -31.2515, -25.1199 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack: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, 0.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 51.0254, 203.4, 223.8, -3444.5, 51.0254 ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Axle/JointBack/LegBack/KneeBack: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.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ 0.0, -180.0, -180.0, 3510.0, 0.0 ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Axle/JointBack/LegBack: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, 0.25, 0.5, 0.75, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ -26.8344, -19.6257, -38.4223, -35.1608, -26.8344 ] } [sub_resource type="Animation" id=15] @@ -851,7 +1058,7 @@ 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 ) ] +"values": [ Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ), Vector2( 43, 78 ), Vector2( 41, 78 ) ] } tracks/1/type = "method" tracks/1/path = NodePath(".") @@ -879,27 +1086,27 @@ tracks/2/keys = { "update": 1, "values": [ false ] } -tracks/3/type = "value" -tracks/3/path = NodePath(".:can_shoot") +tracks/3/type = "animation" +tracks/3/path = NodePath("BigExplosion/ExplosionAnimation") 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 ] +"clips": PoolStringArray( "explode" ), +"times": PoolRealArray( 2 ) } -tracks/4/type = "animation" -tracks/4/path = NodePath("BigExplosion/ExplosionAnimation") +tracks/4/type = "value" +tracks/4/path = NodePath("Axle:visible") 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 ) +"times": PoolRealArray( 0, 2.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] } tracks/5/type = "value" tracks/5/path = NodePath(".:make_explosions") @@ -913,42 +1120,6 @@ tracks/5/keys = { "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" @@ -1027,16 +1198,132 @@ tracks/6/keys = { "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 ] +[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="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 ) ] +} + +[node name="2600" type="Node2D"] +script = ExtResource( 19 ) +__meta__ = { +"_edit_horizontal_guides_": [ 168.0, 128.0, 157.0 ], +"_edit_vertical_guides_": [ 88.0, 67.0, 21.0, 42.0, 79.0 ] +} +explosion_rect = Rect2( 48, 16, 88, 64 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +anims/Beam = SubResource( 4 ) +anims/Duck = SubResource( 21 ) +anims/RESET = SubResource( 5 ) +anims/UnDuck = SubResource( 24 ) +anims/Walk = SubResource( 25 ) +anims/die = SubResource( 15 ) +anims/stomping = SubResource( 14 ) + [node name="Axle" type="Node2D" parent="."] -position = Vector2( 66, 78 ) +position = Vector2( 42, 78 ) +scale = Vector2( -1, 1 ) [node name="JointBack" type="Sprite" parent="Axle"] modulate = Color( 0.75, 0.75, 0.75, 1 ) @@ -1084,7 +1371,7 @@ script = ExtResource( 10 ) __meta__ = { "_edit_bone_": true } -rotation_lock = 0.0 +rotation_lock = nan [node name="Endpoint" type="Position2D" parent="Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack"] position = Vector2( -17, 0 ) @@ -1093,10 +1380,6 @@ __meta__ = { "_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 @@ -1122,7 +1405,6 @@ __meta__ = { [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 @@ -1200,6 +1482,7 @@ unique_name_in_owner = true position = Vector2( 0, -4 ) [node name="Beam" type="Sprite" parent="Axle/Head"] +visible = false show_behind_parent = true material = SubResource( 10 ) position = Vector2( -58, -10 ) @@ -1254,6 +1537,24 @@ margin_top = -15.0 margin_right = -14.0 margin_bottom = -4.0 +[node name="BulletPositions" type="Node2D" parent="Axle/Head"] +unique_name_in_owner = true +position = Vector2( -61, -18 ) +rotation = 3.14159 +scale = Vector2( 1, -1 ) + +[node name="Position1" type="Position2D" parent="Axle/Head/BulletPositions"] +position = Vector2( 6.08833, 2.28882e-05 ) +rotation = 3.14159 + +[node name="Position2" type="Position2D" parent="Axle/Head/BulletPositions"] +position = Vector2( 6.08832, 8.00003 ) +rotation = 3.57792 + +[node name="Position3" type="Position2D" parent="Axle/Head/BulletPositions"] +position = Vector2( 6.08832, 16 ) +rotation = 4.01426 + [node name="JointFront" type="Sprite" parent="Axle"] position = Vector2( 11, -4 ) texture = ExtResource( 7 ) @@ -1295,7 +1596,7 @@ script = ExtResource( 10 ) __meta__ = { "_edit_bone_": true } -rotation_lock = 0.0 +rotation_lock = nan [node name="Endpoint" type="Position2D" parent="Axle/JointFront/LegFront/ShinFront/FootFront"] position = Vector2( -17, 0 ) @@ -1304,10 +1605,6 @@ __meta__ = { "_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 ) @@ -1316,55 +1613,6 @@ 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 @@ -1373,6 +1621,7 @@ material = SubResource( 20 ) anchor_right = 1.0 anchor_bottom = 1.0 texture = ExtResource( 18 ) +flip_h = true __meta__ = { "_edit_lock_": true } @@ -1381,17 +1630,5 @@ __meta__ = { 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"] +[connection signal="area_entered" from="Axle/Head/Beam/Hitbox" to="." method="_on_Hitbox_area_entered"]