fuzzyworld

godot-shooter / meteor / files / Bullet.gd

Branch meteor · default branch · all branches

Bullet.gd

695 B · history · blame

1extends Area2D
2class_name Bullet
3
4const Utils = preload("res://Utils.gd")
5const SmallExplosion = preload("res://SmallExplosion.tscn")
6export var lifetime_seconds = .75
7export var speed = 300
8
9func _ready() -> void:
10 $Timer.wait_time = lifetime_seconds
11 $Timer.start()
12
13func _physics_process(delta: float) -> void:
14 position += transform.y * speed * delta
15
16func on_expiration():
17 queue_free()
18
19func on_bullet_body_entered(body):
20 var tree = get_tree()
21 var players = tree.get_nodes_in_group("player")
22 var player = players[0]
23 if body.has_method("hurt") && body != player:
24 body.hurt()
25 var se = SmallExplosion.instance()
26 get_parent().add_child(se)
27 se.transform = transform
28 queue_free()