forked from team-sg/hero-mark-2
more work on final boss
This commit is contained in:
parent
3e3b327f5e
commit
0bae67fd3b
7 changed files with 196 additions and 24 deletions
|
@ -2,6 +2,8 @@ extends Node2D
|
|||
|
||||
signal cutscene_finished
|
||||
|
||||
const DeathParticles = preload("res://objects/enemy/death_particles.tscn")
|
||||
|
||||
export var cutscene_skip: float = 92.0
|
||||
|
||||
onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
@ -26,6 +28,13 @@ func skip_cutscene() -> void:
|
|||
animation_player.seek(cutscene_skip)
|
||||
Fade.fade_in(Options.transition_speed_secs)
|
||||
|
||||
func kill_cop() -> void:
|
||||
var splatter := DeathParticles.instance()
|
||||
splatter.global_position = $Cop.global_position
|
||||
splatter.emitting = true
|
||||
add_child(splatter)
|
||||
$Cop.queue_free()
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
match what:
|
||||
NOTIFICATION_WM_FOCUS_OUT:
|
||||
|
|
|
@ -25,13 +25,27 @@ func _on_Famira_health_changed(amount) -> void:
|
|||
func _on_cutscene_finished() -> void:
|
||||
$GUI.visible = true
|
||||
sg2083.visible = true
|
||||
sg2083.state = sg2083.State.STAND
|
||||
famira.visible = true
|
||||
famira.animation_player.play("grow")
|
||||
$AnimationPlayer.play("drop-stg")
|
||||
yield(get_tree().create_timer(0.5), "timeout")
|
||||
$FamiCutscene/FamiHuman.visible = false
|
||||
|
||||
|
||||
func fade() -> void:
|
||||
Fade.fade_out(0.4)
|
||||
yield(Fade, "fade_finished")
|
||||
Fade.fade_in(0.4)
|
||||
yield(Fade, "fade_finished")
|
||||
sg2083.anims.play("UnDuck")
|
||||
sg2083.state = sg2083.State.STAND
|
||||
famira.state_chart.send_event("transformed")
|
||||
|
||||
|
||||
func start_fight() -> void:
|
||||
famira.animation_player.state_chart.send_event("transformed")
|
||||
|
||||
|
||||
func _on_2083_energy_changed(amount) -> void:
|
||||
sg_energy.value = amount
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=10 format=2]
|
||||
[gd_scene load_steps=12 format=2]
|
||||
|
||||
[ext_resource path="res://objects/enemy/boss/sg2083.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://tilesets/t_laboratory.tres" type="TileSet" id=2]
|
||||
|
@ -10,6 +10,157 @@
|
|||
[ext_resource path="res://objects/lore/boss/fami.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://graphics/backgrounds/fami_rooftop.png" type="Texture" id=9]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("2083:position")
|
||||
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": [ Vector2( 0, 12 ) ]
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("2083:position:x")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("2083:position:y")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"points": PoolRealArray( 12, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("2083:visible")
|
||||
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": [ false ]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("ParallaxBackground/ParallaxLayer/Sprite:visible")
|
||||
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": [ true ]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/path = NodePath("FamiCutscene: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "drop-stg"
|
||||
length = 4.4
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("2083:position:y")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -300, -0.25, 0, 0.2, 0, 12, -0.1, -149.978, 0.25, 0 ),
|
||||
"times": PoolRealArray( 3, 3.5 )
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("2083:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 3 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ true ]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/path = NodePath("FamiCutscene")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 3.5 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"method": "kill_cop"
|
||||
} ]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/path = NodePath("2083")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 3.5 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ true ],
|
||||
"method": "land"
|
||||
} ]
|
||||
}
|
||||
tracks/4/type = "method"
|
||||
tracks/4/path = NodePath(".")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 4 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ ],
|
||||
"method": "fade"
|
||||
} ]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/path = NodePath("FamiCutscene:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/keys = {
|
||||
"times": PoolRealArray( 3, 4.4 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ true, false ]
|
||||
}
|
||||
|
||||
[node name="Map" type="Node2D" groups=["map"]]
|
||||
pause_mode = 1
|
||||
script = ExtResource( 3 )
|
||||
|
@ -19,11 +170,11 @@ lore_entries = [ ExtResource( 8 ) ]
|
|||
|
||||
[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"]
|
||||
motion_scale = Vector2( 0.5, 1 )
|
||||
motion_offset = Vector2( -256, 0 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"]
|
||||
texture = ExtResource( 9 )
|
||||
centered = false
|
||||
offset = Vector2( -128, 0 )
|
||||
|
||||
[node name="GUI" type="CanvasLayer" parent="."]
|
||||
visible = false
|
||||
|
@ -139,6 +290,10 @@ visible = false
|
|||
position = Vector2( 160, 179 )
|
||||
sg2083_path = NodePath("../2083")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/RESET = SubResource( 1 )
|
||||
anims/drop-stg = SubResource( 2 )
|
||||
|
||||
[connection signal="cutscene_finished" from="FamiCutscene" to="." method="_on_cutscene_finished"]
|
||||
[connection signal="energy_changed" from="2083" to="." method="_on_2083_energy_changed"]
|
||||
[connection signal="health_changed" from="2083" to="." method="_on_2083_health_changed"]
|
||||
|
|
|
@ -69,6 +69,7 @@ animations = [ {
|
|||
} ]
|
||||
|
||||
[node name="2600Explosion" type="Node2D"]
|
||||
z_index = 50
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||
|
|
|
@ -2739,20 +2739,6 @@ tracks/18/keys = {
|
|||
"update": 0,
|
||||
"values": [ Vector2( 1e-05, 1e-05 ), Vector2( 1, 1 ) ]
|
||||
}
|
||||
tracks/19/type = "method"
|
||||
tracks/19/path = NodePath("../StateChart")
|
||||
tracks/19/interp = 1
|
||||
tracks/19/loop_wrap = true
|
||||
tracks/19/imported = false
|
||||
tracks/19/enabled = true
|
||||
tracks/19/keys = {
|
||||
"times": PoolRealArray( 2.9 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ "transformed" ],
|
||||
"method": "send_event"
|
||||
} ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=24]
|
||||
resource_name = "punching"
|
||||
|
@ -4025,7 +4011,7 @@ shape = SubResource( 14 )
|
|||
|
||||
[node name="LowerJaw" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2( -21.3082, -76.1166 )
|
||||
rotation = 1.66395
|
||||
rotation = 1.66396
|
||||
z_index = 100
|
||||
shape = SubResource( 15 )
|
||||
|
||||
|
|
|
@ -78,6 +78,13 @@ func set_energy(value: float) -> void:
|
|||
emit_signal("energy_changed", energy)
|
||||
|
||||
|
||||
func land(duck: bool) -> void:
|
||||
if duck:
|
||||
anims.play("Duck")
|
||||
else:
|
||||
anims.play("UnDuck")
|
||||
|
||||
|
||||
func shoot() -> void:
|
||||
set_energy(energy - bullet_energy)
|
||||
Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_collectible)
|
||||
|
|
|
@ -241,7 +241,7 @@ tracks/3/keys = {
|
|||
"times": PoolRealArray( 0, 0.1, 0.2 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ -25.1199, -42.8239, -52.5731 ]
|
||||
"values": [ -25.1199, -42.8239, -52.6 ]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("Axle/JointFront/LegFront/ShinFront:position")
|
||||
|
@ -265,7 +265,7 @@ tracks/5/keys = {
|
|||
"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 ]
|
||||
"values": [ 51.0254, 71.6413, 96.9236, 110.502, 128.135 ]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/path = NodePath("Axle/JointFront/LegFront:position")
|
||||
|
@ -289,7 +289,7 @@ tracks/7/keys = {
|
|||
"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 ]
|
||||
"values": [ -26.8344, -38.9649, -54.4339, -63.1815, -75.4293 ]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack:position")
|
||||
|
@ -313,7 +313,7 @@ tracks/9/keys = {
|
|||
"times": PoolRealArray( 0, 0.1, 0.2 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ -25.1199, -42.6063, -52.1914 ]
|
||||
"values": [ -25.1199, -42.6063, -52.8 ]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/path = NodePath("Axle/JointBack/LegBack/KneeBack/ShinBack:position")
|
||||
|
@ -337,7 +337,7 @@ tracks/11/keys = {
|
|||
"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 ]
|
||||
"values": [ 51.0254, -5939.68, -82.9, 2.5, 128.421 ]
|
||||
}
|
||||
tracks/12/type = "value"
|
||||
tracks/12/path = NodePath("Axle/JointBack/LegBack/KneeBack:position")
|
||||
|
@ -385,7 +385,7 @@ tracks/15/keys = {
|
|||
"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 ]
|
||||
"values": [ -26.8344, -39.4117, -54.688, -63.5339, -76.1645 ]
|
||||
}
|
||||
tracks/16/type = "value"
|
||||
tracks/16/path = NodePath(".:safe_from_breath")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue