From b12558a846c3d5737c25a4b6efe4f26dba8f1185 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 6 Mar 2026 14:17:51 +0000 Subject: [PATCH] Improved animation and bullet detection for heart shot ending. --- scenes/boss.gd | 6 ++++-- scenes/boss.tscn | 2 ++ scenes/bullet.gd | 1 + scenes/heart.gd | 7 ++++++- scenes/player.gd | 1 + sprites/heart.png | Bin 299 -> 319 bytes 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/scenes/boss.gd b/scenes/boss.gd index 0537f35..261515d 100644 --- a/scenes/boss.gd +++ b/scenes/boss.gd @@ -149,11 +149,13 @@ func _on_ending(value: int): heart_broken = true horse_phase = false horse_phase_check() - print("Some hearts are too wild.") - $Heart.hide() $Heart.monitoring = false $Heart.monitorable = false + print("Some hearts are too wild.") + EventBus.heart_beat.emit(0) + await get_tree().create_timer(2).timeout EventBus.flash_screen.emit(.25) + $Heart.queue_free() $Sprite2D.frame = 4 await get_tree().create_timer(4).timeout EventBus.goose_talk.emit(4) diff --git a/scenes/boss.tscn b/scenes/boss.tscn index ff6cc55..d860113 100644 --- a/scenes/boss.tscn +++ b/scenes/boss.tscn @@ -257,12 +257,14 @@ one_shot = true [node name="Heart" type="Area2D" parent="." unique_id=1098254590 groups=["heart"]] position = Vector2(0, -71) +rotation = -0.006150021 script = ExtResource("7_qsl3t") [node name="Sprite2D" type="Sprite2D" parent="Heart" unique_id=520903474] texture = ExtResource("7_2cdgk") [node name="CollisionShape2D" type="CollisionShape2D" parent="Heart" unique_id=11221326] +visible = false position = Vector2(0.5, 0) shape = SubResource("RectangleShape2D_qsl3t") diff --git a/scenes/bullet.gd b/scenes/bullet.gd index f0acc5c..a073e29 100644 --- a/scenes/bullet.gd +++ b/scenes/bullet.gd @@ -84,6 +84,7 @@ func _on_area_entered(area: Area2D) -> void: if area.is_in_group("heart"): print("Heart hit!") EventBus.ending.emit(2) + queue_free() #area.hit_detection() diff --git a/scenes/heart.gd b/scenes/heart.gd index 1c163be..91aa8d2 100644 --- a/scenes/heart.gd +++ b/scenes/heart.gd @@ -4,4 +4,9 @@ func _ready() -> void: EventBus.heart_beat.connect(_on_heart_beat) func _on_heart_beat(tempo: float): - $AnimationPlayer.set_speed_scale(tempo) + if tempo == 0: + $AnimationPlayer.stop() + var tween = create_tween().set_trans(Tween.TRANS_LINEAR) + tween.tween_property(self, "modulate",Color(0,0,0), 2.5) + elif tempo > 0: + $AnimationPlayer.set_speed_scale(tempo) diff --git a/scenes/player.gd b/scenes/player.gd index e3a2f00..2539a92 100644 --- a/scenes/player.gd +++ b/scenes/player.gd @@ -136,6 +136,7 @@ func _on_area_entered(area): if can_win == true: print("You can win!") + EventBus.heart_beat.emit(2.5) area.reparent(self) EventBus.win_game.emit() diff --git a/sprites/heart.png b/sprites/heart.png index eb777e42903b90a06f9a46603bec89c23251fb2e..7d16ed24becd50a129dce1bba9b8c70ec2165bac 100644 GIT binary patch delta 218 zcmV<0044vc0>1)~ZGXKzBvm$cvAUwL~D}i*wZH=2Jc%yaEX$ZGWjrL_t(IjjfSE62u?~1i3K7|6jZ%s7Z)$NUb?xH=`1fKP?-p zETg{mQhD1jj*?b2gu#0aB*Bq=5TU_5ucHeFW&ARDuR)CCq*w4BrMeKMV7E zY9VAp$MGaL7kdtm!LfeLGXfDm`4X;&taj%+U>m9xcf)a9Pd{H=WMF^%Y|q?t8!juo z;xi(~cjO{6A_AYe0DyIZK-+*dj+Vz=JN{+;0I`q}#N$xEQ2+n{07*qoM6N<$f_+C* A#sB~S