diff --git a/scenes/game/bullet_3.tscn b/scenes/game/bullet_3.tscn index b200848..75f5162 100644 --- a/scenes/game/bullet_3.tscn +++ b/scenes/game/bullet_3.tscn @@ -176,7 +176,7 @@ animations = [{ radius = 49.0 [node name="Bullet_3" type="Area2D"] -collision_mask = 2 +collision_mask = 3 script = ExtResource("1_8iyde") [node name="MineSprite" type="Sprite2D" parent="."] diff --git a/scripts/game/bullet_3.gd b/scripts/game/bullet_3.gd index a71690d..9433359 100644 --- a/scripts/game/bullet_3.gd +++ b/scripts/game/bullet_3.gd @@ -7,7 +7,8 @@ class_name Bullet3 extends Area2D @onready var explosion_sound: AudioStreamPlayer2D = $AudioStreamPlayer2D var lifetime_seconds: float = 3.0 -var insta_kill_amount: float = 99999.0 +var can_hit_player: bool = false +var damage : float = 0.0 ## Inicializa o timer e configura a mina para começar ativa e monitorando colisões. @@ -20,13 +21,26 @@ func _ready() -> void: explosion_animation.hide() if not vanish_timer.timeout.is_connected(_on_vanish_timer_timeout): vanish_timer.timeout.connect(_on_vanish_timer_timeout) + await get_tree().create_timer(0.2).timeout + can_hit_player = true ## Detecta colisão com um corpo e aplica dano. func _on_body_entered(body: Node) -> void: + if body is Player: + if not can_hit_player: + return + damage = body.acceleration / 30.0 + if damage <= 10.0: + damage = 10.0 + body.health -= damage if body.has_method("take_damage"): - body.take_damage(insta_kill_amount, 1.0) - _explode() + damage = body.velocity.length() / 7.0 + if damage <= 10.0: + damage = 10.0 + body.take_damage(damage, 1.0) + print("ASTEROID damaged: ", snapped(damage, 0.01)) + _explode() ## Executa a animação e o som da explosão e desativa colisões.