From 65ba4684ead69ea900d1d364419ead947a997746 Mon Sep 17 00:00:00 2001 From: RealMelwei Date: Thu, 18 Sep 2025 03:09:00 +0200 Subject: [PATCH] Hit Flash --- enemies/ghost.tscn | 5 +++-- segment.tscn | 5 +++-- utils/enemy_hurtbox.gd | 7 ++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/enemies/ghost.tscn b/enemies/ghost.tscn index 04b7daa..af8a491 100644 --- a/enemies/ghost.tscn +++ b/enemies/ghost.tscn @@ -41,8 +41,9 @@ collision_layer = 0 collision_mask = 4 script = ExtResource("1_6attn") -[node name="EnemyHurtbox" parent="." instance=ExtResource("2_34o1m")] +[node name="EnemyHurtbox" parent="." node_paths=PackedStringArray("canvasItem") instance=ExtResource("2_34o1m")] max_hp = 50 +canvasItem = NodePath("..") [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyHurtbox"] scale = Vector2(6, 6) @@ -50,7 +51,7 @@ shape = SubResource("CircleShape2D_6attn") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] sprite_frames = SubResource("SpriteFrames_je28r") -frame_progress = 0.0063938 +frame_progress = 0.235914 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] scale = Vector2(5, 5) diff --git a/segment.tscn b/segment.tscn index fe09c8e..4317f55 100644 --- a/segment.tscn +++ b/segment.tscn @@ -20,8 +20,9 @@ texture = ExtResource("2_sa5vt") scale = Vector2(2, 1) shape = SubResource("RectangleShape2D_fgt1l") -[node name="EnemyHurtbox" parent="." instance=ExtResource("3_sa5vt")] -hit_invulnerability = 0.0 +[node name="EnemyHurtbox" parent="." node_paths=PackedStringArray("canvasItem") instance=ExtResource("3_sa5vt")] +canvasItem = NodePath("..") +flashColor = Color(2.00392, 2.00392, 2.00392, 1) [node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyHurtbox"] scale = Vector2(2, 1) diff --git a/utils/enemy_hurtbox.gd b/utils/enemy_hurtbox.gd index db26027..bfd9eb6 100644 --- a/utils/enemy_hurtbox.gd +++ b/utils/enemy_hurtbox.gd @@ -2,7 +2,9 @@ extends Area2D @export var max_hp : int @onready var hp = max_hp -@export var hit_invulnerability = 0.35 +@export var hit_invulnerability = 0.2 +@export var canvasItem : CanvasItem +@export var flashColor : Color = Color(1.5, 1.5, 1.5) var inv_time = 0; signal damage_taken @@ -10,9 +12,12 @@ signal died func _process(delta: float) -> void: inv_time = max(inv_time-delta, 0) + if(inv_time <= 0 and canvasItem != null): + canvasItem.modulate = Color(1,1,1) func hurt(damage : int, dir : Vector2 = Vector2.ZERO): if(inv_time<=0): + if canvasItem != null: canvasItem.modulate = flashColor inv_time = hit_invulnerability hp = max(hp-damage, 0) damage_taken.emit(damage, dir)