Files
project-tur/Scripts/bullet.gd
2025-08-30 18:02:55 +02:00

47 lines
1.1 KiB
GDScript

extends Node3D
signal destination_reached
var is_live: bool = false
var is_loaded: bool = false
var is_target_reached: bool = true
var target_position: Vector3
func _ready() -> void:
GameManager.add_bullet(self)
target_position = Vector3.ZERO
destination_reached.connect(on_target_reached)
func _process(delta: float) -> void:
if is_target_reached == false:
self.global_position = lerp(global_position, target_position, delta / 0.1)
if global_position.distance_to(target_position) < 0.1/1000 and is_target_reached == false:
destination_reached.emit()
func moveTo(target_pos: Vector3):
target_position = target_pos
is_target_reached = false
func on_target_reached():
print("Target Reached")
is_target_reached = true
func _on_static_body_3d_input_event(camera: Node, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) -> void:
if event.is_action_released("left_mouse_click"):
GameManager.bullet_selected.emit(self)
func shoot(target):
if is_live:
print("Ammo was live")
else:
print("Ammo not live")
pass
GameManager.bullet_shoot.emit(target)
self.queue_free()