class_name Grenade extends RigidBody2D var timer = Timer.new() @onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D @onready var sprite_2d: Sprite2D = $Sprite2D func _ready() -> void: add_child(timer) timer.wait_time = 2.0 timer.one_shot = true timer.connect("timeout", explode) timer.start() func explode() -> void: print("kaboom!") sprite_2d.visible = false animated_sprite_2d.play("explode") await animated_sprite_2d.animation_finished self.queue_free() func _on_body_entered(body: Node) -> void: print("grenade hit something") if body.is_in_group("explodable"): body.queue_free() explode()