diff --git a/maps/boss/boss3_arena.gd b/maps/boss/boss3_arena.gd index 87d96e5..269dc47 100644 --- a/maps/boss/boss3_arena.gd +++ b/maps/boss/boss3_arena.gd @@ -33,3 +33,11 @@ func _on_cutscene_finished() -> void: func _on_2083_energy_changed(amount) -> void: sg_energy.value = amount + + +func _on_Famira_died() -> void: + sg2083.state = sg2083.State.INACTIVE + print("HEHE") + var tween = create_tween() + tween.set_trans(Tween.TRANS_CUBIC) + tween.tween_property($"%Camera", "global_position:x", famira.global_position.x - 128, 0.5) diff --git a/maps/boss/boss3_arena.tscn b/maps/boss/boss3_arena.tscn index 88e56e0..356d063 100644 --- a/maps/boss/boss3_arena.tscn +++ b/maps/boss/boss3_arena.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=10 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] @@ -8,12 +8,23 @@ [ext_resource path="res://tilesets/t_station.tres" type="TileSet" id=6] [ext_resource path="res://cutscenes/fami_cutscene.tscn" type="PackedScene" id=7] [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] [node name="Map" type="Node2D" groups=["map"]] pause_mode = 1 script = ExtResource( 3 ) lore_entries = [ ExtResource( 8 ) ] +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] + +[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 + [node name="GUI" type="CanvasLayer" parent="."] [node name="Control" type="HBoxContainer" parent="GUI"] @@ -112,13 +123,15 @@ visible = false position = Vector2( 0, 12 ) famira_path = NodePath("../Famira") -[node name="Camera2D" type="Camera2D" parent="2083"] +[node name="Camera" type="Camera2D" parent="2083"] +unique_name_in_owner = true position = Vector2( 0, -4 ) offset = Vector2( 0, -8 ) anchor_mode = 0 current = true limit_top = 8 limit_bottom = 192 +limit_smoothed = true [node name="Famira" parent="." instance=ExtResource( 4 )] visible = false @@ -128,4 +141,5 @@ sg2083_path = NodePath("../2083") [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"] +[connection signal="died" from="Famira" to="." method="_on_Famira_died"] [connection signal="health_changed" from="Famira" to="." method="_on_Famira_health_changed"] diff --git a/objects/enemy/boss/famira.gd b/objects/enemy/boss/famira.gd index 434e659..32ef37d 100644 --- a/objects/enemy/boss/famira.gd +++ b/objects/enemy/boss/famira.gd @@ -1,6 +1,7 @@ extends Node2D +signal died() signal health_changed(amount) @@ -45,10 +46,14 @@ func stop_push() -> void: func hurt(amount: float) -> void: + if hp <= 0.0: + return hp -= amount + hp = max(hp, 0.0) emit_signal("health_changed", hp) if hp <= 0.0: state_chart.send_event("die") + emit_signal("died") func _attack() -> void: diff --git a/objects/enemy/boss/famira.tscn b/objects/enemy/boss/famira.tscn index 0619f0a..21024c4 100644 --- a/objects/enemy/boss/famira.tscn +++ b/objects/enemy/boss/famira.tscn @@ -758,7 +758,7 @@ tracks/19/loop_wrap = true tracks/19/imported = false tracks/19/enabled = true tracks/19/keys = { -"times": PoolRealArray( 0, 7 ), +"times": PoolRealArray( 0, 7.6 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ true, false ] @@ -1808,6 +1808,7 @@ linear_accel = -30.19 [node name="DissolveParticles" type="CPUParticles2D" parent="."] material = ExtResource( 17 ) position = Vector2( 4, -8 ) +z_index = -20 emitting = false amount = 16 local_coords = false diff --git a/objects/enemy/boss/sg2083.gd b/objects/enemy/boss/sg2083.gd index 6f3d02a..4e5d41f 100644 --- a/objects/enemy/boss/sg2083.gd +++ b/objects/enemy/boss/sg2083.gd @@ -65,7 +65,7 @@ func _physics_process(delta: float) -> void: func _input(event: InputEvent) -> void: - if state == State.DEAD: + if state == State.DEAD or state == State.INACTIVE: return if event.is_action_pressed("shoot") and (state == State.STAND or state == State.FORWARD or state == State.BACK) and energy >= bullet_energy: shoot()